For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegación principal

Respuestas de la API en streaming

Aprende a recibir respuestas del modelo de la API de OpenAI en streaming mediante eventos enviados por el servidor.

De forma predeterminada, cuando haces una solicitud a la API de OpenAI, generamos toda la salida del modelo antes de devolverla en una sola respuesta HTTP. Cuando se generan salidas extensas, la respuesta puede tardar. Las respuestas en streaming te permiten empezar a imprimir o procesar el inicio de la salida del modelo mientras este continúa generando la respuesta completa.

Esta guía se centra en el streaming HTTP (stream=true) mediante eventos enviados por el servidor (SSE). Para usar un transporte WebSocket persistente con entradas incrementales mediante previous_response_id, consulta el modo WebSocket de la API Responses.

Habilitar el streaming

Para empezar a recibir respuestas en streaming, establece stream=True en tu solicitud al punto de acceso Responses:

from openai import OpenAI

client = OpenAI()

stream = client.responses.create(
    model="gpt-6-astra",
    input=[
        {
            "role": "user",
            "content": "Say 'double bubble bath' ten times fast.",
        },
    ],
    stream=True,
)

for event in stream:
    print(event)

La API Responses usa eventos semánticos para el streaming. Cada evento tiene un tipo definido por un esquema preestablecido, por lo que puedes escuchar los eventos que te interesen.

Para ver la lista completa de tipos de eventos, consulta la referencia de la API para streaming. Estos son algunos ejemplos:

for await (const event of stream) {
  if (event.type === "response.output_text.delta") {
    process.stdout.write(event.delta);
  } else if (event.type === "response.completed") {
    console.log("\nResponse completed.");
  } else if (event.type === "error") {
    console.error(event.message);
  }
}

Leer las respuestas

Si usas nuestro SDK, cada evento es una instancia tipada. También puedes identificar eventos individuales mediante la propiedad type del evento.

Algunos eventos clave del ciclo de vida se emiten una sola vez, mientras que otros se emiten varias veces a medida que se genera la respuesta. Estos son algunos eventos habituales que puedes escuchar al recibir texto en streaming:

- `response.created`
- `response.output_text.delta`
- `response.completed`
- `error`

Para ver la lista completa de eventos que puedes escuchar, consulta la referencia de la API para streaming.

Casos de uso avanzados

Para casos de uso más avanzados, como las llamadas a herramientas en streaming, consulta las siguientes guías específicas:

Riesgo de moderación

Ten en cuenta que transmitir la salida del modelo en streaming en una aplicación en producción dificulta la moderación del contenido de las respuestas, ya que las respuestas parciales pueden ser más difíciles de evaluar. Esto puede tener implicaciones para el uso aprobado.

Si solicitas puntuaciones de moderación junto con una solicitud de generación, las puntuaciones llegan después de que esté disponible toda la salida generada. No se incluyen con los fragmentos incrementales de la salida parcial.