Extraction flexible avec outils
Mis à jour le 30 juillet 2026
L’extraction par outils de la leçon précédente est robuste, mais elle a un coût récurrent : écrire des schémas JSON détaillés pour chaque tâche d’extraction devient vite fastidieux — chaque nouveau format de données exige son schéma, chaque évolution une réécriture. Il existe une astuce qui vous permet de spécifier la structure de données désirée directement dans le prompt, au lieu de créer des schémas complexes. Moins orthodoxe, remarquablement pratique.
L’approche du schéma flexible
Au lieu d’écrire un schéma détaillé pour chaque tâche, créez un seul outil générique appelé to_json qui accepte n’importe quelle structure d’objet. Le schéma d’entrée autorise les propriétés additionnelles — il ne contraint presque rien —, et vous spécifiez vos exigences exactes dans le prompt lui-même. Le renversement est complet : le schéma, d’ordinaire le gardien rigide du format, devient une simple porte d’entrée ; c’est le prompt qui décrit la structure.
Cette approche élimine un point de friction majeur : la gestion constante de grands schémas JSON. Les résultats ne seront pas tout à fait aussi bons qu’avec un schéma dédié — le format est demandé, plus imposé —, mais vous obtiendrez du JSON de haute qualité avec beaucoup moins de travail.
Comment ça fonctionne
Le montage tient en quatre gestes :
- Créer un seul schéma flexible qui accepte n’importe quelle structure d’objet
- Dans votre prompt, spécifier exactement la structure de données voulue
- Dire à Claude d’appeler l’outil
to_jsonavec la structure spécifiée - Utiliser
tool_choicepour forcer Claude à utiliser votre outil
Le tool_choice forcé reste indispensable : c’est lui qui garantit que la réponse sera un appel d’outil — donc du JSON dans les arguments — et rien d’autre. Seule la description de la structure a déménagé du schéma vers le prompt.
Configurer le prompt
Tout repose alors sur la précision du prompt. Soyez très explicite sur la structure voulue :
Analysez l'article ci-dessous et extrayez les données cles.
Puis appelez l'outil to_json.
<article_text>
{result["text"]}
</article_text>
Quand vous appelez to_json, passez la structure suivante :
{{
"title": str # titre de l'article,
"author": str # auteur de l'article,
"topics": List[str] # Liste des sujets mentionnés
}}
Remarquez la notation : une pseudo-structure avec types Python (str, List[str]) et commentaires par champ. Ce n’est pas du JSON Schema formel — c’est une description que Claude lit comme un contrat, et qu’il honore d’autant mieux que chaque champ est typé et commenté. Les balises XML autour de l’article gardent leur rôle habituel : séparer les données à analyser des consignes.
Modifier facilement la structure
Le vrai avantage apparaît quand vous devez modifier la structure. Au lieu de réécrire un schéma entier — propriétés, types, champs requis —, mettez simplement à jour le prompt. Ajouter un champ ? Une seule ligne :
"num_topics": int # Nombre de sujets mentionnés
Aucune modification de schéma nécessaire. Pour une équipe qui itère sur un format d’extraction plusieurs fois par jour — en exploration de données, typiquement —, cette souplesse change le rythme de travail.
Quand utiliser chaque approche
Le choix se résume à un arbitrage rigueur/vélocité. Le schéma flexible est idéal pour le prototypage rapide et l’expérimentation, les tâches d’extraction simples, et les situations où les exigences changent fréquemment. Le schéma dédié garde l’avantage pour les tâches critiques d’extraction en production, les structures de données imbriquées complexes, et les cas où la précision maximale est non négociable — la validation structurelle de l’API vaut alors son coût d’écriture.
La formule qui résume tout : l’approche flexible offre environ 90 % de la qualité avec 10 % du travail de configuration. Commencez flexible ; passez au schéma dédié quand la production l’exige.
Points clés à retenir
- Un outil générique
to_json+ la structure décrite dans le prompt : plus de schéma par tâche tool_choiceforcé reste obligatoire — c’est lui qui garantit la sortie JSON- Décrivez chaque champ avec type et commentaire : le prompt devient le contrat de format
- Modifier la structure = éditer une ligne de prompt, zéro schéma à réécrire
- 90 % de la qualité pour 10 % de l’effort : flexible pour explorer, schéma dédié pour la production critique