إنتقل إلى المحتوى الرئيسي

البث والمحادثات متعددة الأدوار

متوسط
What you'll learn
  • بثّ الردود رمزًا برمز حتى يرى المستخدمون المخرجات فورًا
  • فهم سبب كون واجهة برمجة التطبيقات عديمة الحالة وكيفية حمل سجل المحادثة بنفسك
  • متابعة محادثة متعددة الأدوار عبر إعادة إرسال التبادل السابق بالكامل
  • منع المحادثات الطويلة من تضخيم نافذة السياق والتكلفة

بناء تجارب شبيهة بالدردشة على واجهة برمجة التطبيقات يتلخص في حقيقتين عمليتين: بثّ الردود حتى يرى المستخدمون المخرجات فورًا، وإدارة السجل بنفسك لأن واجهة برمجة التطبيقات عديمة الحالة. أتقِن كليهما وستشعر تجربة الدردشة لديك بأنها سريعة وتتذكر كل شيء.

البث

من دون البث، ينتظر المستخدم الرد بأكمله. مع البث، تصل الرموز فور توليدها — وهو ما يحسّن السرعة المدرَكة بشكل كبير.

Pro tip
  • استخدم مساعد البث في حزمة التطوير (SDK) بدلًا من تحليل الأحداث الخام يدويًا — فهو يدير دورة حياة الأحداث نيابةً عنك.
with client.messages.stream(
model="claude-sonnet-5", max_tokens=1024,
messages=[{"role": "user", "content": "Explain RAG in two sentences."}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)

متعدد الأدوار: أنت من يحمل السجل

ليس لدى واجهة برمجة التطبيقات أي ذاكرة بين الاستدعاءات (لماذا). لمتابعة محادثة، أرسِل التبادل السابق بأكمله في كل مرة.

Guided walkthrough1 of 4
  1. أرسِل أول رسالة من المستخدم ضمن قائمة الرسائل.
messages = [{"role": "user", "content": "Hi, I'm planning a trip."}]
# ... get assistant reply, then append both turns:
messages.append({"role": "assistant", "content": assistant_text})
messages.append({"role": "user", "content": "Make it 3 days."})
# send the full `messages` list again

المحادثات الطويلة تملأ النافذة

كلما نما السجل، استهلك نافذة السياق وارتفعت التكلفة. إليك استراتيجيات للسيطرة عليه:

  • التلخيص/الضغط للأدوار الأقدم في موجز قصير تحمله معك.
  • التشذيب للأدوار السابقة غير ذات الصلة.
  • اقترِنها مع التخزين المؤقت للموجّهات لتجنّب الدفع مجددًا مقابل بادئة ثابتة.
Watch out
  • كل استدعاء يعيد إرسال السجل بأكمله — المحادثات الطويلة تكلّف أكثر وقد تتجاوز في النهاية نافذة السياق إن لم تضغط أو تشذّب أبدًا.
Key takeaways
  • بثّ الرموز للحصول على سرعة مدرَكة عالية؛ مساعد حزمة التطوير (SDK) يتولى دورة حياة الأحداث.
  • واجهة برمجة التطبيقات عديمة الحالة — ليس لديها ذاكرة بين الاستدعاءات.
  • تابِع محادثة بإضافة كل دور وإعادة إرسال قائمة الرسائل الكاملة.
  • اضغط وشذّب وخزّن مؤقتًا للتحكم في تكلفة وحجم المحادثات الطويلة.

اختبر نفسك

0/3
  1. لماذا يحسّن البث تجربة الدردشة؟
  2. كيف تتابع محادثة متعددة الأدوار على واجهة برمجة التطبيقات هذه؟
  3. أيّ استراتيجية ليست مقترَحة لمنع المحادثات الطويلة من ملء نافذة السياق؟

التالي