For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navigation principale
Theme

Réponses de l’API en streaming

Découvrez comment recevoir les réponses du modèle en streaming depuis l’API OpenAI grâce aux événements envoyés par le serveur.

Par défaut, lorsque vous envoyez une requête à l’API OpenAI, le modèle génère toute sa réponse avant que l’API vous la renvoie en une seule réponse HTTP. L’attente peut être longue si le modèle doit générer beaucoup de texte. Avec le streaming, vous pouvez afficher ou traiter le début de la réponse pendant que le modèle en génère la suite.

Ce guide porte sur le streaming HTTP (stream=true) au moyen d’événements envoyés par le serveur (SSE). Pour utiliser une connexion WebSocket persistante et fournir de nouvelles entrées au fur et à mesure avec previous_response_id, consultez le guide sur le mode WebSocket de l’API Responses.

Activez le streaming

Pour recevoir les réponses en streaming, indiquez stream=True dans votre requête au point de terminaison 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)

L’API Responses utilise des événements sémantiques pour le streaming. Chaque type d’événement suit un schéma prédéfini, ce qui vous permet d’écouter les événements qui vous intéressent.

Vous trouverez la liste complète des types d’événements dans la référence de l’API sur le streaming. Voici quelques exemples :

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

Lisez les réponses

Si vous utilisez notre SDK, chaque événement est une instance typée. Vous pouvez aussi identifier chaque événement grâce à sa propriété type.

L’API émet certains événements clés du cycle de vie une seule fois et en émet d’autres plusieurs fois pendant la génération de la réponse. Voici les événements couramment écoutés pour recevoir du texte en streaming :

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

Vous trouverez la liste complète des événements que vous pouvez écouter dans la référence de l’API sur le streaming.

Cas d’usage avancés

Pour des cas d’usage plus avancés, comme la réception d’appels d’outils en streaming, consultez les guides suivants :

Risque lié à la modération

Dans une application en production, diffuser les réponses du modèle en streaming complique la modération de leur contenu, car une réponse partielle peut être plus difficile à évaluer. Tenez-en compte pour déterminer si votre usage est autorisé.

Si vous demandez des scores de modération dans une requête de génération, vous les recevez une fois que la réponse complète est disponible. Les fragments transmis pendant la génération ne contiennent pas ces scores.