AI / LLM Dev Tools

Vérifier un schéma de sortie structurée

Collez un JSON Schema ou le contenu de parameters, puis choisissez le profil cible. Les diagnostics indiquent le chemin et la règle à revoir.

Schéma de sortie structurée

JSON Schema

Rapport de validation

Collez un JSON Schema pour commencer.

Entrées et références sont traitées dans ce navigateur, sans transfert des données ni téléchargement de références distantes.

Collez le schéma lui-même. Pour une fonction, utilisez uniquement l’objet contenu dans parameters.

Règles vérifiées le 2026-09-15. Règles officielles

Contrôle local préalable : il ne garantit ni l’acceptation par l’API ni la prise en charge par un modèle précis.

Collez un JSON Schema pour commencer.

Un schéma de sortie structurée peut être valide pour un outil généraliste et pourtant être refusé par un fournisseur de modèles. Cette page sépare la structure du schéma des exigences du profil sélectionné. Elle aide à distinguer une erreur de syntaxe d’une modification nécessaire du contrat de données.

La validation de schéma JSON ne suffit pas toujours pour préparer des sorties structurées LLM. En mode strict OpenAI, certaines propriétés facultatives doivent changer de représentation. Pour un appel de fonction, le même problème se pose dans parameters. Comparez les profils en conservant le texte d’origine et le contexte du rapport.

Pourquoi vérifier un schéma de sortie structurée ?

Distinguer structure valide et exigences du fournisseur

Un objet ouvert ou des champs facultatifs peuvent être parfaitement valides dans un contrat ordinaire. Un schéma de sortie structurée destiné à OpenAI strict ajoute des exigences. Le verdict du métaschéma et les diagnostics du profil sont affichés séparément, avec un chemin précis pour revenir à la définition concernée.

Un arbre de schéma passe un contrôle général, tandis qu’un second contrôle signale deux branches à revoir.

Comparer sans réécrire le contrat

Changer d’OpenAI à Gemini recalcule les diagnostics et laisse la source intacte. Le vérificateur n’ajoute pas required et ne supprime pas les mots-clés inconnus pour obtenir un résultat favorable. Vous pouvez d’abord vérifier les conséquences pour le code qui consomme les données, puis décider d’une modification.

Un schéma inchangé mène à deux profils cibles portant des marqueurs de diagnostic différents.

Préparer le bon fragment et lire le résultat

01

Extraire le contenu de parameters

Pour le profil de fonction OpenAI, collez uniquement l’objet contenu dans parameters. Le nom de fonction, strict et l’enveloppe de la requête ne sont pas vérifiés. Ce profil décrit la destination du schéma dans le rapport ; il n’exécute pas la fonction et ne produit pas de requête complète.

02

Comparer les deux exemples

L’exemple valide contient une propriété obligatoire dont la valeur peut être null. L’autre exemple omet des contraintes d’objet attendues par OpenAI. Passez ensuite à Gemini pour voir quelles exigences dépendent du profil. Chaque remplacement affiche d’abord un aperçu du contenu et du nombre de caractères concernés.

03

Exporter après la dernière modification

La vérification automatique attend 350 ms après une saisie. Désactivez-la pour afficher le bouton ou utiliser Ctrl/Cmd + Entrée. Modifier la source ou le profil bloque immédiatement l’export de l’ancien rapport. Annuler une application restaure ensemble la source, le profil et le résultat précédent.

Des diagnostics à relier au contrat

Vérification du métaschéma

Le métaschéma 2020-12 fourni avec l’outil contrôle la forme et le type des mots-clés. Le parseur refuse les clés dupliquées et les nombres qui seraient arrondis par JavaScript. Les commentaires, virgules finales et blocs Markdown restent des erreurs de syntaxe, sans réparation silencieuse de la source.

Chemins et références locales

Les diagnostics utilisent JSON Pointer, y compris pour les noms contenant une barre oblique ou un tilde. Les références locales doivent mener à une position de schéma existante. Une propriété appelée allOf n’est pas confondue avec le mot-clé de composition ; les valeurs littérales ne sont pas parcourues comme des règles.

Couverture explicitement limitée

Les deux profils OpenAI concernent strict sans fine-tuning. Gemini suit le sous-ensemble JSON Schema vérifié dans sa documentation. Un mot-clé ou un format non confirmé reste signalé comme élément à vérifier. Ce signalement ne prétend ni que la règle est prise en charge ni qu’elle sera rejetée par l’API.

