Après avoir sécurisé nos agents avec du Human-in-the-Loop la semaine dernière, il reste un ennemi intime du développeur IA : le parsing.
Si vous avez déjà mis un LLM en production, vous la connaissez. L'angoisse de la "ligne 42".
Vous avez passé des heures à peaufiner votre prompt : "Tu dois absolument répondre au format JSON strict. N'ajoute pas de texte avant ou après."
En dev, tout marche à merveille. Vous déployez. Le lendemain, votre serveur Node.js crashe avec cette insulte suprême :
SyntaxError: Unexpected token 'V', "Voici votr"... is not valid JSON
Parce que le modèle, dans son infinie politesse, a décidé de commencer sa réponse par "Voici votre objet JSON :".
C'est le problème fondamental des modèles conversationnels (comme Llama 3 ou ChatGPT) : ils sont entraînés pour discuter, pas pour être des machines déterministes. Utiliser un modèle de chat pour extraire des variables, c'est utiliser un poète pour faire de la comptabilité.
La solution ne réside pas dans des prompts plus agressifs. La solution, ce sont les modèles spécialisés comme FunctionGemma.
Les rustines habituelles (et pourquoi elles craquent)
Avant d'arriver à la vraie solution, l'industrie a bricolé des rustines :
Le JSON Mode de l'API : On force l'API (OpenAI, Ollama) à n'accepter que du JSON. Pratique, mais le modèle "veut" toujours discuter et peut halluciner ses propres clés.
Le "Prefill" ({) : On pré-remplit la réponse de l'assistant avec une accolade ouvrante pour le forcer à démarrer un objet.
Le XML : On supplie le modèle de cracher du XML entre des balises<output>parce qu'il a avalé tellement de code HTML à l'entraînement qu'il y est plus obéissant.
L'intercepteur JS (L'extracteur) : On laisse le LLM bavarder ("Voici le JSON :"), mais on code une fonction JavaScript qui vient découper la chaîne (du premier { au dernier }) avec un try/catch brutal avant d'appeler JSON.parse() (J'ai documenté ce cas pratique dans . Mon objectif ici est de vous partager gratuitement la logique d'ingénierie derrière ces systèmes, pour vous aider à passer de Développeur Web à AI Engineer. (L'implémentation de ces "Swarm d'Agents" spécialisés et de Zod est d'ailleurs explorée en détail dans nos Side Quests).
🍁 Fièrement codé depuis la Beauce (Québec).
Quel est votre pire souvenir de crash en production à cause d'un JSON "imaginatif" généré par une IA ? Avez-vous déjà testé des modèles dédiés au Tool Calling comme Hermes ou FunctionGemma ? 👇
↗ Original-Artikel auf dev.to lesenVollständiger Original-BerichtAusführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
SOCIAL SHARE CARD GENERATOR