Retour aux articles
8 MIN READ

Comment obtenir une sortie JSON de ChatGPT et d'autres LLM

By Learnia Team

Comment obtenir une sortie JSON de ChatGPT et d'autres LLM

📅 Dernière mise à jour : 28 janvier 2026

📚 Articles liés : Guide de prompting ChatGPT 5.2 | Techniques de meta-prompting | GPT-5.2-Codex en détail


Table des matières

  1. Pourquoi la sortie JSON est importante
  2. Techniques de base
  3. Problèmes courants
  4. Mode JSON natif
  5. Comparaison par modèle
  6. Patterns JSON avancés
  7. FAQ

Obtenir de l'IA une réponse JSON bien formatée au lieu de paragraphes de texte peut sembler magique — quand ça fonctionne. Mais cela peut aussi être frustrant quand le modèle ajoute des commentaires supplémentaires ou casse le format.

Explorons pourquoi la sortie structurée est importante et les concepts clés pour y parvenir correctement.


Learn AI — From Prompts to Agents

10 Free Interactive Guides120+ Hands-On Exercises100% Free

Pourquoi la sortie JSON est importante

Quand vous construisez des applications avec l'IA, vous ne voulez pas de la prose — vous voulez des données analysables.

Le problème de la sortie non structurée

Utilisateur : Liste les 3 meilleurs langages de programmation

IA : Bien sûr ! Voici les 3 meilleurs langages de programmation :
1. Python - Idéal pour les débutants et la data science
2. JavaScript - Essentiel pour le développement web
3. TypeScript - JavaScript avec des types

Ce sont tous d'excellents choix selon vos besoins...

C'est agréable pour les humains mais terrible pour le code. Vous ne pouvez pas extraire les données de manière fiable.

La puissance de la sortie structurée

{
  "languages": [
    {"name": "Python", "use_case": "Data science, débutants"},
    {"name": "JavaScript", "use_case": "Développement web"},
    {"name": "TypeScript", "use_case": "JavaScript typé"}
  ]
}

Maintenant votre code peut analyser cela directement. Plus besoin d'acrobaties avec les regex.


Techniques de base pour la sortie JSON

1. Instructions de format explicites

Dites à l'IA exactement quel format vous souhaitez :

Retournez votre réponse sous forme d'objet JSON avec cette structure :
{
  "title": "string",
  "summary": "string",
  "tags": ["tableau", "de", "chaînes"]
}

Ne produisez que le JSON, aucun autre texte.

2. Fournir un exemple

Montrez à l'IA ce que vous attendez :

Extrayez les informations produit de cette description et retournez le résultat en JSON.

Exemple de sortie :
{"name": "Widget Pro", "price": 29.99, "category": "Outils"}

Description : "Le SuperBlender 3000 coûte 149 € et fait partie de notre catégorie Cuisine"

3. Utiliser les messages système (API)

Avec l'API, le message système peut imposer le format :

System : Vous êtes un répondeur JSON uniquement. Produisez du JSON valide et rien d'autre.

Problèmes courants

1. Texte supplémentaire autour du JSON

Le modèle peut dire « Voici le JSON : » avant la sortie effective.

Solution : Soyez explicite : « Produisez UNIQUEMENT du JSON valide. Pas d'introduction, pas d'explication. »

2. Syntaxe JSON invalide

Guillemets manquants, virgules en trop ou crochets cassés.

Solution : Demandez au modèle de valider : « Assurez-vous que le JSON est valide et analysable. »

3. Structure incohérente

Parfois les clés sont présentes, parfois non.

Solution : Définissez le schéma explicitement et indiquez quels champs sont obligatoires.


Quand la sortie structurée excelle

La sortie structurée est essentielle pour :

  • Intégrations API — Alimenter d'autres systèmes avec la sortie IA
  • Stockage en base de données — Stocker les réponses dans un format structuré
  • Workflows d'automatisation — Intégrations Zapier, Make, n8n
  • Rendu frontend — Afficher les sorties IA dans des composants UI
  • Extraction de données — Extraire des informations structurées de texte non structuré

JSON vs. autres formats

FormatIdéal pourLimitation
JSONAPI, intégration codeVerbose pour les données simples
MarkdownDocumentation, sortie lisiblePlus difficile à analyser
CSVDonnées tabulairesPas de structures imbriquées
YAMLFichiers de config, lisibilité humaineMoins courant dans les API

Le JSON est le choix le plus universel pour l'usage programmatique.


Mode JSON natif (API)

Les API modernes proposent désormais un mode JSON qui garantit une sortie JSON valide. C'est un changement majeur pour la fiabilité.

Mode JSON OpenAI (GPT-5.2)

import openai

client = openai.OpenAI()

response = client.chat.completions.create(
    model="gpt-5.2",
    response_format={"type": "json_object"},
    messages=[
        {"role": "system", "content": "Output valid JSON only."},
        {"role": "user", "content": "List top 3 programming languages with use cases"}
    ]
)

# JSON valide garanti
import json
data = json.loads(response.choices[0].message.content)

Mode JSON Claude

import anthropic

client = anthropic.Anthropic()

