เอกสาร API Hop
OpenAI Responses แบบหลายสื่อ
API Responses ที่เข้ากันได้กับ OpenAI เอนด์พอยต์นี้ใช้ input รูปแบบ OpenAI รองรับข้อความ URL ภาพสาธารณะ อินพุตไฟล์ PDF การเรียกเครื่องมือ ตัวเลือกการให้เหตุผล และพารามิเตอร์สตรีม
https://api.apihop.ai/openai/responsesAPI Responses ที่เข้ากันได้กับ OpenAI เอนด์พอยต์นี้ใช้ input รูปแบบ OpenAI รองรับข้อความ URL ภาพสาธารณะ อินพุตไฟล์ PDF การเรียกเครื่องมือ ตัวเลือกการให้เหตุผล และพารามิเตอร์สตรีม
POST https://api.apihop.ai/openai/responsesการยืนยันตัวตน
ทุกคำขอต้องยืนยันตัวตนด้วย Bearer Token
Authorization: Bearer YOUR_API_KEYเนื้อหาคำขอ
modelstringจำเป็นค่าเริ่มต้น: gpt-5.4โมเดลที่ใช้งานปัจจุบันและรองรับ Responses:
gpt-5.4gpt-5.5gpt-5.6-solgpt-5.6-terragpt-6-astra
ดูแค็ตตาล็อกโมเดล สำหรับโมเดลที่คีย์ API ปัจจุบันมองเห็น
inputstring | object[]เนื้อหาอินพุต จำเป็นเว้นแต่ระบุ previous_response_id ที่ไม่ว่าง ละทั้งสองฟิลด์หรือใช้ชนิดอินพุตไม่ถูกต้องส่ง 400 ก่อนคิดค่าบริการ
รูปแบบที่รองรับ:
- สตริง เทียบเท่าอินพุตข้อความ
userหนึ่งรายการ - อาร์เรย์รายการอินพุตสำหรับประวัติสนทนา อินพุตหลายสื่อ และผลการเรียกเครื่องมือ
แต่ละออบเจ็กต์ในอาร์เรย์อินพุตอาจมีฟิลด์ต่อไปนี้:
typestringชนิดรายการอินพุต
ค่าที่พบบ่อย:
message: อินพุตข้อความfunction_call_output: ผลการเรียกเครื่องมือฟังก์ชัน
rolestringบทบาทเมื่อ type=message
ค่าที่พบบ่อย:
developersystemuserassistant
contentstring | object[]เนื้อหาข้อความ
ใช้อาร์เรย์บล็อกเนื้อหาสำหรับคำขอหลายสื่อ บล็อกเนื้อหารองรับ:
typestringชนิดบล็อกเนื้อหา
รองรับปัจจุบัน:
input_textinput_imageinput_file
textstringเนื้อหาข้อความเมื่อ type=input_text
image_urlstringURL ภาพสาธารณะเมื่อ type=input_image
รองรับเฉพาะ URL ภาพ http:// หรือ https:// ที่เข้าถึงสาธารณะ ไม่รองรับ Base64 Data URL เช่น data:image/...;base64,...
detailstringค่าเริ่มต้น: autoระดับรายละเอียดภาพเมื่อ type=input_image
ค่าที่พบบ่อย:
autolowhigh
file_datastringData URL เนื้อหาไฟล์เมื่อ type=input_file โดย PDF อาจใช้ data:application/pdf;base64,...
filenamestringชื่อไฟล์เมื่อ type=input_file
instructionsstringคำสั่งระบบหรือนักพัฒนาที่แทรกในบริบทโมเดล
max_output_tokensintegerโทเคนเอาต์พุตสูงสุดแบบไม่บังคับ เป็นจำนวนเต็มบวก ไม่ระบุเพื่อใช้ค่าเริ่มต้นต้นทางของโมเดลที่เลือก งบอาจรวมโทเคนการให้เหตุผลและข้อความสุดท้ายตามโมเดล งบน้อยอาจตัดคำตอบหรือหมดก่อนข้อความสุดท้าย การเพิ่มอาจเพิ่มค่าใช้จ่าย
streambooleanค่าเริ่มต้น: falseจะสตรีมการตอบกลับหรือไม่
false: ส่งการตอบกลับสมบูรณ์หนึ่งชุดtrue: ส่งเหตุการณ์ SSE รูปแบบ OpenAI Responses
temperaturenumberค่าเริ่มต้น: 1.0อุณหภูมิการสุ่ม โดยทั่วไปตั้งแต่ 0 ถึง 2
top_pnumberค่าเริ่มต้น: 1.0พารามิเตอร์สุ่มแบบ nucleus โดยทั่วไปตั้งแต่ 0 ถึง 1
textobjectการตั้งค่าเอาต์พุตข้อความ
text.formatobjectการตั้งค่ารูปแบบข้อความ เช่น { "type": "text" } หรือสคีมา JSON
text.verbositystringความละเอียดเอาต์พุต เช่น low, medium หรือ high การรองรับขึ้นอยู่กับโมเดลที่เลือก
toolsobject[]นิยามเครื่องมือ ความพร้อมขึ้นอยู่กับโมเดลที่เลือกและฟีเจอร์ที่มี
tool_choicestring | objectนโยบายเลือกเครื่องมือ
parallel_tool_callsbooleanอนุญาตเรียกเครื่องมือขนานหรือไม่
reasoningobjectตัวเลือกเกี่ยวกับการให้เหตุผล
includestring[]ฟิลด์เพิ่มเติมที่จะรวมในการตอบกลับ
prompt_cache_keystringคีย์แคชพรอมต์สำหรับใช้แคชพรอมต์ซ้ำ
prompt_cache_retentionstringนโยบายเก็บแคชพรอมต์ ค่าที่รองรับขึ้นอยู่กับโมเดลที่เลือกและฟีเจอร์ที่มี
safety_identifierstringตัวระบุผู้ใช้ปลายทางคงที่สำหรับควบคุมความปลอดภัย
storebooleanอาจเก็บสถานะการตอบกลับหรือไม่
ความต่างพารามิเตอร์โมเดล
- การส่งต่อ Responses ดั้งเดิมที่เข้ากันได้กับ OpenAI คง
top_pในคำขอต้นทาง การตรวจและพฤติกรรมสุ่มขึ้นอยู่กับโมเดลและต้นทาง การตรวจเมื่อ 2026-09-26 ยอมรับtop_p: 0.9สำหรับgpt-5.5,gpt-5.6-solและgpt-5.6-terraการยอมรับและส่งต่อไม่พิสูจน์ผลการสุ่มหรือรับประกันค่าอื่น โมเดลอื่น หรือคำขอภายหลัง เริ่มด้วยคำขอขั้นต่ำ - การรองรับในหน้านี้ใช้เฉพาะเอนด์พอยต์
/openai/responsesปกติ ไม่ได้หมายความว่าโมเดลเดียวกันรองรับ/openai/responses/compact, WebSocket หรือprevious_response_idแบบเก็บสถานะ - โมเดล GPT ห้ารายการข้างต้นยังไม่มีช่อง Compact ที่ตรวจยืนยันปัจจุบัน คำขอ Compact ถูกปฏิเสธก่อนคิดค่าบริการเมื่อไม่มีช่องที่เปิดใช้ชัดเจน Responses ปกติและ Responses WebSocket ยังใช้ได้
ตัวอย่างคำขอ
ตัวอย่างด้านล่างระบุ input การต่อเนื่องอาจละ input เมื่อระบุ previous_response_id ถูกต้องและช่องที่เลือกรองรับการต่อเนื่องแบบเก็บสถานะ ID การตอบกลับไม่ได้เปิดความสามารถนี้บนช่องที่ไม่รองรับ ผลเครื่องมือยังเป็นรายการอินพุตที่ถูกต้อง รวม function_call_output
ข้อความ
{
"model": "gpt-5.4",
"input": "Hello, introduce yourself in one sentence."
}พารามิเตอร์รูปแบบ Codex CLI
{
"model": "gpt-5.5",
"input": "Reply with READY only.",
"reasoning": {
"effort": "xhigh"
},
"store": false,
"text": {
"verbosity": "low"
},
"stream": true
}การเข้าใจภาพ
{
"model": "gpt-5.4",
"input": [
{
"type": "message",
"role": "user",
"content": [
{
"type": "input_text",
"text": "What is in this image?"
},
{
"type": "input_image",
"image_url": "https://example.com/cat.png",
"detail": "high"
}
]
}
]
}อินพุตไฟล์
ใช้ file_data พร้อม filename ส่งเนื้อหา PDF โดย file_data ต้องเป็น Data URL สมบูรณ์
{
"model": "gpt-5.4",
"input": [
{
"type": "message",
"role": "user",
"content": [
{
"type": "input_text",
"text": "Summarize the key points in this PDF."
},
{
"type": "input_file",
"file_data": "data:application/pdf;base64,JVBERi0xLjQKJc...",
"filename": "report.pdf"
}
]
}
]
}อินพุตภาพและไฟล์
{
"model": "gpt-5.4",
"input": [
{
"type": "message",
"role": "user",
"content": [
{
"type": "input_text",
"text": "Give three conclusions based on the image and attachment."
},
{
"type": "input_image",
"image_url": "https://example.com/chart.png",
"detail": "high"
},
{
"type": "input_file",
"file_data": "data:application/pdf;base64,JVBERi0xLjQKJc...",
"filename": "notes.pdf"
}
]
}
]
}เอาต์พุตสตรีม
{
"model": "gpt-5.4",
"stream": true,
"input": [
{
"role": "user",
"content": [
{
"type": "input_text",
"text": "Explain this diagram step by step."
},
{
"type": "input_image",
"image_url": "https://example.com/diagram.png"
}
]
}
]
}การตอบกลับ
การตอบกลับไม่สตรีมใช้รูปแบบ OpenAI Responses ฟิลด์จริงอาจต่างตามความสามารถโมเดลที่เลือก
idstringตัวระบุการตอบกลับไม่ซ้ำ
objectstringชนิดออบเจ็กต์การตอบกลับ โดยทั่วไป response
created_atintegerเวลาสร้าง
modelstringโมเดลที่ใช้จริง
outputobject[]รายการเอาต์พุต รายการที่พบบ่อยมี message, function_call และเอาต์พุตเกี่ยวกับเครื่องมือ
usageobjectสถิติการใช้โทเคน เช่น input_tokens, output_tokens และ total_tokens
ตัวอย่างสำเร็จ
{
"id": "resp_123",
"object": "response",
"created_at": 1766534400,
"model": "gpt-5.4",
"output": [
{
"type": "message",
"role": "assistant",
"content": [
{
"text": "The image shows a cat, and the attachment is a document about pet care."
}
]
}
],
"usage": {
"input_tokens": 128,
"output_tokens": 42,
"total_tokens": 170
}
}การตอบกลับสตรีม
เมื่อ stream=true เอนด์พอยต์ส่ง Server-Sent Events
event: response.output_text.delta
data: {"type":"response.output_text.delta","delta":"The image"}
event: response.completed
data: {"type":"response.completed","response":{"id":"resp_123"}}อ่านเหตุการณ์จนถึง response.completed หรือการเชื่อมต่อปิด
การตอบกลับข้อผิดพลาด
ดูรหัสข้อผิดพลาดและการแก้ปัญหา สำหรับรหัสอ้างอิงทั้งหมด ความต่างโปรโตคอล และขั้นตอนวินิจฉัย
ข้อผิดพลาด HTTP ที่แพลตฟอร์มสร้างใช้ฟิลด์แบบแบนด้านล่างแทนตัวครอบ error บางข้อผิดพลาดต้นทางอาจคงโครงสร้างเดิม ข้อผิดพลาดในสตรีม SSE ที่เริ่มแล้วไม่ใช้ตัวอย่างการตอบกลับ HTTP นี้
{
"code": 40000,
"message": "Insufficient credit. Required: 30000, Available: 20000",
"type": "api_error"
}หมายเหตุ
- เอนด์พอยต์
Responsesใช้inputไม่ใช่messagesหากไคลเอนต์ส่งเฉพาะmessagesใช้/openai/v1/chat/completions - อินพุตภาพใช้
input_imageโดยimage_urlต้องเป็น URL สาธารณะhttp://หรือhttps://ไม่รองรับ Base64 Data URL สำหรับภาพ - อินพุตไฟล์ใช้
input_fileสำหรับ PDF ใช้file_dataพร้อมfilenameโดยfile_dataควรเป็น URLdata:application/pdf;base64,...สมบูรณ์ - อินพุต/เอาต์พุตเสียง เครื่องมือสร้างภาพ ค้นหาไฟล์ และความสามารถขั้นสูงอื่นขึ้นอยู่กับโมเดลที่เลือกและฟีเจอร์ที่มี
- ฟิลด์ในหน้านี้เป็นข้อกำหนดคำขอ Responses สาธารณะปัจจุบัน อย่าคิดว่าฟิลด์ที่ไม่ระบุใช้ได้
/openai/responsesเป็นเส้นทางสาธารณะที่แนะนำ/v1/responsesใช้ข้อกำหนดคำขอและตอบกลับสาธารณะเดียวกัน/compat/v1/responsesใช้ข้อกำหนดคำขอและตอบกลับสาธารณะเดียวกัน/openai/v1/responsesใช้ข้อกำหนดคำขอและตอบกลับสาธารณะเดียวกัน