Habr AI→ original

Qui est le plus rigoureux avec JSON : OpenAI, Gemini et xAI passent des tests de conformité aux schémas

Les développeurs de Habr ont mené des tests adversariaux sur Structured Outputs chez OpenAI, Gemini et xAI afin de vérifier avec quelle fidélité ils respectent

Qui est le plus rigoureux avec JSON : OpenAI, Gemini et xAI passent des tests de conformité aux schémas
Source : Habr AI. Collage: Hamidun News.
◐ Écouter l'article

Les développeurs de Habr ont mené une étude qui a testé comment Structured Outputs fonctionnent réellement chez trois principaux fournisseurs de LLM : OpenAI, Gemini et xAI. Au lieu de lire la documentation, ils ont utilisé une méthode de test adversarial—cassant délibérément les schémas pour voir où chaque fournisseur maintient la rigueur et où il cède.

Comment Ils Ont Testé la Conformité aux Schémas

Les auteurs n'ont pas simplement demandé aux modèles de retourner du JSON valide. Ils ont délibérément construit des prompts essayant de forcer le modèle à violer son propre JSON Schema. Ils ont demandé de placer des valeurs du mauvais type dans les champs, d'ajouter des clés supplémentaires, d'utiliser des valeurs enum invalides, de violer la longueur minimale ou maximale de la chaîne, de dépasser les plages numériques.

Ils ont observé où le modèle obéissait à strict: true et où il cassait en retournant du JSON invalide. Ils ont testé séparément les constructions complexes : anyOf, oneOf, allOf—des règles combinatoires qui sont les plus difficiles à implémenter dans les LLMs. En pratique, de nombreux systèmes simplifient, ignorent ou implémentent partiellement ces constructions.

Les auteurs ont vérifié comment chaque fournisseur interprète ces règles.

Ce Qu'Ils Ont Découvert Sur Différents Fournisseurs

Les résultats sont surprenants : chaque fournisseur a son propre ensemble de contraintes dures et souples. OpenAI maintient mieux la rigueur, surtout quand strict: true est activé. Gemini offre plus de liberté avec enum et les objets imbriqués. xAI montre de la stabilité à complexité moyenne mais a des points aveugles sur les constructions allOf et les champs conditionnels.

La matrice de contraintes de l'article montre :

  • OpenAI : fiable sur les types primitifs (string, number, boolean), glisse parfois sur les structures imbriquées complexes
  • Gemini : interprète anyOf et oneOf plus librement, peut ajouter des clés supplémentaires aux objets, moins strict avec les valeurs enum
  • xAI : bon à complexité moyenne et règles basiques, plus faible sur la validation multi-niveaux et patternProperties

Même strict: true ne garantit pas une conformité à 100%. Cela reporte la responsabilité au développeur.

Conclusions Pratiques pour la Production

Si vous construisez un système qui appelle plusieurs fournisseurs de LLM en parallèle, ces différences sont critiques. Vous ne pouvez pas simplement passer d'OpenAI à Gemini et vous attendre à exactement la même réponse formatée. JSON Schema reste le même, mais le comportement du modèle est radicalement différent.

Pour les scénarios de production, les auteurs recommandent : ajoutez toujours une validation de réponse après le modèle, même si le fournisseur promet strict: true. Utilisez une bibliothèque jsonschema qui revérifierait le résultat indépendamment. Et ajoutez une logique de secours au cas où le format se casse inopinément : re-demander au modèle, utiliser une valeur par défaut ou retourner une erreur à l'utilisateur. Un écart aléatoire d'enum du modèle peut détruire tout votre pipeline.

Ce Que Cela Signifie

Structured Outputs est une fonction utile, mais pas une panacée. Les tests de Habr ont montré que faire confiance complètement au fournisseur est une erreur. Si vous tenez au format de réponse, investissez dans la validation côté client.

ZK
Hamidun News
Actualités IA sans bruit. Sélection éditoriale quotidienne de plus de 400 sources. Produit de Zhemal Khamidun, Head of AI chez Alpina Digital.
Qu'en pensez-vous ?
Chargement des commentaires…