DocumentaciónRespuestas en streaming

Construir

Respuestas en streaming

La respuesta aparece mientras el modelo la escribe. La persona lee las primeras palabras en lugar de esperar al final.

En esta página
  1. Activar el streaming
  2. El formato
  3. Los tiempos de espera

Activar el streaming

Pon stream a true. La respuesta llega como eventos del servidor, cada uno con un fragmento del texto.

stream = client.chat.completions.create(
    model="flash",
    messages=[
        {"role": "user", "content": "Draft a payment reminder."}
    ],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(
            chunk.choices[0].delta.content, end="", flush=True
        )
    if chunk.usage:
        print("\n", chunk.usage.total_tokens, "tokens")
Respuesta
data: {"id":"chatcmpl-91a7","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"role":"assistant","content":""}}]}

data: {"id":"chatcmpl-91a7","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"Dear Ms Keller,"}}]}

data: {"id":"chatcmpl-91a7","object":"chat.completion.chunk","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}

data: {"id":"chatcmpl-91a7","object":"chat.completion.chunk","choices":[],"usage":{"prompt_tokens":17,"completion_tokens":96,"total_tokens":113}}

data: [DONE]

El formato

EventoLo que contiene
delta.contentEl siguiente fragmento de texto
delta.reasoning_contentEl razonamiento, cuando lo has pedido
finish_reasonEl motivo de la parada, en el último fragmento del texto
usageEl recuento de tokens, en un último evento sin choices
[DONE]El final del stream

Los tiempos de espera

  • Un stream que pasa dos minutos sin enviar nada se corta, con un último evento de error.
  • Una respuesta dura como máximo diez minutos.
  • Para detener una respuesta, cierra la conexión.