نظرة عامة
تعرض التدفقات الحوارية المنشورة واجهة برمجة تطبيقات لجلسة الدردشة على عنوان URL الخاص بالأتمتة. بدلًا من تشغيل/kickoff واحد، تنشئ جلسة، وترسل رسائل المستخدم كأدوار (turns)، ويمكنك اختياريًا بث الرموز والأحداث أثناء التشغيل، واستئناف توقفات HITL عندما يحتاج الدور إلى ملاحظات بشرية.
دردشة التدفق الحواري تجريبية. تتوفر نقاط النهاية فقط عندما يُبلغ التدفق المنشور عن
conversational: true وhandle_turn: true من GET /inspect.conversational = True وhandle_turn والموجّهات والتتبع)، راجع دليل المصادر المفتوحة Conversational Flows.
المتطلبات الأساسية
- انشر أتمتة Flow تنفّذ الأدوار الحوارية (
handle_turn). - انسخ رمز Bearer من علامة تبويب Status للأتمتة (نفس الرمز المستخدم مع
/kickoff). - أكّد تفعيل الدردشة عبر
/inspect(أدناه).
https://your-flow-url.crewai.com.
اكتشاف قدرة الدردشة
flow.chat:
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
POST /chat/{session_id}/messageمع"stream": true.- اربط بالدور النشط:
text/event-stream (data: {...}) مع تعليقات keepalive. ينتهي البث عند turn_completed أو turn_failed.
إذا لم يكن هناك دور نشط، تُرجع هذه النقطة 409 (No active chat turn).
الخيار ب: WebSocket (إرفاق أو إرسال)
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 للتدفقات
مراجعة بشرية بالبريد الإلكتروني أولًا لخطوات التدفق المتوقفة.
