Chargement

Extraction d'outils flexible

Leçon 319 min

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_json avec la structure que vous avez spécifiée
  • Utilisez tool_choice pour 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 :

python
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 :

python
"num_topics": int # Number of topics mentioned

C'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.