Документация · Стриминг

Стриминг

Ответ по частям, как в официальных API.

Стриминг включается параметром stream: true и идёт в формате Server-Sent Events, в тех же событиях, что у OpenAI и Anthropic. SDK разбирают его сами.

ЭндпоинтСобытия
/v1/chat/completionsчанки chat.completion.chunk, в конце data: [DONE]
/v1/responsesresponse.created … response.output_text.delta … response.completed с sequence_number
/v1/messagesmessage_start, content_block_delta, message_delta, message_stop
stream = client.chat.completions.create(
    model="gpt-5.4-mini",
    messages=[{"role": "user", "content": "Напиши короткое стихотворение"}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
  • Пока модель думает, сервер шлёт пинги раз в 15 секунд, чтобы соединение не закрыли прокси.
  • Если клиент отключился, генерация всё равно завершится и будет оплачена. Чтобы продолжить чтение после обрыва, используйте Responses в фоне со стримингом.
  • stream_options.include_usage в Chat Completions добавляет перед [DONE] чанк с usage.
Стриминг ответов API: SSE как у OpenAI | SUJIK AI