POST /responses الطلبات بتنسيق Responses API من OpenAI وتُعيد عناصر مخرجات مُصنَّفة حسب النوع مثل reasoning وmessage وfunction_call. تعمل مع كل نماذج النصوص في Venice وتقبل مفتاح API أو مصادقة محفظة x402.
متى تستخدمها
استخدم/responses عندما يكون عميلك يتعامل بالفعل بتنسيق Responses، على سبيل المثال وكلاء البرمجة وحزم SDK المبنية على responses.create من OpenAI. إنها أفضل طريقة لتشغيل وكلاء بأسلوب Codex على نماذج OpenAI عبر Venice.
بالنسبة للنماذج غير التابعة لـ OpenAI، تظل /chat/completions الخيار الأكثر اكتمالًا: فهي تدعم المخرجات المهيكلة، ومدخلات الملفات، ونماذج E2EE، وكل خيارات venice_parameters على كل نموذج.
البدء السريع
output من العناصر المُصنَّفة حسب النوع وعلى كائن usage:
كيف تتم معالجة الطلبات
تعالج Venice كل طلب بأحد وضعين.- أصلي (Native). تُمرَّر طلبات نماذج OpenAI إلى Responses API من OpenAI دون ترجمة. يشمل ذلك كل نماذج
openai-*باستثناءopenai-gpt-oss-120b. تعود عناصر الاستجابة والمعرّفات والتفكير المنطقي وأحداث البث تمامًا كما تُعيدها OpenAI. - مُترجَم (Translated). كل النماذج الأخرى، بالإضافة إلى
openai-gpt-oss-120b، تمر عبر طبقة ترجمة: تحوّل Venice الطلب إلى طلب Chat Completions، وتشغّله، ثم تحوّل النتيجة مرة أخرى. أي شيء لا يستطيع تنسيق Chat Completions التعبير عنه يُتجاهَل أو يُرفَض. راجع القيود.
web_search، أو web_search: true، أو venice_parameters.enable_web_search)، وx_search، وvenice_parameters.character_slug، وvenice_parameters.enable_web_scraping. كما تنتقل بالطريقة نفسها الطلبات التي تحتوي على حقول لا يستطيع الوضع الأصلي خدمتها، والمدرجة ضمن الوضع الأصلي.
يمكنك التحكم في الوضع وفحصه باستخدام الترويسات:
المحادثات عديمة الحالة
لا تخزّن Venice الاستجابات في أي من الوضعين. أرسل المحادثة كاملة فيinput مع كل طلب، مع إلحاق عناصر output السابقة وأي نتائج للأدوات.
store دائمًا على أنه false. لا يمكن تحليل previous_response_id وconversation لأنه لا يُخزَّن شيء. مع الوضع الافتراضي auto، تُعالَج هذه الطلبات في الوضع المُترجَم، حيث تُتجاهَل تلك الحقول. ومع x-venice-responses-mode: native تُعيد 400.
الوضع الأصلي
يدعم الوضع الأصلي ميزات Responses التي تدعمها نقطة النهاية الخاصة بـ OpenAI نفسها، بما في ذلك:instructions، وتُطبَّق كما هي مكتوبة.- المخرجات المهيكلة باستخدام
text.format. تتحقق OpenAI من المخططات بصرامة، لذا يُعيد المخطط غير الصالح 400. على سبيل المثال، يتطلبstrict: trueوجودadditionalProperties: false، ويتطلبjson_objectوجود كلمة “json” في مكان ما من المدخلات. - أدوات الدوال و
tool_choiceبصيغة Responses من OpenAI{"type": "function", "name": "..."}، بالإضافة إلى استدعاءات الأدوات المتوازية. - الأدوات المُنفَّذة لدى العميل:
custom(مدخلات حرة)، وnamespace، وtool_search، وapply_patch، وshellوlocal_shellمع بيئة محلية، واستخدام الحاسوب (computer use). - ملخصات التفكير المنطقي، مُفعَّلة افتراضيًا. تُعيد نماذج التفكير المنطقي دائمًا
encrypted_contentعلى عناصر التفكير المنطقي. أرسل تلك العناصر مرة أخرى فيinputفي الدور التالي للحفاظ على سياق التفكير المنطقي للنموذج. - التخزين المؤقت للمطالبات باستخدام
prompt_cache_key. تحصر Venice نطاق المفتاح في حسابك، فلا يشارك ذاكرة التخزين المؤقت مع مستخدمين آخرين أبدًا، وتُعيد مفتاحك الأصلي في الاستجابة. - مدخلات الصور، بما في ذلك
detail: "original"، وinput_fileمعfile_dataالمُضمَّنة. - نماذج Pro (
*-pro)، التي تشغّل وضع التفكير المنطقي Pro من OpenAI تلقائيًا.
instructions الخاصة بك دون تغيير. اضبط venice_parameters.include_venice_system_prompt: true لإضافتها.
تتطلب العناصر التالية تخزينًا من جهة الخادم أو موارد مستضافة لدى المزوّد، لذا فهي غير متاحة بشكل أصلي:
تنطبق هذه القيود أيضًا على الأدوات التي تُحمَّل لاحقًا في المحادثة عبر عناصر
additional_tools أو tool_search_output. كما أن أداة بحث Venice المُعرَّفة هناك توجّه الطلب أيضًا إلى الوضع المُترجَم.
تُعامَل حقول الطلب غير المعروفة بالطريقة نفسها: مع auto يُعالَج الطلب في الوضع المُترجَم، ومع native يُعيد 400.
البث
اضبطstream: true لتلقي أحداث مُرسَلة من الخادم (server-sent events). ينهي كلا الوضعين البث بـ data: [DONE].
في الوضع الأصلي، تكون الأحداث مطابقة تمامًا لأحداث OpenAI، بما في ذلك response.reasoning_summary_text.delta لملخصات التفكير المنطقي وresponse.function_call_arguments.delta لمعامِلات الأدوات.
في الوضع المُترجَم، تكون الأحداث response.created، وresponse.output_item.added، وresponse.content_part.added، وresponse.output_text.delta، وresponse.function_call_arguments.delta، وresponse.content_part.done، وresponse.output_item.done، وأخيرًا response.completed أو response.incomplete أو response.failed. يختلف حدثان عن أحداث OpenAI:
- يُبَث نص التفكير المنطقي كـ
response.reasoning.delta، وليس كأحداث ملخص التفكير المنطقي الخاصة بـ OpenAI. - عند تشغيل بحث الويب، يحمل حدث
response.web_search.doneنتائج البحث قبل بث الإجابة.
معاملات الوضع المترجم
يُحتسَب بحث الويب كتعزيز بالبحث، كما هو الحال في
/chat/completions.
بعض سلوكيات الوضع المُترجَم التي ينبغي التخطيط لها:
- تُطبَّق
instructionsكرسالة نظام. - تُعيد الأدوات المخصصة عناصر
custom_tool_callمعinputالخام. إذا أعاد النموذج معامِلات أداة مخصصة مشوّهة، أو استدعى أداة غير مُعرَّفة في الطلب، يعود الاستدعاء كـfunction_callعادي مع المعامِلات الأصلية، حتى يتمكن عميلك من الإبلاغ عن خطأ في الأداة والمتابعة. - أثناء بث مدخلات أداة مخصصة، قد لا يصل عنصر الاستدعاء الخاص بها والعناصر اللاحقة إلا بعد اكتمال المدخلات. يرسل البث تعليقات SSE للإبقاء على الاتصال (keep-alive) أثناء الانتظار.
- تُرسَل قيمة الصورة
detail: "original"كـhighإلى المزوّدين الذين لا يدعمونها.
القيود
تنطبق هذه الفجوات على الوضع المُترجَم: كل النماذج غير التابعة لـ OpenAI، وopenai-gpt-oss-120b، وطلبات نماذج OpenAI التي تستخدم ميزات خاصة بـ Venice فقط. ما لم يُذكَر خلاف ذلك، يظل الطلب ناجحًا ويُتجاهَل الحقل.