Bonne question — j’ai travaillé pas mal sur cela avec Ollama + n8n. Voici ce qui fonctionne vraiment de façon fiable en 2026 :
**1. Utilise le paramètre natif `format: json` d’Ollama (couche la plus fiable)**
Quand tu configures le nœud Ollama Chat Model, ajoute `format: json` dans les champs supplémentaires / paramètres du modèle. Cela force Ollama à limiter l’échantillonnage des tokens aux seuls tokens JSON valides — ce n’est pas de l’ingénierie d’invite, c’est imposé au niveau du modèle. Des modèles comme `llama3`, `mistral` et `qwen2.5` le supportent bien. Cela seul élimine ~80 % des résultats malformés.
**2. Associe-le au Structured Output Parser de n8n**
Combine format:json d’Ollama + le Structured Output Parser (avec un JSON Schema). Le schéma indique au modèle quels champs tu attends ; l’analyseur valide et extrait. Si tu fais du routage, ton schéma peut être aussi simple que `{ “route”: { “type”: “string”, “enum”: [“billing”, “support”, “sales”] } }`.
**3. Code node comme filet de sécurité**
Après l’analyseur, ajoute un nœud Code qui fait :
```js
const out = $input.first().json;
if (!out.route || ![‘billing’,‘support’,‘sales’].includes(out.route)) {
throw new Error('Invalid route: ’ + JSON.stringify(out));
}
return [{ json: out }];
```
Cela bloque les nœuds en aval pour que tu ne routes jamais mal en silence.
**4. Pour l’intention SQL spécifiquement**
Ne demande pas au modèle de produire du SQL. Demande-lui de produire une intention structurée : `{ “table”: “orders”, “filters”: [{“field”: “status”, “op”: “eq”, “value”: “pending”}], “limit”: 10 }`. Ensuite, ton nœud Code mappe cela à une requête paramétrée. Beaucoup plus sûr et plus fiable que du SQL libre.
**5. Boucle de réparation unique si nécessaire**
Pour les schémas complexes où le modèle échoue toujours occasionnellement, câble un nœud IF qui vérifie les erreurs d’analyse → renvoie à Ollama avec le message d’erreur ajouté à l’invite. Une réessai attrape la plupart des traînards. S’il échoue deux fois, route vers un fallback / révision humaine plutôt que de deviner.
La combinaison format:json + schema + validation Code est ce que j’utilise dans des workflows de style production. Fonctionne sans aucun nœud payant.