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.
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-safePièges courants
- Mode JSON sans mode strict : le modèle peut renvoyer une structure incorrecte
- Oublier
additionalProperties: falseen 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.
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
- Mode JSON et sorties d’appels d’outils
- Validation de schéma avec Pydantic
- Boucles de correction des sorties malformées
- Instructor / Outlines pour une structure garantie