0Pricing
AI Prompt Engineering · Leçon

Schéma JSON dans les prompts

Contraindre la structure de la sortie.

Schéma JSON dans les prompts est une leçon AI Prompt Engineering gratuite sur CoddyKit. Ceci est la leçon 2 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 Prompt Engineering, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AI Prompt Engineering comprend 4 leçons au total.

Le schéma comme contrat de sortie

Un schéma JSON décrit de manière déclarative la structure d'une sortie valide : types, clés obligatoires, contraintes sur les valeurs et imbrication. Lorsqu'il est transmis à une API de sortie structurée, il devient un contrat strict ; lorsqu'il est intégré à une instruction, il constitue un guidage fort.

La maîtrise de la rédaction de schémas est la compétence fondamentale de la génération structurée.

L'indicateur de stricte validation change tout

En mode strict, les fournisseurs exigent que chaque propriété soit listée dans required et que additionalProperties soit défini sur false. Les champs facultatifs s'expriment comme une union avec null, et non par omission.

{
  'type': 'object',
  'properties': {
    'name': {'type': 'string'},
    'nickname': {'type': ['string', 'null']}
  },
  'required': ['name', 'nickname'],
  'additionalProperties': False
}

Contraindre les valeurs scalaires

Intégrez la validation au schéma plutôt que d'effectuer un post-traitement :

  • enum pour les choix fixes.
  • minimum/maximum pour les plages numériques.
  • pattern pour les chaînes validées par expression régulière.
  • format pour des indications telles que date-time ou email.
{
  'rating': {'type': 'integer', 'minimum': 1, 'maximum': 5},
  'sku': {'type': 'string', 'pattern': '^[A-Z]{3}-[0-9]{4}$'},
  'created': {'type': 'string', 'format': 'date-time'}
}

Tableaux et n-uplets

Utilisez items pour les tableaux homogènes et ajoutez minItems/maxItems pour en limiter la longueur. Pour les n-uplets positionnels, fournissez un tableau de schémas via prefixItems.

{
  'tags': {
    'type': 'array',
    'items': {'type': 'string'},
    'minItems': 1,
    'maxItems': 5
  }
}

Unions discriminées avec oneOf

Modélisez les résultats polymorphes avec oneOf et un champ discriminant. Le modèle choisit exactement une branche et votre désérialiseur sélectionne le comportement à partir de l'étiquette.

{
  'oneOf': [
    {'type': 'object', 'properties': {
        'kind': {'const': 'email'},
        'address': {'type': 'string', 'format': 'email'}},
     'required': ['kind', 'address']},
    {'type': 'object', 'properties': {
        'kind': {'const': 'phone'},
        'number': {'type': 'string'}},
     'required': ['kind', 'number']}
  ]
}

Générer des schémas à partir de types

Rédiger des schémas à la main est source d'erreurs. Déduisez-les de modèles typés afin que le schéma et votre code ne divergent jamais.

from pydantic import BaseModel

class Invoice(BaseModel):
    total: float
    currency: str
    paid: bool

schema = Invoice.model_json_schema()
# pass schema directly to response_format

Les descriptions servent aussi d'instructions

Chaque description du schéma est lue par le modèle. Utilisez-les pour orienter la sémantique, et pas seulement pour documenter les champs.

Par exemple, une description telle que 'code de pays ISO-3166 alpha-2, en majuscules' améliore sensiblement l'exactitude du champ. Considérez les descriptions comme des micro-instructions intégrées au contrat.

{
  'country': {
    'type': 'string',
    'description': 'ISO-3166 alpha-2 code, uppercase, e.g. US, TR, DE'
  }
}

Intégrer le schéma dans l'instruction

Lorsque le fournisseur ne prend pas en charge cette fonctionnalité nativement, intégrez le schéma dans l'instruction et exigez sa conformité. Associez-le à un unique exemple contextuel et à une instruction explicite : JSON uniquement, sans prose.

SYSTEM = (
  'You output ONLY JSON matching this schema. No markdown, no commentary.\n'
  'Schema:\n' + json.dumps(schema) + '\n'
  'If a value is unknown, use null.'
)

Éviter la surcharge des schémas

Les schémas excessivement profonds ou comportant trop de branches perturbent le modèle et augmentent le coût en jetons. Recommandations :

  • Limitez l'imbrication ; aplatissez la structure lorsque c'est possible.
  • Préférez les énumérations aux chaînes libres.
  • Divisez un schéma gigantesque en plusieurs appels ciblés.
  • Certains fournisseurs limitent la profondeur d'imbrication et le nombre total de propriétés ; vérifiez ces limites.

Références et réutilisation

Utilisez $defs et $ref pour réutiliser des sous-schémas (par exemple, une Address utilisée pour la facturation et la livraison). Notez que certains modes stricts limitent la profondeur de récursion ; vérifiez donc la prise en charge avant de vous appuyer sur des références autoréférentielles.

{
  '$defs': {
    'Address': {'type': 'object', 'properties': {
        'city': {'type': 'string'}}, 'required': ['city'],
      'additionalProperties': False}
  },
  'type': 'object',
  'properties': {
    'billing': {'$ref': '#/$defs/Address'},
    'shipping': {'$ref': '#/$defs/Address'}
  },
  'required': ['billing', 'shipping'],
  'additionalProperties': False
}

Valider le schéma lui-même

Une catégorie subtile de bogues concerne le schéma malformé, et non la sortie. Analysez et validez les schémas dans votre processus d'intégration continue par rapport au méta-schéma JSON, puis faites passer un objet d'exemple en aller-retour dans votre validateur avant la mise en production.

import jsonschema
jsonschema.Draft202012Validator.check_schema(schema)
# also: validate a known-good sample
jsonschema.validate(sample_obj, schema)

Vérification rapide

Dans le mode schéma JSON strict d'un fournisseur, comment exprimer correctement un champ facultatif ?

Récapitulatif

Vous savez maintenant rédiger des schémas précis :

  • Le mode strict exige que toutes les propriétés soient obligatoires et que additionalProperties soit défini sur false.
  • Contraignez les valeurs scalaires avec des énumérations, des plages, des motifs et des formats.
  • Modélisez le polymorphisme avec des discriminants oneOf.
  • Générez les schémas à partir de modèles typés et considérez les descriptions comme des micro-instructions.
  • Validez le schéma lui-même dans le processus d'intégration continue.

Ensuite : appliquer les schémas aux appels d'outils et de fonctions.

Questions Fréquemment Posées

La leçon « Schéma JSON dans les prompts » est-elle gratuite ?

Oui — le texte complet de « Schéma JSON dans les prompts » 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 Prompt Engineering, passe à CoddyKit PRO. Le cours AI Prompt Engineering comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Schéma JSON dans les prompts » ?

Contraindre la structure de la sortie. Tu pratiques AI Prompt Engineering 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 Prompt Engineering ?

Aucune expérience préalable n'est requise. AI Prompt Engineering 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 2 sur 4.

Combien de temps prend la leçon « Schéma JSON dans les prompts » ?

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 Prompt Engineering ?

Oui. Chaque leçon AI Prompt Engineering 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. Pourquoi utiliser une sortie structurée
  2. Schéma JSON dans les prompts
  3. Schémas d’outils et de fonctions
  4. Boucles de correction et de validation
← Retour à AI Prompt Engineering