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

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

متوسط
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. أيّ استراتيجية ليست مقترَحة لمنع المحادثات الطويلة من ملء نافذة السياق؟

التالي​