Rédiger des schémas JSON détaillés pour l'extraction de données structurées peut être un véritable point de friction lorsque l'on travaille avec des outils d'IA. Il existe une astuce ingénieuse qui vous permet de spécifier la structure de données souhaitée directement dans votre prompt au lieu de créer des schémas complexes.
L'approche du schéma flexible
Plutôt que de rédiger un schéma détaillé pour chaque tâche d'extraction de données, vous pouvez créer un outil générique unique appelé to_json qui accepte n'importe quelle structure d'objet. L'astuce consiste à configurer le schéma d'entrée pour autoriser des propriétés supplémentaires, puis à spécifier vos exigences exactes dans le prompt lui-même.

Cette approche élimine un point de friction majeur : la rédaction et la gestion constantes de grands schémas JSON. Les résultats ne seront pas tout à fait aussi bons qu'avec un schéma dédié, mais vous obtiendrez tout de même une sortie JSON de haute qualité avec beaucoup moins de travail de configuration.
Comment ça fonctionne
Le processus est simple :
- Créez un schéma flexible unique qui accepte n'importe quelle structure d'objet
- Dans votre prompt, spécifiez exactement la structure de données que vous souhaitez
- Indiquez à Claude d'appeler l'outil
to_jsonavec la structure que vous avez spécifiée - Utilisez
tool_choicepour forcer Claude à utiliser votre outil
Configuration du prompt
Lorsque vous rédigez votre prompt, soyez très explicite sur la structure que vous souhaitez. Voici un exemple de la façon de structurer votre requête :
Analyze the article below and extract key data. Then call the to_json tool.
<article_text>
{result["text"]}
</article_text>
When you call to_json, pass in the following structure:
{{
"title": str # title of the article,
"author": str # author of the article,
"topics": List[str] # List of topics mentioned in the article
}}Effectuer l'appel API
L'appel API utilise le schéma flexible et force l'utilisation d'outils :
flexible_result = chat(messages, tools=[to_json_schema], tool_choice="to_json")Modifications faciles de la structure
L'avantage réel devient évident lorsque vous devez modifier votre structure de données. Au lieu de réécrire un schéma entier, vous mettez simplement à jour votre prompt. Vous souhaitez ajouter un champ pour le nombre de sujets ? Ajoutez simplement une ligne :
"num_topics": int # Number of topics mentionedC'est tout - aucune modification de schéma n'est nécessaire.
Quand utiliser chaque approche
L'approche du schéma flexible fonctionne très bien pour :
- Le prototypage rapide et l'expérimentation
- Les tâches simples d'extraction de données
- Les situations où vous modifiez fréquemment les exigences de données
Privilégiez les schémas dédiés pour :
- Les tâches critiques d'extraction de données en production
- Les structures de données imbriquées complexes
- Lorsque vous avez besoin de la plus grande précision possible
L'approche flexible vous offre environ 90 % de la qualité pour 10 % du travail de configuration, ce qui la rend parfaite pour la plupart des cas d'usage où vous avez besoin d'extraction de données structurées sans la charge de gestion des schémas.