Потоковый вывод
Если в запросе установить "stream": true, ответ будет возвращаться по частям в виде Server-Sent Events(SSE),
что подходит для эффекта печатающей машинки в чат-интерфейсе и сценариев с длинными ответами.
Запрос
curl https://api.4allapi.com/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $AIPROXY_KEY" \ -d '{ "model": "gpt-5.6", "messages": [{"role": "user", "content": "Напиши короткое стихотворение о звёздном небе"}], "stream": true, "stream_options": {"include_usage": true} }'Поток ответа
Каждое событие — это JSON с префиксом data: в одной строке, инкрементальное содержимое находится в
choices[0].delta.content; при завершении потока отправляется data: [DONE]:
data: {"choices":[{"delta":{"content":"夜"}}], ...}data: {"choices":[{"delta":{"content":"空"}}], ...}...data: {"choices":[],"usage":{"prompt_tokens":18,"completion_tokens":56,"total_tokens":74}}data: [DONE]Пример SDK (Python)
stream = client.chat.completions.create( model="gpt-5.6", messages=[{"role": "user", "content": "Напиши короткое стихотворение о звёздном небе"}], stream=True,)for chunk in stream: delta = chunk.choices[0].delta.content if chunk.choices else None if delta: print(delta, end="", flush=True)Примечания
- Для потоковых соединений рекомендуем установить тайм-аут чтения выше 60 секунд; для моделей с длинными ответами можно увеличить его ещё больше;
- После разрыва соединения клиентом уже сгенерированная часть всё равно будет тарифицироваться по фактическому использованию;
- При проксировании/передаче через шлюз необходимо отключить буферизацию ответа (например,
proxy_buffering offв nginx), иначе потоковый эффект будет потерян.