0Pricing
AI Agents · Leçon

Mise en forme des sorties (JSON, XML, Markdown)

Forcez le modèle à renvoyer des structures analysables en utilisant le mode JSON, des balises XML ou du Markdown strict afin de rendre les sorties lisibles par une machine.

Mise en forme des sorties (JSON, XML, Markdown) est une leçon AI Agents gratuite sur CoddyKit. Ceci est la leçon 3 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.

Pourquoi le format est important

Les agents transmettent les sorties du modèle à du code. La prose libre perturbe les analyseurs. Une sortie structurée (JSON, XML, etc.) est obligatoire pour tout agent utilisé en production.

Mode JSON

OpenAI et la plupart des fournisseurs proposent un mode JSON qui garantit une sortie analysable :

response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=messages,
    response_format={'type': 'json_object'},
)
import json
data = json.loads(response.choices[0].message.content)

Sorties structurées (schéma strict)

Les sorties structurées d'OpenAI prennent un schéma JSON et garantissent que la sortie lui correspond :

schema = {
    'name': 'extract_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=messages,
    response_format={'type': 'json_schema', 'json_schema': schema}
)

Balises XML (style Anthropic)

Anthropic recommande les balises XML comme formatage le plus fiable pour Claude :

system = '''
Return your answer wrapped in XML tags:

<reasoning>Your step-by-step thinking</reasoning>
<answer>The final answer</answer>
'''

# Parse with a simple regex or BeautifulSoup
import re
ans = re.search(r'<answer>(.*?)</answer>', text, re.S).group(1)

Markdown pour les humains

Utilisez Markdown lorsque la sortie est destinée directement à une personne (interface de discussion, documentation).

Évitez Markdown lorsque vous transmettez la sortie à du code — Markdown est difficile à analyser de manière fiable.

Choisissez le bon format selon le destinataire

  • JSON — lorsqu'il est transmis à votre code
  • XML — lorsqu'il est transmis à votre code, notamment avec Claude
  • Markdown — lorsqu'il est destiné à une interface humaine
  • Texte brut — lorsqu'il est transmis à un autre LLM

Montrez plutôt que de vous contenter d'expliquer

Incluez toujours dans votre instruction un exemple littéral de la sortie souhaitée :

system = '''
Return a JSON object like:
{
  "action": "reply",
  "content": "Hi there!",
  "confidence": 0.95
}
'''
print(system.strip())

Forcez le premier jeton

Avec Anthropic, préremplissez le tour de l'assistant avec { ou [ pour forcer une sortie JSON :

messages = [
    {'role': 'user', 'content': 'Return JSON with name and age.'},
    {'role': 'assistant', 'content': '{'}
]
# Output will start at '{ "name": ...' guaranteed.
for m in messages:
    print(f"{m['role']}: {m['content']}")
print('Output will start at \'{ "name": ...\' guaranteed.')

Gérez le texte parasite final

Même avec le mode JSON, il arrive que les modèles ajoutent un préfixe comme « Bien sûr ! Voici le JSON : ». Les analyseurs robustes :

  1. Recherchent le premier { ou [
  2. Comptent les crochets pour trouver le crochet fermant correspondant
  3. N'analysent que cette portion

Instructions de réparation

Si l'analyse échoue, renvoyez la sortie incorrecte au modèle et demandez-lui de la corriger :

repair_prompt = f'''
The previous output failed to parse with error: {error}.
Return ONLY a valid JSON object matching the schema. No prose.

Previous output:
{bad_output}
'''

Pydantic pour la validation

Validez le dictionnaire analysé avec un modèle Pydantic : vérifiez le type des champs et levez une erreur si un champ est absent.

from pydantic import BaseModel

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

person = Person.model_validate_json(response_text)
print(person.name, person.age)

Meilleur format pour le code

Vous transmettez la sortie à Python. Quel format est le plus fiable ?

Récapitulatif

Trois règles :

  1. Choisissez un format adapté au destinataire
  2. Montrez un exemple, ne vous contentez pas de le décrire
  3. Validez chaque réponse et prévoyez une procédure de réparation

Questions Fréquemment Posées

La leçon « Mise en forme des sorties (JSON, XML, Markdown) » est-elle gratuite ?

Oui — le texte complet de « Mise en forme des sorties (JSON, XML, Markdown) » 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 « Mise en forme des sorties (JSON, XML, Markdown) » ?

Forcez le modèle à renvoyer des structures analysables en utilisant le mode JSON, des balises XML ou du Markdown strict afin de rendre les sorties lisibles 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 3 sur 4.

Combien de temps prend la leçon « Mise en forme des sorties (JSON, XML, Markdown) » ?

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. Zero-shot, few-shot et chaîne de raisonnement
  2. Rôles système, utilisateur et assistant
  3. Mise en forme des sorties (JSON, XML, Markdown)
  4. Éviter l’injection de prompt dans les entrées
← Retour à AI Agents