Aller au contenu

Réponses en streaming

La sortie en streaming de RouteAPI utilise Server-Sent Events (SSE). Après avoir défini stream: true dans la requête, le serveur retourne progressivement du contenu incrémental.

Fenêtre de terminal
curl https://www.routeapi.ai/v1/chat/completions \
-H "Authorization: Bearer $ROUTEAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"stream": true,
"messages": [
{ "role": "user", "content": "Explique progressivement ce qu'est la sortie en streaming" }
]
}'
data: {"id":"chatcmpl_xxx","choices":[{"delta":{"content":"RouteAPI"}}]}
data: {"id":"chatcmpl_xxx","choices":[{"delta":{"content":" prend en charge"}}]}
data: [DONE]

Le client doit lire le contenu data: ligne par ligne et terminer la réponse lorsqu’il reçoit [DONE].

Si le modèle actuel le prend en charge, une requête en streaming peut demander le retour de usage à la fin via stream_options :

{
"stream": true,
"stream_options": {
"include_usage": true
}
}

La prise en charge de ce champ dépend du modèle choisi et des capacités du service.

Une requête en streaming peut rencontrer une erreur côté service après l’établissement de la connexion, par exemple :

  • Timeout du service de modèle
  • Crédit de compte insuffisant
  • Interruption réseau
  • Déconnexion volontaire du client
  • Échec de génération des paramètres d’appel d’outil

Il est recommandé que le client :

  1. Enregistre le request id pour chaque requête.
  2. Effectue des reprises limitées en cas d’interruption réseau.
  3. Évite les reprises automatiques pour les appels d’outils ayant déjà produit des effets de bord.
  4. Utilise les journaux de la console pour diagnostiquer les erreurs côté service.