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
Theme

Transmisión de respuestas de la API

Aprende a recibir las respuestas del modelo desde la API de OpenAI a medida que se generan mediante eventos enviados por el servidor.

De forma predeterminada, cuando envías una solicitud a la API de OpenAI, generamos toda la salida del modelo antes de enviártela en una sola respuesta HTTP. Si la salida es extensa, puedes tardar en recibirla. Con la transmisión de respuestas, puedes empezar a imprimir o procesar la primera parte de la salida mientras el modelo genera el resto.

Esta guía se centra en la transmisión por HTTP (stream=true) mediante eventos enviados por el servidor (SSE). Si quieres usar una conexión WebSocket persistente con entradas incrementales mediante previous_response_id, consulta el modo WebSocket de la API de Responses.

Activar la transmisión

Para empezar a recibir las respuestas a medida que se generan, configura stream=True en la solicitud al punto de acceso de 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 de Responses usa eventos semánticos para la transmisión. Cada tipo de evento tiene un esquema predefinido, por lo que puedes escuchar los eventos que te interesan.

Para ver la lista completa de tipos de eventos, consulta la referencia de la API sobre transmisión. 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 de un tipo definido. También puedes identificar cada evento mediante su propiedad type.

Algunos eventos clave del ciclo de vida se emiten una sola vez. Otros se emiten varias veces mientras se genera la respuesta. Al transmitir texto, estos son algunos de los eventos que se suelen escuchar:

- `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 sobre transmisión.

Casos de uso avanzados

Para casos de uso más avanzados, como la transmisión de llamadas a herramientas, consulta estas guías específicas:

Riesgo para la moderación

Ten en cuenta que transmitir la salida del modelo 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 afectar el uso autorizado.

Si solicitas puntuaciones de moderación en una solicitud de generación, las recibirás una vez que esté disponible toda la salida generada. Los fragmentos parciales de la salida no incluyen estas puntuaciones.