For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal

Streaming de respostas da API

Aprenda a receber respostas de modelos da API da OpenAI em streaming usando eventos enviados pelo servidor.

Por padrão, quando você faz uma solicitação à API da OpenAI, geramos toda a saída do modelo antes de enviá-la de volta em uma única resposta HTTP. Quando a saída é longa, a espera pela resposta pode demorar. O streaming de respostas permite começar a exibir ou processar o início da saída do modelo enquanto ele continua gerando o restante da resposta.

Este guia aborda o streaming HTTP (stream=true) por meio de eventos enviados pelo servidor (SSE). Para transporte persistente por WebSocket com entradas incrementais via previous_response_id, consulte o modo WebSocket da Responses API.

Ativar o streaming

Para começar a receber respostas em streaming, defina stream=True na sua solicitação ao endpoint 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)

A Responses API usa eventos semânticos para streaming. Cada evento é tipado com um esquema predefinido, permitindo que você escute os eventos de seu interesse.

Para ver a lista completa de tipos de eventos, consulte a referência da API para streaming. Veja alguns exemplos:

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);
  }
}

Ler as respostas

Se você usa nosso SDK, cada evento é uma instância tipada. Você também pode identificar eventos individuais usando a propriedade type do evento.

Alguns eventos importantes do ciclo de vida são emitidos apenas uma vez, enquanto outros são emitidos várias vezes durante a geração da resposta. Entre os eventos que normalmente se escutam ao receber texto em streaming estão:

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

Para ver a lista completa de eventos que você pode escutar, consulte a referência da API para streaming.

Casos de uso avançados

Para casos de uso mais avançados, como streaming de chamadas de ferramentas, consulte os seguintes guias específicos:

Risco de moderação

O streaming da saída do modelo em um aplicativo em produção dificulta a moderação do conteúdo das respostas, pois respostas parciais podem ser mais difíceis de avaliar. Isso pode ter implicações para o uso aprovado.

Se você solicitar pontuações de moderação junto com uma solicitação de geração, elas chegarão depois que toda a saída gerada estiver disponível. Elas não são incluídas nos deltas parciais da saída.