P

Structured Output : Définition et Exemples

Un structured output est une réponse générée par un modèle d'IA dans un format de données prédéfini et exploitable par une machine, comme du JSON, XML ou YAML, plutôt qu'en texte libre.

Définition complète

Le structured output (ou sortie structurée) désigne la capacité d'un modèle de langage à produire des réponses dans un format de données rigide et prévisible. Au lieu de générer du texte en langage naturel, le modèle retourne une structure organisée — le plus souvent du JSON — dont les champs, types et valeurs respectent un schéma défini à l'avance. Cette approche transforme le LLM en un composant fiable d'une chaîne logicielle.

Dans la pratique, obtenir un structured output repose sur plusieurs techniques complémentaires. La plus simple consiste à décrire le format attendu directement dans le prompt ("Réponds uniquement en JSON avec les clés suivantes..."). Les API modernes comme celles d'OpenAI ou d'Anthropic proposent également des mécanismes natifs : le paramètre response_format, le tool use (function calling) ou encore le mode JSON Schema, qui contraignent le modèle au niveau de la génération elle-même.

L'intérêt principal du structured output est l'interopérabilité. Une réponse en JSON peut être directement parsée par du code, stockée en base de données, affichée dans une interface ou transmise à un autre service. Cela élimine l'étape fragile du parsing de texte libre et réduit considérablement les erreurs d'intégration.

Le structured output est devenu un pilier des applications d'IA en production. Des agents autonomes aux pipelines de données, en passant par l'extraction d'informations et la génération de contenu programmatique, toute application qui doit exploiter la sortie d'un LLM de manière fiable s'appuie sur ce concept.

Étymologie

Le terme vient de l'informatique classique où "structured data" s'oppose à "unstructured data" (texte libre). Appliqué aux LLM, "structured output" est apparu vers 2023 avec la montée en puissance du function calling et des modes JSON dans les API de modèles de langage.

Exemples concrets

Extraction d'entités à partir d'un texte

Extrais les entités nommées du texte suivant et retourne-les en JSON avec les clés "personnes", "lieux" et "organisations". Texte : "Elon Musk a annoncé depuis le siège de Tesla à Austin que SpaceX lancerait une mission en juillet."

Génération de fiches produit pour un catalogue e-commerce

Génère une fiche produit en JSON avec les clés : "nom", "description" (max 150 caractères), "categorie", "prix_suggere", "arguments_vente" (tableau de 3 éléments). Produit : un sac à dos urbain imperméable de 25L.

Analyse de sentiment avec score de confiance

Analyse le sentiment de chaque avis client ci-dessous. Retourne un tableau JSON où chaque objet contient : "avis_id", "sentiment" (positif/neutre/négatif), "score_confiance" (0 à 1), "themes" (tableau de mots-clés).

Usage pratique

Pour obtenir un structured output fiable, fournissez toujours un exemple concret du format attendu dans votre prompt et spécifiez explicitement les types de données (string, number, array). Si votre API le supporte, utilisez les mécanismes natifs comme le JSON mode ou le tool use plutôt que de compter uniquement sur les instructions textuelles. Validez systématiquement la sortie côté code avec un schéma (JSON Schema, Zod, Pydantic) pour gérer les cas où le modèle dévie du format demandé.

Concepts liés

JSON ModeFunction CallingSchema ValidationParsing

FAQ

Quelle est la différence entre structured output et function calling ?
Le function calling est une technique spécifique pour obtenir du structured output : le modèle "appelle" une fonction virtuelle en retournant ses arguments dans un format JSON prédéfini. Le structured output est le concept plus large qui englobe toute sortie dans un format exploitable par une machine, que ce soit via function calling, JSON mode, ou simplement des instructions dans le prompt.
Comment garantir que le modèle respecte toujours le format demandé ?
Aucune méthode ne garantit un respect à 100 % avec les seules instructions textuelles. Pour maximiser la fiabilité, combinez trois approches : utilisez les modes natifs de l'API (JSON mode, tool use), fournissez un schéma précis avec un exemple dans le prompt, et ajoutez une validation côté code (try/catch sur le parsing JSON, validation par schéma) avec une logique de retry en cas d'échec.
Le structured output affecte-t-il la qualité des réponses du modèle ?
Contraindre le format peut légèrement réduire la créativité du modèle, car une partie de sa capacité est utilisée pour respecter la structure. En revanche, cela améliore souvent la précision et la cohérence des informations extraites. Pour les tâches analytiques ou d'extraction, le structured output produit généralement de meilleurs résultats que le texte libre.

Voir aussi

Recevez de nouveaux prompts chaque semaine

Rejoignez notre newsletter.