Aller au contenu principal

JSON garanti par schéma

Pourquoi les sorties structurées changent tout

Quand vous utilisez un modèle de langage en production, vous avez besoin de réponses exploitables par du code. Pas du texte libre, pas du JSON approximatif — du JSON garanti conforme à un schéma que vous définissez. C’est exactement ce que les structured outputs de l’API Grok vous offrent.

Le principe est simple : vous fournissez un schéma JSON au modèle, et l’API vous garantit que la réponse respectera exactement cette structure. Pas de parsing hasardeux, pas de regex fragiles, pas de try/catch pour gérer les cas où le modèle invente un format.

Comment ça fonctionne

Les sorties structurées reposent sur un mécanisme de contrainte appliqué pendant la génération du texte. À chaque token produit, le modèle est contraint de ne générer que des tokens compatibles avec le schéma fourni. Le résultat : un JSON toujours valide, toujours conforme.

Prenons un exemple concret. Vous voulez extraire les informations d’un contact depuis un email :

from pydantic import BaseModel

class Contact(BaseModel):
    nom: str
    email: str
    entreprise: str
    telephone: str | None

# La réponse sera TOUJOURS un objet Contact valide

Sans structured outputs, le modèle pourrait retourner le téléphone comme "tel", "phone", ou "numéro". Avec un schéma, le champ s’appellera toujours telephone, et sa valeur sera toujours une chaîne ou null.

Disponibilité

Les sorties structurées sont supportées sur tous les modèles de langage xAI : Grok 3, Grok 3 Mini, Grok 4 et les versions ultérieures. Quel que soit le modèle que vous utilisez, la fonctionnalité est disponible sans surcoût ni configuration supplémentaire.

100%
JSON valide garanti
7
Types supportés
Tous
Modèles xAI
2
Méthodes d'appel

Sans structured outputs vs avec

Voici ce que vous obtenez sans et avec cette fonctionnalité :

Sans structured outputs :

  • Le modèle peut retourner du texte libre, du JSON partiel, ou un format inattendu
  • Vous devez parser manuellement et gérer les erreurs
  • Les noms de champs peuvent varier d’une requête à l’autre
  • Votre pipeline casse dès que le modèle change de format

Avec structured outputs :

  • Le JSON est toujours valide syntaxiquement
  • La structure correspond exactement au schéma fourni
  • Les types sont respectés (string, number, boolean, etc.)
  • Votre code peut consommer la réponse directement

Deux approches disponibles

L’API Grok propose deux méthodes pour utiliser les sorties structurées :

  • parse() : méthode automatique qui retourne directement un objet typé. Idéale pour la plupart des cas.
  • response_format : méthode manuelle qui retourne une chaîne JSON. Plus de contrôle, mais parsing à votre charge.

Vous découvrirez ces deux méthodes en détail dans les prochaines leçons.

Points clés à retenir

  • Les structured outputs garantissent un JSON conforme à votre schéma à chaque appel
  • La contrainte est appliquée pendant la génération, pas après
  • Tous les modèles de langage xAI supportent cette fonctionnalité
  • Deux méthodes sont disponibles : parse() (automatique) et response_format (manuel)
  • C’est la base de tout pipeline de production fiable avec l’API Grok