Skip to main content
تقبل POST /responses الطلبات بتنسيق Responses API من OpenAI وتُعيد عناصر مخرجات مُصنَّفة حسب النوع مثل reasoning وmessage وfunction_call. تعمل مع كل نماذج النصوص في Venice وتقبل مفتاح API أو مصادقة محفظة x402.
نقطة النهاية هذه في مرحلة تجريبية (beta) ومتاحة لجميع مستخدمي API. تُخدَم نماذج OpenAI بشكل أصلي، لذا تتصرف مثل Responses API الخاصة بـ OpenAI نفسها. أما كل النماذج الأخرى فتمر عبر طبقة ترجمة بها بعض الفجوات. اقرأ كيف تتم معالجة الطلبات والقيود قبل البناء عليها.

متى تستخدمها

استخدم /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 التعبير عنه يُتجاهَل أو يُرفَض. راجع القيود.
تُعالَج طلبات نماذج OpenAI التي تستخدم ميزة خاصة بـ Venice فقط في الوضع المُترجَم حتى تستمر الميزة في العمل. يشمل ذلك بحث الويب في Venice (أداة 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 تلقائيًا.
تكون مطالبة النظام الخاصة بـ Venice مُعطَّلة افتراضيًا في الوضع الأصلي، لذا تُطبَّق 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 فقط. ما لم يُذكَر خلاف ذلك، يظل الطلب ناجحًا ويُتجاهَل الحقل.

ذات صلة