Aller au contenu
Site principal Actualités Console

Sortie en flux

Dans la requête, définissez "stream": true, la réponse sera renvoyée par segments via Server-Sent Events(SSE), adapté à l’effet de machine à écrire des interfaces de chat et aux scénarios de longues réponses.

Requête

Fenêtre de terminal
curl https://api.4allapi.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $AIPROXY_KEY" \
-d '{
"model": "gpt-5.6",
"messages": [{"role": "user", "content": "Écris un court poème sur le ciel étoilé"}],
"stream": true,
"stream_options": {"include_usage": true}
}'

Flux de réponse

Chaque événement est une ligne JSON préfixée par data: , le contenu incrémental se trouve dans choices[0].delta.content ; à la fin du flux, data: [DONE] est envoyé :

data: {"choices":[{"delta":{"content":"Nuit"}}], ...}
data: {"choices":[{"delta":{"content":"é"}}], ...}
...
data: {"choices":[],"usage":{"prompt_tokens":18,"completion_tokens":56,"total_tokens":74}}
data: [DONE]

Exemple SDK (Python)

stream = client.chat.completions.create(
model="gpt-5.6",
messages=[{"role": "user", "content": "Écris un court poème sur le ciel étoilé"}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content if chunk.choices else None
if delta:
print(delta, end="", flush=True)

Remarques

  • Il est recommandé de régler le délai de lecture de la connexion en flux à plus de 60 secondes ; pour les modèles de raisonnement à longues réponses, vous pouvez l’augmenter davantage ;
  • Après qu’un client a interrompu la connexion, la partie déjà générée sera toujours facturée selon l’utilisation réelle ;
  • Lors du transfert via un proxy/gateway, il faut désactiver la mise en tampon de la réponse (par exemple proxy_buffering off dans nginx), sinon l’effet de flux sera perdu.