وثائق API Hop
استجابات OpenAI متعددة الوسائط
واجهة Responses API متوافقة مع OpenAI. تستخدم نقطة النهاية هذه input بتنسيق OpenAI، وتدعم النصوص وروابط الصور العامة وإدخال ملفات PDF واستدعاءات الأدوات وخيارات الاستدلال ومعاملات التدفق.
https://api.apihop.ai/openai/responsesواجهة Responses API متوافقة مع OpenAI. تستخدم نقطة النهاية هذه input بتنسيق OpenAI، وتدعم النصوص وروابط الصور العامة وإدخال ملفات PDF واستدعاءات الأدوات وخيارات الاستدلال ومعاملات التدفق.
POST https://api.apihop.ai/openai/responsesالمصادقة
تتطلب جميع الطلبات المصادقة باستخدام رمز Bearer.
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_urlstringرابط صورة عام عندما تكون type=input_image.
تُدعم فقط روابط الصور http:// أو https:// المتاحة للعامة. لا تُدعم روابط بيانات Base64 مثل data:image/...;base64,....
detailstringالقيمة الافتراضية: autoمستوى تفاصيل الصورة عندما تكون type=input_image.
القيم الشائعة:
autolowhigh
file_datastringرابط بيانات محتوى الملف عندما تكون 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معامل أخذ العينات النووية، وعادةً يكون من 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ما إذا كان يمكن تخزين حالة الاستجابة.
اختلافات معاملات النماذج
- يحافظ التمرير الأصلي المتوافق مع OpenAI Responses على
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 صالحًا وكانت القناة المختارة تدعم المتابعة مع حفظ الحالة. لا يفعّل معرّف الاستجابة هذه الإمكانية في قناة لا تدعمها. وتظل نتائج الأدوات عناصر إدخال صالحة، بما فيها 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 رابط بيانات كاملًا.
{
"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، تعيد نقطة النهاية أحداثًا يرسلها الخادم عبر SSE.
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رابطًا عامًا يبدأ بـhttp://أوhttps://. لا تُدعم روابط بيانات Base64 للصور. - يستخدم إدخال الملفات
input_file. لملفات PDF، استخدمfile_dataمعfilename؛ وينبغي أن يكونfile_dataرابطًا كاملًا بصيغةdata:application/pdf;base64,.... - يعتمد إدخال الصوت وإخراجه وأدوات توليد الصور والبحث في الملفات وغيرها من القدرات المتقدمة على النموذج المختار والميزات المتاحة.
- تشكل الحقول المدرجة في هذه الصفحة عقد طلبات Responses العام الحالي؛ فلا تفترض توفر حقول غير مدرجة.
/openai/responsesهو المسار العام الموصى به.- يتبع
/v1/responsesعقد الطلب والاستجابة العام نفسه. - يتبع
/compat/v1/responsesعقد الطلب والاستجابة العام نفسه. - يتبع
/openai/v1/responsesعقد الطلب والاستجابة العام نفسه.