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
FAQ
Quelle est la différence entre structured output et function calling ?
Comment garantir que le modèle respecte toujours le format demandé ?
Le structured output affecte-t-il la qualité des réponses du modèle ?
Voir aussi
Recevez de nouveaux prompts chaque semaine
Rejoignez notre newsletter.