مدلهای زبانی پاسخ را توکنبهتوکن میسازند. در حالت غیر استریم، سرور منتظر میماند تا کل پاسخ آماده شود و آن را یکجا میفرستد؛ در پاسخهای طولانی این یعنی چند ثانیه انتظار بدون هیچ نشانهای. در حالت استریم، هر تکه بهمحض تولید ارسال میشود.
پروتکل رایج برای این کار Server-Sent Events (SSE) است: اتصال باز میماند و سرور خطهایی به شکل data: {...} میفرستد و در پایان [DONE]. اگر پشت پراکسی یا Nginx هستید باید بافر خروجی برای آن مسیر خاموش باشد، وگرنه تکهها جمع و یکجا ارسال میشود.
استریم زمان کل تولید را کم نمیکند، اما «زمان تا اولین توکن» را کاهش میدهد و تجربهی کاربر را روانتر میکند.
curl -N https://api.picoai.ir/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-6-sol","stream":true,"messages":[{"role":"user","content":"سلام"}]}'مثال کاربردی
در یک چت وب، کاربر پاسخ ۴۰۰ کلمهای میخواهد. بدون استریم ۱۰ ثانیه صفحه خالی میماند؛ با استریم کلمهی اول بعد از یک تا دو ثانیه ظاهر میشود و کاربر در حین تولید میخواند. در عوض باید قطع و وصل شدن اتصال و نمایش خطا در میانهی پاسخ را هم مدیریت کنید.
چطور در عمل بررسی کنیم؟
بهترین راه یادگرفتن این مفهوم، دیدن آن در یک درخواست واقعی است. یک کلید بسازید، فهرست مدلها را با /v1/models بگیرید، یک درخواست کوچک بفرستید و فیلدهای پاسخ (از جمله usage و finish_reason) را بخوانید. سپس همان درخواست را با پارامتر یا مدل دیگر تکرار و در داشبورد مصرف و هزینه را مقایسه کنید. نمونههای آماده در راهنمای cURL و راهنمای پایتون هست.
اصطلاحات نزدیک
- تأخیر: Latency زمان بین ارسال درخواست و دریافت پاسخ است؛ در مدلهای زبانی معمولاً با «زمان تا اولین توکن» و «سرعت تولید» سنجیده میشود.
- محدودیت نرخ: محدودیت نرخ سقف تعداد درخواست یا توکن در بازهی زمانی مشخص است که برای حفظ پایداری و جلوگیری از سوءاستفاده اعمال میشود.
- توکن: توکن کوچکترین واحد متنی است که مدل زبانی پردازش میکند؛ میتواند یک کلمه، بخشی از کلمه یا یک نویسه باشد و هزینه و محدودیتها بر پایهی آن سنجیده میشود.
- آدرس پایه (Base URL): Base URL آدرس ریشهی یک API است که مسیرهای مختلف مثل /chat/completions به آن اضافه میشود؛ با تغییر آن میتوان همان کلاینت را به سرویس دیگری وصل کرد.
در پیکو هوش
API چت پیکو هوش با stream: true استریم SSE با قالب OpenAI برمیگرداند و استودیو هم پاسخها را بهصورت استریم نشان میدهد.
اشتباهات رایج
- فراموش کردن خاموش کردن بافر پراکسی و دیدن پاسخ یکجا.
- انتظار اینکه استریم هزینه را کم کند؛ هزینه برابر است.
پرسشهای متداول
در استریم مصرف توکن چطور گزارش میشود؟
بسته به مدل و تنظیمات، در رویداد انتهایی یا از طریق ثبت در داشبورد؛ جزئیات در مستندات هر مدل میآید.
استریم ناقص قطع شد، هزینه؟
درخواست ناموفق بدون هزینه است؛ قطع بخشی از پاسخ بر اساس مصرف واقعی تسویه میشود.
استریم در پیکو هوش چه نقشی دارد؟
API چت پیکو هوش با stream: true استریم SSE با قالب OpenAI برمیگرداند و استودیو هم پاسخها را بهصورت استریم نشان میدهد.
از تعریف تا عمل
ثبتنام کنید، یک کلید بسازید و مفهوم را روی مدل واقعی امتحان کنید.