AI Agents · Leçon

Mode JSON et sorties d’appels d’outils

Utilisez response_format={'type':'json_object'} ou un appel d’outil unique pour imposer une sortie analysable par une machine.

Leçon 1 sur 414 étapes

Mode JSON et sorties d’appels d’outils est une leçon AI Agents gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AI Agents, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Agents comprend 4 leçons au total.

Le besoin de structure

Le texte libre produit par les LLM est incompatible avec le code. Les agents de production ont besoin d’une sortie analysable : JSON, XML, arguments de fonction — jamais « la réponse est… »

Mode JSON (OpenAI)

Demandez au modèle de « toujours renvoyer du JSON » :

from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=[
        {'role': 'system', 'content': 'Return a JSON object with name and age.'},
        {'role': 'user', 'content': 'Alice, 30 years old.'}
    ],
    response_format={'type': 'json_object'}
)
import json
data = json.loads(response.choices[0].message.content)

Réserve concernant le mode JSON

Le mode JSON garantit uniquement la validité du JSON, et non sa SHAPE. Le modèle pourrait renvoyer {} ou {"foo": "bar"}. Validez toujours la structure également.

Sorties structurées (strictes)

Les sorties structurées d’OpenAI garantissent que la réponse correspond à un schéma JSON :

schema = {
    'name': 'person',
    'schema': {
        'type': 'object',
        'properties': {
            'name': {'type': 'string'},
            'age': {'type': 'integer'}
        },
        'required': ['name', 'age'],
        'additionalProperties': False
    },
    'strict': True
}

response = client.chat.completions.create(
    model='gpt-4o-2024-08-06',
    messages=...,
    response_format={'type': 'json_schema', 'json_schema': schema}
)

Fonctionnement du mode strict

Le mode strict contraint le décodeur, si bien que le modèle ne peut littéralement pas produire de jeton invalide. La sortie correspond à 100 % au schéma.

Appels d’outils comme sortie structurée

Vous pouvez forcer un appel d’outil précis pour extraire des données structurées :

tools = [{'type': 'function', 'function': {
    'name': 'submit_person',
    'parameters': {
        'type': 'object',
        'properties': {'name': {'type': 'string'}, 'age': {'type': 'integer'}},
        'required': ['name', 'age']
    }
}}]

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=...,
    tools=tools,
    tool_choice={'type': 'function', 'function': {'name': 'submit_person'}}
)
args = json.loads(response.choices[0].message.tool_calls[0].function.arguments)

Utilisation d’outils Anthropic comme sortie

Anthropic applique le même modèle avec tool_choice="tool" :

tool_choice = {'type': 'tool', 'name': 'submit_person'}
print(tool_choice)

JSON par préremplissage (Anthropic)

Pour utiliser Claude sans outils, préremplissez le tour de l’assistant avec {

messages = [
    {'role': 'user', 'content': 'Give me JSON for Alice, 30.'},
    {'role': 'assistant', 'content': '{'}
]
# Output starts with { and likely produces valid JSON.
for m in messages:
    print(f"{m['role']}: {m['content']}")
print("Output starts with { and likely produces valid JSON.")

Pydantic + mode strict

Le SDK Python d’OpenAI propose un raccourci avec Pydantic :

from pydantic import BaseModel

class Person(BaseModel):
    name: str
    age: int

response = client.beta.chat.completions.parse(
    model='gpt-4o-2024-08-06',
    messages=...,
    response_format=Person
)
person = response.choices[0].message.parsed
# Pydantic instance, type-safe

Pièges courants

  • Mode JSON sans mode strict : le modèle peut renvoyer une structure incorrecte
  • Oublier additionalProperties: false en mode strict
  • Les champs obligatoires ne figurent pas dans le tableau "required"
  • Le mode strict est disponible uniquement avec gpt-4o-2024-08-06 et les versions ultérieures

Coût des sorties structurées

Le mode strict entraîne une légère surcharge due au décodage contraint par une grammaire, négligeable par rapport au gain de qualité. Activez-le toujours lorsque la structure est importante.

Combiner avec la validation

Même les sorties strictes doivent ensuite être validées par Pydantic. Une défense en profondeur permet de détecter des cas limites comme des entiers hors limites.

Garantie du mode strict

Que garantit le mode strict des sorties structurées d’OpenAI ?

Récapitulatif

Le mode JSON convient à une structure permissive, les sorties strictes garantissent la structure, les appels d’outils produisent le même effet et le préremplissage Anthropic fonctionne avec Claude. Validez toujours ensuite.

Gratuit pour commencer

Apprends AI Agents avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
60
Leçons
239

Questions Fréquemment Posées

La leçon « Mode JSON et sorties d’appels d’outils » est-elle gratuite ?

Oui — le texte complet de « Mode JSON et sorties d’appels d’outils » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AI Agents, passe à CoddyKit PRO. Le cours AI Agents comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Mode JSON et sorties d’appels d’outils » ?

Utilisez response_format={'type':'json_object'} ou un appel d’outil unique pour imposer une sortie analysable par une machine. Tu pratiques AI Agents avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer AI Agents ?

Aucune expérience préalable n'est requise. AI Agents sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Mode JSON et sorties d’appels d’outils » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon AI Agents ?

Oui. Chaque leçon AI Agents inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Mode JSON et sorties d’appels d’outils
  2. Validation de schéma avec Pydantic
  3. Boucles de correction des sorties malformées
  4. Instructor / Outlines pour une structure garantie
← Retour à AI Agents