Réparer le JSON produit par un LLM

Les réponses d’IA ressemblent souvent à du JSON, mais elles contiennent des markdown fences, des commentaires, des littéraux Python ou de la syntaxe d’objet JavaScript.

Problèmes typiques du JSON produit par un LLM

Les fences markdown, les commentaires, les guillemets simples, les clés sans guillemets, les virgules finales et les valeurs Python True, False ou None peuvent tous faire échouer le parsing JSON strict d’une réponse pourtant utile.

Flux de réparation

Collez la réponse dans JSON Fix, lancez Repair & Format, puis Validate pour confirmer que la sortie est du JSON strict avant de l’utiliser dans du code ou une requête API.

Note de confidentialité

La réparation se déroule localement dans le navigateur, ce qui est utile pour déboguer des prompts contenant des exemples internes ou des payloads d’API privées.

Outils et recettes

Pour un nettoyage navigateur, collez la sortie du LLM dans JSON Fix et cliquez Repair & Format — il enlève en une passe les fences markdown (```json ... ```), les virgules finales et les littéraux Python (True/False/None). En Node, le paquet npm jsonrepair fait la même chose en programmatique, sans dépendances.

Cadrer le prompt pour réduire la réparation

Contraignez la sortie : « Réponds par un seul objet JSON et rien d’autre, pas de fence markdown, pas de commentaire ». Si le modèle le supporte, utilisez le mode JSON ou response_format json_object — cela élimine fences et prose par construction. Un schéma dans le prompt (ou via function calling) réduit encore les clés inventées.

JSON en streaming depuis un LLM

Pendant que les tokens arrivent, le JSON est invalide par définition — il n’y a pas encore d’accolade fermante. Soit on bufferise jusqu’à la fin de la réponse pour faire un seul parse, soit on utilise un parser tolérant au streaming (jsonrepair, partial-json) qui renvoie le meilleur préfixe valide pour pouvoir afficher au fil de l’eau.

Quand échouer bruyamment au lieu de réparer

Si le JSON déclenche une transaction financière, un changement de permissions ou une action destructrice, ne réparez pas en silence — rejetez la réponse et réessayez, ou faites remonter la sortie brute pour relecture. La réparation est appropriée pour l’affichage, le débogage et la récupération ; jamais pour des entrées qui modifient l’état sans relecture humaine.