بث الاستجابات (SSE)
ابث مخرجات LLM رمزًا تلو الآخر عبر Server-Sent Events للحصول على واجهات سريعة وإظهار التقدم.
بث الاستجابات (SSE) درس مجاني في AI Agents على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في AI Agents، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة AI Agents 4 دروس في المجموع.
لماذا البث؟
من دون البث، تنتظرون اكتمال الاستجابة بالكامل قبل عرض أي شيء. فإذا كانت الاستجابة المكوّنة من 50 رمزًا تستغرق 5 ثوانٍ، فلن يرى المستخدم شيئًا طوال 5 ثوانٍ.
يعرض البث الرموز فور وصولها — يستغرق الأمر الوقت الإجمالي نفسه، لكن تجربة الاستخدام تبدو فورية.
الأحداث المرسلة من الخادم (SSE)
يبث OpenAI وAnthropic عبر SSE — وهو بروتوكول HTTP أحادي الاتجاه يدفع فيه الخادم الأحداث بالتنسيق data: {...}\n\n.
تخفي معظم حزم SDK تفاصيل SSE خلف واجهة مكرّر.
البث باستخدام OpenAI
اضبطوا stream=True وكرّروا على الاستجابة:
stream = client.chat.completions.create(
model='gpt-4o-mini',
messages=messages,
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end='', flush=True)تجميع الاستجابة الكاملة
اجمعوا التغييرات المتتابعة للحصول على السلسلة النصية النهائية:
buf = []
for chunk in stream:
delta = chunk.choices[0].delta.content or ''
buf.append(delta)
print(delta, end='', flush=True)
full_text = ''.join(buf)
messages.append({'role': 'assistant', 'content': full_text})البث باستخدام Anthropic
النمط نفسه، مع اختلاف طفيف في API:
with client.messages.stream(
model='claude-sonnet-4-5',
max_tokens=1024,
messages=messages,
) as stream:
for text in stream.text_stream:
print(text, end='', flush=True)
final = stream.get_final_message()
print('\ndone, tokens:', final.usage.output_tokens)بث استدعاءات الأدوات
تُبث استدعاءات الأدوات أيضًا. باستخدام OpenAI، يصل اسم الدالة والوسيطات على أجزاء:
for chunk in stream:
delta = chunk.choices[0].delta
if delta.tool_calls:
for tc in delta.tool_calls:
# tc.function.name and tc.function.arguments arrive as partial strings
passالتحكم في التدفق والإلغاء
إذا أغلق المستخدم الصفحة، فأوقف البث لإيقاف استهلاك الرموز:
try:
for chunk in stream:
if request_was_cancelled():
stream.close()
break
finally:
stream.close()البث عبر خادم ويب
في FastAPI، استخدموا StreamingResponse:
from fastapi.responses import StreamingResponse
def token_generator():
for chunk in stream:
delta = chunk.choices[0].delta.content or ''
yield f'data: {delta}\n\n'
return StreamingResponse(token_generator(), media_type='text/event-stream')التخزين المؤقت حتى اكتمال الجمل
لتحويل النص إلى كلام أو العرض على أجزاء، خزّنوا النص مؤقتًا حتى تكتمل الجملة:
buf = ''
for chunk in stream:
buf += chunk.choices[0].delta.content or ''
while '. ' in buf:
sentence, buf = buf.split('. ', 1)
speak(sentence + '.')تحليل JSON المبثوث
بالنسبة إلى مخرجات JSON، لا يمكنكم تحليلها أثناء البث. الخيارات المتاحة:
- تخزين المخرجات كاملةً مؤقتًا ثم تحليلها مرة واحدة
- استخدام محلل JSON للبث (
ijson) لإصدار الحقول عند اكتمالها
مقاييس زمن الاستجابة: TTFT وTPS
- TTFT — الوقت حتى ظهور الرمز الأول (الاستجابة كما يدركها المستخدم)
- TPS — الرموز في الثانية (معدل النقل)
يحسّن البث TTFT، وليس الوقت الإجمالي. استهدفوا قيمة TTFT أقل من 500ms لتجربة محادثة جيدة.
لماذا البث؟
ما الفائدة الأساسية من البث؟
مراجعة
البث مكسب في تجربة الاستخدام، وليس مكسبًا في السرعة. طبّقوه في أي وكيل يتفاعل مع شخص في الوقت الفعلي.
الأسئلة الشائعة
هل درس «بث الاستجابات (SSE)» مجاني؟
نعم — نص درس «بث الاستجابات (SSE)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة AI Agents، انتقل إلى CoddyKit PRO. تتضمن دورة AI Agents 4 دروس في المجموع.
ماذا ستتعلم في «بث الاستجابات (SSE)»؟
ابث مخرجات LLM رمزًا تلو الآخر عبر Server-Sent Events للحصول على واجهات سريعة وإظهار التقدم. تتمرن على AI Agents مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ AI Agents؟
لا تُشترط خبرة سابقة. AI Agents على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «بث الاستجابات (SSE)»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس AI Agents هذا؟
نعم. كل درس في AI Agents يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- استدعاء OpenAI API: chat.completions
- استدعاء Anthropic API: messages
- بث الاستجابات (SSE)
- الوعي بالتكلفة: عدّ الرموز والميزانيات