message = client.messages.create(
    model="claude-sonnet-4-5-20250514",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": """Return a JSON object with this exact structure:
            {"languages": [{"name": "...", "use_case": "..."}]}
            
            List top 3 programming languages. Output ONLY the JSON."""
        }
    ]
)

Sortie structurée Gemini

Gemini prend en charge la sortie structurée basée sur un schéma :

import google.generativeai as genai

model = genai.GenerativeModel('gemini-3-pro')

response = model.generate_content(
    "List top 3 programming languages",
    generation_config=genai.GenerationConfig(
        response_mime_type="application/json",
        response_schema={
            "type": "object",
            "properties": {
                "languages": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "name": {"type": "string"},
                            "use_case": {"type": "string"}
                        }
                    }
                }
            }
        }
    )
)

Sortie JSON par modèle

ModèleMode JSONValidation de schémaFiabilité
GPT-5.2✅ NatifVia function callingExcellente
GPT-4o✅ NatifVia function callingTrès bonne
Claude Sonnet 4.5✅ NatifVia tool useExcellente
Gemini 3 Pro✅ Natif✅ Basé sur schémaExcellente
DeepSeek V3⚠️ PromptingManuelleBonne
Llama 3⚠️ PromptingManuelleVariable

Patterns JSON avancés

Pattern 1 : Définition de schéma

Définissez votre schéma explicitement pour des résultats cohérents :

Retournez un objet JSON correspondant à cette interface TypeScript :

interface ProductAnalysis {
  name: string;
  category: string;
  sentiment: "positive" | "negative" | "neutral";
  keyFeatures: string[];  // exactement 3 éléments
  priceRange: {
    min: number;
    max: number;
    currency: "USD" | "EUR";
  };
}

Pattern 2 : Instructions de validation

Demandez au modèle de s'auto-valider :

Avant de produire la sortie, vérifiez votre JSON :
1. Tous les champs obligatoires sont présents
2. Les tableaux ont la longueur correcte
3. Pas de virgules en trop
4. Les chaînes sont correctement entre guillemets
5. Compatible avec JSON.parse()

Si un contrôle échoue, corrigez avant de produire la sortie.

Pattern 3 : Récupération d'erreurs

Gérez le JSON malformé avec élégance :

import json
import re

def parse_llm_json(response: str) -> dict:
    # Essayer l'analyse directe
    try:
        return json.loads(response)
    except json.JSONDecodeError:
        pass
    
    # Extraire le JSON d'un bloc de code markdown
    match = re.search(r'```json?\s*([\s\S]*?)```', response)
    if match:
        try:
            return json.loads(match.group(1))
        except json.JSONDecodeError:
            pass
    
    # Extraire le premier bloc { }
    match = re.search(r'\{[\s\S]*\}', response)
    if match:
        try:
            return json.loads(match.group(0))
        except json.JSONDecodeError:
            pass
    
    raise ValueError("Impossible d'analyser le JSON de la réponse")

FAQ

Le mode JSON consomme-t-il plus de tokens ?

Non. Le mode JSON n'augmente pas l'utilisation de tokens. Cependant, demander une sortie structurée produit souvent des réponses plus concises.

Peut-on utiliser le mode JSON avec le streaming ?

Oui, mais vous devrez mettre la réponse en mémoire tampon et l'analyser une fois complète, car du JSON partiel n'est pas valide.

Que faire si le modèle retourne du JSON invalide malgré le mode JSON ?

Avec le mode JSON natif, c'est extrêmement rare. Si cela arrive, relancez la requête. Pour les applications critiques, implémentez une logique de validation et de relance.

Faut-il utiliser le function calling au lieu du mode JSON ?

Le function calling (tool use) est préférable quand vous avez besoin que le modèle choisisse entre des actions. Le mode JSON est préférable pour l'extraction de données pure.


Articles liés


Points clés à retenir

  1. La sortie structurée rend les réponses IA lisibles par les machines
  2. Utilisez des instructions de format explicites et des exemples
  3. Indiquez « JSON uniquement, aucun autre texte » pour éviter les ajouts
  4. Définissez clairement votre schéma pour la cohérence
  5. Le mode JSON des API modernes offre des garanties

Prêt à maîtriser les sorties structurées ?

Cet article a couvert le quoi et le pourquoi de l'obtention de JSON depuis l'IA. Mais une sortie structurée fiable nécessite des techniques plus avancées.

Dans notre Module 2 — Sorties structurées, vous apprendrez :

  • Les techniques avancées de définition de schéma
  • Comment gérer les champs optionnels vs obligatoires
  • Les stratégies de validation pour les systèmes de production
  • Le travail avec les structures imbriquées et complexes
  • L'utilisation du mode JSON et des API de function calling

Explorer le Module 2 : Sorties structurées


Dernière mise à jour : 28 janvier 2026

GO DEEPER — FREE GUIDE

Module 2 — Structured Outputs

Learn to get reliable, formatted responses like JSON and tables.

Newsletter

Weekly AI Insights

Tools, techniques & news — curated for AI practitioners. Free, no spam.

Free, no spam. Unsubscribe anytime.

FAQ

Comment obtenir une sortie JSON de ChatGPT ?+

Utilisez des instructions de format explicites, fournissez des exemples ou activez le mode JSON dans l'API. Indiquez « Produisez UNIQUEMENT du JSON valide, aucun autre texte. »

Qu'est-ce que le mode JSON dans ChatGPT ?+

Le mode JSON garantit une sortie JSON valide depuis l'API. Activez-le avec response_format={'type': 'json_object'} dans votre appel API.

Pourquoi ChatGPT ajoute-t-il du texte autour de mon JSON ?+

Le modèle essaie d'être utile. Empêchez cela en indiquant explicitement « Pas d'introduction, pas d'explication, uniquement la sortie JSON. »

Claude et Gemini peuvent-ils produire du JSON ?+

Oui. Tous les principaux LLM prennent en charge la sortie JSON via un prompting explicite. Claude et GPT-5.2 supportent également le mode JSON natif.

Comment valider le JSON provenant des LLM ?+

Utilisez des bibliothèques de validation de schéma comme Pydantic (Python) ou Zod (TypeScript). Définissez votre structure attendue et validez les réponses.