Lorsque vous avez besoin de données structurées de la part de Claude, vous disposez de deux approches principales : des techniques basées sur les invites utilisant des préremplissages de messages et des séquences d'arrêt, ou une méthode plus robuste utilisant des outils. Bien que l'approche basée sur les invites soit plus simple à mettre en place, les outils offrent une sortie plus fiable au prix d'une complexité supplémentaire.
Outils pour les données structurées
L'approche basée sur les outils fonctionne en créant un schéma JSON qui définit la structure exacte des données que vous souhaitez extraire. Au lieu d'espérer que Claude formate correctement sa réponse, vous donnez essentiellement à Claude une fonction à appeler avec des paramètres spécifiques correspondant à la structure de sortie souhaitée.

Voici comment le processus fonctionne :
- Rédigez un schéma qui décrit la structure des données que vous recherchez
- Forcez Claude à utiliser un outil avec le paramètre
tool_choice - Extrayez les données structurées de la réponse d'utilisation d'outils
- Aucune réponse de suivi n'est nécessaire - vous avez terminé une fois que vous obtenez les données
Par exemple, si vous souhaitez extraire un solde financier et des informations clés d'un relevé, votre schéma les définirait respectivement comme un entier et un tableau de chaînes de caractères.
Contrôler l'utilisation d'outils
Une partie essentielle de cette technique consiste à s'assurer que Claude appelle effectivement votre outil. Vous pouvez contrôler ce comportement à l'aide du paramètre tool_choice :

{"type": "auto"}- Le modèle décide s'il a besoin d'utiliser un outil (par défaut){"type": "any"}- Le modèle doit utiliser un outil, mais peut choisir lequel{"type": "tool", "name": "TOOL_NAME"}- Le modèle doit utiliser l'outil spécifié
Pour l'extraction de données structurées, vous voudrez généralement utiliser la troisième option pour garantir que Claude appelle votre outil de schéma spécifique.
Exemple d'implémentation
Supposons que vous souhaitiez extraire un titre, un auteur et des informations clés d'un article. Tout d'abord, vous créeriez un schéma d'outil :
article_summary_schema = {
"name": "article_summary",
"description": "Extracts structured data from articles",
"input_schema": {
"type": "object",
"properties": {
"title": {"type": "string"},
"author": {"type": "string"},
"key_insights": {
"type": "array",
"items": {"type": "string"}
}
}
}
}Ensuite, vous appelleriez Claude avec l'outil et forceriez son utilisation :
response = chat(
messages,
tools=[article_summary_schema],
tool_choice={"type": "tool", "name": "article_summary"}
)La réponse contiendra un bloc d'utilisation d'outils avec vos données structurées dans le champ input. Vous pouvez y accéder directement :
structured_data = response.content[0].inputQuand utiliser chaque approche
Choisissez la sortie structurée basée sur les invites lorsque vous avez besoin de quelque chose de rapide et simple. Utilisez les outils lorsque vous avez besoin d'une fiabilité garantie et que vous pouvez gérer la complexité de configuration supplémentaire. Les deux techniques sont précieuses selon votre cas d'usage et vos exigences spécifiques.