البث والمحادثات متعددة الأدوار
- بثّ الردود رمزًا برمز حتى يرى المستخدمون المخرجات فورًا
- فهم سبب كون واجهة برمجة التطبيقات عديمة الحالة وكيفية حمل سجل المحادثة بنفسك
- متابعة محادثة متعددة الأدوار عبر إعادة إرسال التبادل السابق بالكامل
- منع المحادثات الطويلة من تضخيم نافذة السياق والتكلفة
بناء تجارب شبيهة بالدردشة على واجهة برمجة التطبيقات يتلخص في حقيقتين عمليتين: بثّ الردود حتى يرى المستخدمون المخرجات فورًا، وإدارة السجل بنفسك لأن واجهة برمجة التطبيقات عديمة الحالة. أتقِن كليهما وستشعر تجربة الدردشة لديك بأنها سريعة وتتذكر كل شيء.
البث
من دون البث، ينتظر المستخدم الرد بأكمله. مع البث، تصل الرموز فور توليدها — وهو ما يحسّن السرعة المدرَكة بشكل كبير.
- استخدم مساعد البث في حزمة التطوير (SDK) بدلًا من تحليل الأحداث الخام يدويًا — فهو يدير دورة حياة الأحداث نيابةً عنك.
- Python
- TypeScript
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)
const stream = client.messages.stream({
model: "claude-sonnet-5", max_tokens: 1024,
messages: [{ role: "user", content: "Explain RAG in two sentences." }],
});
for await (const event of stream) {
if (event.type === "content_block_delta") process.stdout.write(event.delta.text ?? "");
}
متعدد الأدوار: أنت من يحمل السجل
ليس لدى واجهة برمجة التطبيقات أي ذاكرة بين الاستدعاءات (لماذا). لمتابعة محادثة، أرسِل التبادل السابق بأكمله في كل مرة.
Guided walkthrough1 of 4
- أرسِل أول رسالة من المستخدم ضمن قائمة الرسائل.
- اقرأ نص رد المساعد من النتيجة.
- أضِف رد المساعد ورسالة المستخدم التالية إلى قائمة الرسائل نفسها.
- أرسِل قائمة الرسائل الكاملة مرة أخرى — هكذا 'يتذكر' Claude التبادل.
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
المحادثات الطويلة تملأ النافذة
كلما نما السجل، استهلك نافذة السياق وارتفعت التكلفة. إليك استراتيجيات للسيطرة عليه:
- التلخيص/الضغط للأدوار الأقدم في موجز قصير تحمله معك.
- التشذيب للأدوار السابقة غير ذات الصلة.
- اقترِنها مع التخزين المؤقت للموجّهات لتجنّب الدفع مجددًا مقابل بادئة ثابتة.
- كل استدعاء يعيد إرسال السجل بأكمله — المحادثات الطويلة تكلّف أكثر وقد تتجاوز في النهاية نافذة السياق إن لم تضغط أو تشذّب أبدًا.
- بثّ الرموز للحصول على سرعة مدرَكة عالية؛ مساعد حزمة التطوير (SDK) يتولى دورة حياة الأحداث.
- واجهة برمجة التطبيقات عديمة الحالة — ليس لديها ذاكرة بين الاستدعاءات.
- تابِع محادثة بإضافة كل دور وإعادة إرسال قائمة الرسائل الكاملة.
- اضغط وشذّب وخزّن مؤقتًا للتحكم في تكلفة وحجم المحادثات الطويلة.