Skip to main content

نظرة عامة

تعرض التدفقات الحوارية المنشورة واجهة برمجة تطبيقات لجلسة الدردشة على عنوان URL الخاص بالأتمتة. بدلًا من تشغيل /kickoff واحد، تنشئ جلسة، وترسل رسائل المستخدم كأدوار (turns)، ويمكنك اختياريًا بث الرموز والأحداث أثناء التشغيل، واستئناف توقفات HITL عندما يحتاج الدور إلى ملاحظات بشرية.
دردشة التدفق الحواري تجريبية. تتوفر نقاط النهاية فقط عندما يُبلغ التدفق المنشور عن conversational: true وhandle_turn: true من GET /inspect.
لبناء التدفق نفسه (conversational = True وhandle_turn والموجّهات والتتبع)، راجع دليل المصادر المفتوحة Conversational Flows.

المتطلبات الأساسية

  1. انشر أتمتة Flow تنفّذ الأدوار الحوارية (handle_turn).
  2. انسخ رمز Bearer من علامة تبويب Status للأتمتة (نفس الرمز المستخدم مع /kickoff).
  3. أكّد تفعيل الدردشة عبر /inspect (أدناه).
تستخدم جميع الطلبات:
تستخدم أمثلة هذا الدليل القاعدة https://your-flow-url.crewai.com.

اكتشاف قدرة الدردشة

ابحث عن flow.chat:
إذا كانت أي من العلامتين false، تُرجع نقاط نهاية الدردشة 404 مع "Conversational flow chat is not available".

حلقة الدردشة من البداية للنهاية

1

بدء جلسة

أنشئ جلسة دردشة. يمكنك اختياريًا تسجيل webhook لانتهاء الدور وwebhooks للأحداث طوال عمر الجلسة.
الاستجابة:
الجسم الفارغ ({} أو بدون جسم) صالح عندما لا تحتاج إلى webhooks.
2

إرسال رسالة مستخدم

ضع دورًا واحدًا في قائمة الانتظار للجلسة:
الاستجابة:
الأدوار المقبولة في messageHistory: user وassistant وsystem وtool.
3

انتظار انتهاء الدور

راقب الدور باستخدام kickoff_id المُعاد (نفس واجهة حالة kickoff العادية للتدفق):
يمكن أن يكون دور واحد فقط نشطًا لكل جلسة. طلب /message ثانٍ أثناء تعيين active_kickoff_id يُرجع 409:
انتظر حتى يُظهر السجل active_kickoff_id: null (أو يصل الدور إلى حالة نهائية / توقف) قبل إرسال الرسالة التالية.
4

قراءة سجل الجلسة

بث دور

البث اختياري. استخدمه عندما تحتاج الواجهة إلى رموز أو أحداث runtime أثناء تشغيل الدور. تتضمن الإطارات دائمًا أنواع دورة الحياة (turn_started وturn_completed وturn_failed وtoken وerror). يمكن تصفية إطارات event الإضافية بمعلمة الاستعلام events (* أو قائمة مفصولة بفواصل).

الخيار أ: رسالة HTTP + إرفاق SSE

  1. POST /chat/{session_id}/message مع "stream": true.
  2. اربط بالدور النشط:
يُرجع SSE إطارات JSON من نوع text/event-stream (data: {...}) مع تعليقات keepalive. ينتهي البث عند turn_completed أو turn_failed. إذا لم يكن هناك دور نشط، تُرجع هذه النقطة 409 (No active chat turn).

الخيار ب: WebSocket (إرفاق أو إرسال)

المصادقة: مرّر رمز Bearer كمعامل استعلام token، أو كترويسة Authorization: Bearer ... عندما يدعم عميلك ترويسات WebSocket. السلوك:
  • دور نشط قيد التشغيل بالفعل — يتصل المقبس ويُرسل أولًا turn_started مع data.status: "attached"، ثم يبث الإطارات حتى نوع نهائي.
  • لا يوجد دور نشط — أرسل رسالة JSON لوضع دور في قائمة الانتظار ثم استهلك البث:
يستجيب الخادم بـ turn_started (status: "queued") ثم إطارات البث لذلك kickoff_id. استخدم last_event_id / lastEventId للاستئناف بعد انقطاع الاتصال.

أمثلة على إطارات البث

HITL داخل جلسة دردشة

إذا توقف دور لانتظار ملاحظات بشرية (status / الحالة PAUSED)، استأنفه بنفس نقطة استئناف Flow المستخدمة في التشغيلات غير الحوارية:
ثم راقب kickoff_id الخاص بالاستئناف من الاستجابة. انتظر حتى يُظهر /history القيمة active_kickoff_id: null قبل إرسال رسالة الدردشة التالية. راجع سير عمل HITL وإدارة HITL للتدفقات لواجهة المراجعة على المنصة.

مرجع واجهة البرمجة

أخطاء شائعة

ذات صلة

Conversational Flows

ابنِ تدفقات متعددة الأدوار باستخدام handle_turn والموجّهات والتتبع.

Kickoff Crew / Flow

تشغيل kickoff واحد ومراقبة الحالة على عنوان URL للنشر.

Webhook Streaming

شكل حمولة webhook للأحداث وخيارات المصادقة.

إدارة HITL للتدفقات

مراجعة بشرية بالبريد الإلكتروني أولًا لخطوات التدفق المتوقفة.