Skip to main content
Les sorties structurées permettent d’imposer un format lisible par machine plutôt qu’un texte libre.

Compatibilité des points de terminaison

Utilisez les sorties structurées sur :
  • /v1/chat/completions avec response_format
  • /v1/responses avec text.format
  • /v1/messages peut toujours renvoyer du texte JSON, mais n’utilise pas le même contrat response_format.

Requête

Réponse

Remarques sur le contrat

  • response_format.type doit être text, json_object ou json_schema.
  • Pour json_schema, incluez un objet de schéma (response_format.json_schema.schema dans les requêtes de type chat ou text.format.schema dans celles de type Responses).
  • Validez le JSON sur votre serveur avant de l’utiliser en aval.

Concevoir votre schéma

Commencez par un petit objet, indiquez explicitement les champs obligatoires et utilisez des énumérations pour les catégories connues. Définissez additionalProperties: false pour rejeter les clés supplémentaires. Synchronisez le schéma demandé et le validateur serveur ; gérez leurs versions ensemble.

Valider le résultat

Analysez et validez le résultat complet avant de l’utiliser. Cet exemple TypeScript utilise Zod et correspond au schéma météo ci-dessus :
Traitez les refus, le contenu manquant et les réponses tronquées avant l’analyse. Si la validation échoue, limitez les tentatives correctives, puis renvoyez un échec sûr. Les générations répétées peuvent entraîner des frais supplémentaires. Un JSON valide ne prouve ni l’exactitude factuelle des valeurs ni l’autorisation d’une action. Suivez les échecs de validation par modèle et version du schéma. Revérifiez vos cas d’évaluation quand l’un change. Pour récupérer un JSON mal formé, consultez la réparation des réponses.
Dernière modification le 2 octobre 2026