Complétion de texte en streaming
API héritée
L’API Text Completions est une API héritée. Les futurs modèles et fonctionnalités nécessiteront l’utilisation de l’API Messages, et nous recommandons de migrer dès que possible.
Lors de la création d’une complétion de texte, vous pouvez définir "stream": true
pour diffuser progressivement la réponse en utilisant les événements envoyés par le serveur (SSE). Si vous utilisez nos bibliothèques clientes, l’analyse de ces événements sera gérée automatiquement pour vous. Cependant, si vous créez une intégration API directe, vous devrez gérer ces événements vous-même.
Exemple
curl https://api.anthropic.com/v1/complete \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--data '
{
"model": "claude-2",
"prompt": "\n\nHuman: Bonjour, le monde !\n\nAssistant:",
"max_tokens_to_sample": 256,
"stream": true
}
'
event: completion
data: {"type": "completion", "completion": " Bonjour", "stop_reason": null, "model": "claude-2.0"}
event: completion
data: {"type": "completion", "completion": " !", "stop_reason": null, "model": "claude-2.0"}
event: ping
data: {"type": "ping"}
event: completion
data: {"type": "completion", "completion": " Je", "stop_reason": null, "model": "claude-2.0"}
event: completion
data: {"type": "completion", "completion": " m'appelle", "stop_reason": null, "model": "claude-2.0"}
event: completion
data: {"type": "completion", "completion": " Claude", "stop_reason": null, "model": "claude-2.0"}
event: completion
data: {"type": "completion", "completion": ".", "stop_reason": null, "model": "claude-2.0"}
event: completion
data: {"type": "completion", "completion": "", "stop_reason": "stop_sequence", "model": "claude-2.0"}
Événements
Chaque événement comprend un type d’événement nommé et des données JSON associées.
Types d’événements : completion
, ping
, error
.
Types d’événements d’erreur
Nous pouvons occasionnellement envoyer des erreurs dans le flux d’événements. Par exemple, pendant les périodes d’utilisation intensive, vous pouvez recevoir une overloaded_error
, qui correspondrait normalement à un HTTP 529 dans un contexte non streaming :
event: completion
data: {"completion": " Bonjour", "stop_reason": null, "model": "claude-2.0"}
event: error
data: {"error": {"type": "overloaded_error", "message": "Surchargé"}}
Anciennes versions de l’API
Si vous utilisez une version de l’API antérieure à 2023-06-01
, la forme de la réponse sera différente. Voir versioning pour plus de détails.