دليل تكامل GloopAPI
الاستجابات المتدفقة
عالج أحداث التدفق وإشارات النهاية.
يوصل البث الإخراج تدريجياً دون تغيير صلاحيات النموذج أو الفوترة. اضبط stream: true وعالج text/event-stream. لا تحلل الاستجابة كاملة كمستند JSON واحد.
تستخدم Responses أحداثاً ذات أنواع مثل response.output_text.delta وresponse.completed؛ حلّل كل حدث حسب نوعه.
التحليل وفق البروتوكول
تحتوي data في SSE الخاص بـ Chat Completions على مقطع JSON؛ ويوجد النص عادةً في choices[].delta، وقد تُجزّأ استدعاءات الأدوات أيضًا. تشير data: [DONE] إلى نهاية البروتوكول. عند طلب stream_options.include_usage قد يصل مقطع استخدام نهائي تكون فيه choices فارغة؛ ولا يعني غياب الاستخدام أن الاستدعاء مجاني.
حدود الشبكة
كتلة بايتات الشبكة لا تعادل حدثًا. خزّن حتى فاصل السطر الفارغ، وادمج أسطر data المتعددة، ثم حلّل JSON. تعامل مع أحرف UTF-8 الموزعة بين المقاطع والأسطر الفارغة والتعليقات وأحداث أخطاء الخدمة. تُظهر أمثلة الجانب الأيمن من صفحة النهاية بنية أحداث البروتوكول.
عند انقطاع الاتصال أو غياب حدث النهاية، علّم المخرجات بأنها غير مكتملة، واحتفظ بالنص المعروض ومعلومات تشخيص الطلب. إغلاق الاتصال لا يضمن عدم تنفيذ الخدمة ولا يضمن رد المبلغ. طلبات النص المتزامنة غير المؤكدة لا تملك عقد استعادة المهام الدائمة، وينبغي ألا تُرسل تلقائيًا مرة أخرى.
الاستخدام والمعالجة اللاحقة
لا تعتمد النتيجة الكاملة إلا بعد نهاية طبيعية. تستند الفوترة النهائية إلى سجلات استخدام المنصة، ولا تُستنتج من عدد المقاطع المحلي. إذا أبلغ البث عن خطأ بعد HTTP 200، فتعامل معه كخطأ بروتوكول ولا تعتمد على الحالة الأولية وحدها. راجع معالجة الأخطاء والفوترة.