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

البثّ والمحادثات متعدّدة الجولات

متوسط

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

البثّ

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

with client.messages.stream(
model="claude-sonnet-4-6", 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)

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

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

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

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

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

  • لخّص/اضغط الجولات الأقدم في موجز قصير تحمله معك.
  • قلّص الجولات الأقدم غير ذات الصلة.
  • اقرنه بـ**التخزين المؤقت للمطالبات** لتجنّب الدفع مجدّدًا مقابل بادئة ثابتة.

التالي