Aller au contenu principal

Donnees structurees avec les outils

Plus tot dans ce cours, nous avons couvert l’extraction de donnees structurees avec le pre-remplissage de messages et les sequences d’arret. Cette approche fonctionne bien et est simple a mettre en place, mais les outils offrent une extraction plus fiable. La methode est plus complexe a implementer, mais fournit une meilleure coherence.

Pourquoi deux approches ?

Les outils necessitent beaucoup plus de configuration et de complexite. Avoir les deux techniques disponibles donne de la flexibilite : parfois l’approche rapide par prompt suffit, d’autres fois la fiabilite des outils est necessaire.

Comment ca marche

Le concept de base : au lieu de demander a Claude de formater sa reponse en JSON, vous creez un outil dont les parametres d’entree correspondent exactement a la structure de donnees que vous voulez extraire. Claude “appelle” cet outil avec les donnees extraites comme arguments.

Le processus :

  1. Ecrire un schema JSON decrivant la structure de donnees voulue
  2. Creer un outil avec ce schema comme specification d’entree
  3. Envoyer vos donnees et le schema a Claude
  4. Forcer Claude a utiliser l’outil avec le parametre toolChoice
  5. Extraire les donnees structurees des arguments de l’appel d’outil

Controler l’utilisation de l’outil

# Claude decide (defaut)
{"toolChoice": {"auto": {}}}

# Claude doit utiliser un outil, au choix
{"toolChoice": {"any": {}}}

# Claude doit utiliser cet outil precis
{"toolChoice": {"tool": {"name": "article_details"}}}

Pour l’extraction de donnees structurees, utilisez presque toujours la troisieme option.

Exemple pratique

Extraire le titre, l’auteur et les sujets cles d’un article :

article_details_schema = {
    "toolSpec": {
        "name": "article_details",
        "description": "Extrait les informations cles d'un article",
        "inputSchema": {
            "json": {
                "type": "object",
                "properties": {
                    "title": {
                        "type": "string",
                        "description": "Le titre de l'article"
                    },
                    "author": {
                        "type": "string",
                        "description": "Le nom de l'auteur"
                    },
                    "topics": {
                        "type": "array",
                        "items": {"type": "string"},
                        "description": "Liste des sujets cles mentionnes"
                    }
                },
                "required": ["title", "author", "topics"]
            }
        }
    }
}

Avantages

  • Plus fiable que l’extraction par prompt
  • Structure garantie correspondant au schema
  • Pas besoin de pre-remplissage ni de sequences d’arret
  • Validation integree via le schema de l’outil

Le compromis principal est la complexite. Mais quand vous avez besoin de sorties structurees coherentes et fiables, les outils sont la voie a suivre.