یک پاسخ چت را استریم کنید
رویدادهای ارسالشده توسط سرور تکمیلهای چت ShareAI را بخوانید، دلتاهای محتوا را یکبار اضافه کنید و تکمیل، خطاها و جریانهای قطعشده را مدیریت کنید.
در این صفحه
تنظیم کنید stream: true برای دریافت پاسخ بهصورت تدریجی. اتصال HTTP را باز نگه دارید، رویدادهای کامل SSE را تجزیه کنید و هر دلتا محتوا را یکبار اضافه کنید.
https://api.shareai.now/api/v1/chat/completionsیک جریان رویداد ارسالشده توسط سرور بازگردانید.
- URL پایه
https://api.shareai.now- احراز هویت
- کلید API Bearer یا توکن دسترسی OAuth تأییدشده
cURL
curl --no-buffer --fail-with-body https://api.shareai.now/api/v1/chat/completions \
-H "Authorization: Bearer $SHAREAI_API_KEY" \
-H "Content-Type: application/json" \
--data '{"model":"MODEL_IDENTIFIER","messages":[{"role":"user","content":"Explain server-sent events briefly."}],"stream":true}'
مرزهای رویداد را بخوانید.#
SSE رویدادها را با یک خط خالی جدا میکند. قطعات شبکه میتوانند یک مقدار JSON را تقسیم کنند یا شامل چندین رویداد باشند، بنابراین هر خواندن شبکه را بهعنوان یک پاسخ کامل JSON تجزیه نکنید. UTF-8 را بهصورت تدریجی رمزگشایی کنید و دادههای ناقص را تا تکمیل رویداد نگه دارید.
Plain text
data: {"object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Hello"},"finish_reason":null}]}
data: {"object":"chat.completion.chunk","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: [DONE]
محتوا را یکبار رندر کنید.#
اضافه کنید choices[0].delta.content وقتی موجود است. فاصلهها و کلمات تکراری را حفظ کنید. یک قطعه فقط نقش یا قطعه نهایی ممکن است محتوایی نداشته باشد. [DONE] بهعنوان پایاندهنده جریان رفتار کنید.
خطاهای جریان را مدیریت کنید.#
وضعیت HTTP را قبل از ورود به تجزیهکننده SSE بررسی کنید. پس از شروع جریان، یک event: error رویداد و قطع ارتباط غیرمنتظره را مدیریت کنید. یک پاسخ قطعشده را بهعنوان ناقص علامتگذاری کنید و به کاربر اجازه دهید بهصورت صریح دوباره تلاش کند. یک پاسخ مستقل دوم را به خروجی جزئی اضافه نکنید.
از برنامه خود لغو کنید.#
از مکانیزم لغو کلاینت HTTP خود استفاده کنید زمانی که کاربر تولید را متوقف میکند. لغو، خرابی شبکه و پاسخ کامل را بهعنوان حالتهای جداگانه رابط کاربری نگه دارید. قول ندهید که بستن اتصال کلاینت استفادهای که قبلاً پردازش شده را معکوس میکند.
آخرین بهروزرسانی سپتامبر 15, 2026