Skip to main content
POST /v1/agents/{agent_id}/chat/stream يأخذ الطلب نفسه تمامًا الذي تأخذه نقطة نهاية الدردشة المتزامنة: نفس الجسم، نفس ترويستي Authorization وIdempotency-Key، نفس صلاحية full، نفس قواعد المحادثة والفوترة ورموز الأخطاء. الفرق الوحيد هو وسيلة النقل: الرد من نوع text/event-stream.

الأحداث

لكل حدث اسم ويحمل سطر data واحدًا بصيغة JSON.
نص الاستدلال ونشاط الأدوات لا يكونان جزءًا من التدفق أبدًا. response.completed يحمل دائمًا النص النهائي الكامل، لذا يستطيع العميل الذي فاتته بعض الأجزاء أن يعتمد عليه بدلًا من الأجزاء المتسلسلة.

الأخطاء في التدفق

الإخفاقات قبل إنشاء التدفق (مفتاح غير صالح، خطأ تحقق، idempotency_conflict، conversation_busy، وكيل معطّل، حد معدل) هي أغلفة أخطاء JSON عادية بحالة HTTP الخاصة بها؛ تحقق من response.ok قبل أن تبدأ قراءة الأحداث. بعد إرسال الترويسات تكون الحالة 200 بالفعل. الإخفاق بعد تلك النقطة (مثل insufficient_balance أو internal_error) يصل كحدث error، بنفس حقول الغلاف، ويغلق التدفق.

الانقطاع وإعادة المحاولة

العميل الذي يقطع الاتصال لا يوقف الرد: يستمر توليده وتخزينه، ويُكمَل سجل التكرار الآمن. إعادة المحاولة بنفس Idempotency-Key تبث response.created ثم مباشرة response.completed بالنتيجة المخزّنة؛ الأجزاء لا تُعاد. راجع التكرار الآمن.

أمثلة

استخدم curl -N (بلا تخزين مؤقت) لرؤية الأحداث فور وصولها. في المتصفحات لا يستطيع EventSource إرسال أجسام POST ولا ترويسات مخصصة، والمفتاح يجب ألا يصل إلى المتصفح أصلًا؛ ابثّ من خادمك الخاص ومرّر النص إلى العميل.