Rapport complet à partager

Le JSON exporté conserve le profil, la date des règles, le verdict de structure, les compteurs et les codes de diagnostic. Une longue liste affiche d’abord 50 éléments, avec une commande pour en voir davantage. La copie et le téléchargement incluent toujours le rapport entier, au-delà des éléments visibles.

Le périmètre de cette vérification

Un contrôle local, pas une certification API
Les règles ont été vérifiées le 2026-09-15. Les droits du compte, les points d’accès, la normalisation du SDK, les refus et les versions précises de modèles nécessitent un test réel. Aucun profil n’est prévu ici pour OpenAI fine-tuné, Anthropic, les fonctions Gemini ou les intermédiaires tiers.
Un dialecte et des pointeurs locaux
La structure est contrôlée selon 2020-12. Une ancienne version explicitement déclarée est signalée, sans migration automatique. Les références distantes et les ancres nommées ne sont pas résolues. Les définitions récursives sont inspectées sans développer toutes les réponses possibles ni garantir leur respect des budgets de complexité distants.
Des budgets distincts
La saisie est limitée à 500000 caractères, 50000 nœuds analysés et 40 niveaux JSON. Le worker s’arrête après cinq secondes ; plus de 1000 diagnostics interrompt le contrôle sans succès partiel. Ces limites de traitement sont distinctes des budgets OpenAI portant sur les propriétés, l’imbrication, les énumérations et les chaînes.
Aucune modification sémantique automatique
Ajouter required, autoriser null ou interdire les propriétés supplémentaires change le contrat. L’outil fournit seulement des pistes. Accepter null ne permet pas d’omettre la clé ; si enum existe, sa liste doit aussi être revue. Vérifiez ces décisions avec l’application destinataire avant de modifier puis de relancer la vérification.
Les valeurs de réponse restent à contrôler
La page inspecte la définition envoyée au modèle, pas une réponse produite par celui-ci. Elle ne déduit pas de schéma d’un exemple, ne génère pas de réponse et ne répare pas de JSON. Les valeurs reçues doivent encore être validées contre le contrat et les règles métier de votre application.

Questions sur le schéma de sortie structurée

Comment vérifier un schéma avant de l’envoyer à une API de modèle ?

Commencez par la syntaxe et la structure, puis sélectionnez le profil cible pour le contrôle préalable. Lisez également les avertissements de couverture. Terminez par un test avec le modèle et le point d’accès réellement prévus : la vérification locale repère des erreurs fréquentes, mais ne certifie pas l’acceptation de la requête.

Les formats OpenAI, Anthropic et Gemini sont-ils interchangeables ?

Ils reposent sur des concepts proches mais utilisent des sous-ensembles et des enveloppes de requête différents. Cette page compare OpenAI strict et la sortie Gemini ; Anthropic n’a pas de profil. Un résultat obtenu pour l’un ne valide pas l’autre, et l’intégration doit encore fournir l’enveloppe adaptée.

Pourquoi OpenAI strict exige-t-il tous les champs dans required ?

Le mode strict contraint la forme de l’objet de sortie, ce qui exige la présence des clés déclarées. Une valeur inconnue peut être null si le contrat le prévoit. En présence de enum, vérifiez aussi que null y figure. Une clé absente et une clé obligatoire contenant null ne sont pas équivalentes.

Quelle différence entre sortie structurée et utilisation d’outils ?

La sortie structurée définit la forme de la réponse finale du modèle. L’utilisation d’outils fournit les arguments d’une fonction que votre application peut exécuter. Les profils OpenAI vérifient ici les restrictions communes du schéma strict. Le profil fonction reçoit seulement parameters et ne vérifie ni n’exécute l’enveloppe de l’outil.

Pourquoi ne pas se contenter de JSON.parse() ou d’un linter ?

Un parseur vérifie la grammaire JSON. Il ne garantit pas la forme de properties et required, l’existence d’une cible de référence ou la prise en charge d’un mot-clé par le fournisseur. Un document syntaxiquement correct peut donc encore produire des erreurs de structure ou des diagnostics propres au profil choisi.

Un cas n’est pas couvert ?

Reprendre la définition au premier diagnostic

Revenez au schéma de sortie structurée avec le bon profil cible. Avant de modifier required, null ou les clés supplémentaires, vérifiez comment le code destinataire interprète le contrat et conservez une version de référence pour comparer les changements.