Gestion des raisons d'arrêt
Apprenez à gérer les différentes raisons d’arrêt dans les réponses de l’API Messages de Claude.
Lorsque vous faites une requête à l’API Messages, la réponse de Claude inclut un champ stop_reason
qui indique pourquoi le modèle a arrêté de générer sa réponse. Comprendre ces valeurs est crucial pour construire des applications robustes qui gèrent différents types de réponses de manière appropriée.
Pour plus de détails sur stop_reason
dans la réponse de l’API, consultez la référence de l’API Messages.
Qu’est-ce que stop_reason ?
Le champ stop_reason
fait partie de chaque réponse réussie de l’API Messages. Contrairement aux erreurs, qui indiquent des échecs dans le traitement de votre requête, stop_reason
vous indique pourquoi Claude a terminé avec succès la génération de sa réponse.
Valeurs de stop reason
end_turn
La raison d’arrêt la plus courante. Indique que Claude a terminé sa réponse naturellement.
max_tokens
Claude s’est arrêté parce qu’il a atteint la limite max_tokens
spécifiée dans votre requête.
stop_sequence
Claude a rencontré une de vos séquences d’arrêt personnalisées.
tool_use
Claude appelle un outil et s’attend à ce que vous l’exécutiez.
pause_turn
Utilisé avec les outils serveur comme la recherche web lorsque Claude doit mettre en pause une opération de longue durée.
refusal
Claude a refusé de générer une réponse en raison de préoccupations de sécurité.
Meilleures pratiques pour gérer les raisons d’arrêt
1. Toujours vérifier stop_reason
Prenez l’habitude de vérifier le stop_reason
dans votre logique de gestion des réponses :
2. Gérer max_tokens avec élégance
Lorsqu’une réponse est tronquée en raison des limites de tokens :
3. Implémenter une logique de nouvelle tentative pour pause_turn
Pour les outils serveur qui peuvent se mettre en pause :
Stop reasons vs erreurs
Il est important de distinguer entre les valeurs stop_reason
et les erreurs réelles :
Stop reasons (réponses réussies)
- Partie du corps de la réponse
- Indiquent pourquoi la génération s’est arrêtée normalement
- La réponse contient du contenu valide
Erreurs (requêtes échouées)
- Codes de statut HTTP 4xx ou 5xx
- Indiquent des échecs de traitement de requête
- La réponse contient des détails d’erreur
Considérations de streaming
Lors de l’utilisation du streaming, stop_reason
est :
null
dans l’événement initialmessage_start
- Fourni dans l’événement
message_delta
- Non fourni dans aucun autre événement
Modèles courants
Gestion des flux de travail d’utilisation d’outils
Assurer des réponses complètes
En gérant correctement les valeurs stop_reason
, vous pouvez construire des applications plus robustes qui gèrent avec élégance différents scénarios de réponse et offrent de meilleures expériences utilisateur.