Перейти к содержимому
Основной сайт Новости Консоль

Потоковый вывод

Если в запросе установить "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), иначе потоковый эффект будет потерян.