Когда использовать поток
Только chat completions принимаетstream=true. Текстовый стриминг должен быть включён в сервисе. Ответ имеет Content-Type: text/event-stream.
API отправляет текстовые delta или tool_calls delta, затем finish_reason, usage/billing и [DONE]. OpenAI SDK читает этот поток. Ошибка после начала SSE приходит внутри потока, поскольку HTTP-статус уже отправлен.
Пример JavaScript
Подготовьте клиентOpenAI и переменные окружения по быстрому старту. Сохраните отдельный REQUEST_ID для этого запроса. Пример читает текстовые части; инструменты обрабатывайте отдельно по tool_calls.
usage и billing из финальных данных для учёта. Частичный текст ещё не подтверждает успешное завершение; при ошибке потока сохраните ID запроса и уже полученные события.