Стриминг
Потоковая выдача через SSE — события по форматам, usage, keep-alive и ошибки посреди потока.
Текстовые эндпоинты отдают ответ потоком, если в запросе "stream": true.
Поток — Server-Sent Events (text/event-stream) в том же формате, что у
оригинального API. Изображения и видео потоком не отдаются.
Пример
curl -N https://ai-seller.vibe-codes.ru/v1/chat/completions \
-H "Authorization: Bearer $AISELLER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.6-sol",
"stream": true,
"stream_options": {"include_usage": true},
"messages": [{"role": "user", "content": "Расскажи короткую историю"}]
}'
События и usage по форматам
| Эндпоинт | События | Где usage |
|---|---|---|
/v1/chat/completions | chat.completion.chunk, в конце data: [DONE] | Последний чанк — только при "stream_options": {"include_usage": true} |
/v1/responses | response.created, response.output_text.delta, …, response.completed | response.completed |
/v1/messages | message_start, content_block_*, message_delta, message_stop | message_start и message_delta |
Keep-alive и долгое молчание
- Рассуждающие модели могут молчать десятки секунд перед первым токеном. Шлюз ждёт начала ответа провайдера около минуты; клиентский таймаут ставьте с запасом.
- В потоке бывают строки-комментарии, начинающиеся с
:(keep-alive). SDK их пропускают; если разбираете SSE сами — игнорируйте такие строки.
Ошибки посреди потока
- Если провайдер отказал до начала ответа, шлюз успевает переключиться на другого провайдера модели или вернуть обычную JSON-ошибку с HTTP-статусом — см. Ошибки.
- Если ответ уже начал приходить (HTTP 200 отправлен), переключения нет:
ошибка приходит событием ошибки в формате эндпоинта, либо поток просто
закрывается без завершающего события (
[DONE],response.completed,message_stop). Считайте такой ответ оборванным и повторите запрос. - Если провайдер оборвал поток до первого фрагмента ответа, списания нет. Если посреди ответа или вы прервали запрос сами — списывается вход и сгенерированный выход (см. Баланс и стоимость).
Обновлено 29 сентября 2026 г.