Structured Output Parser & Auto-fixing Parser în n8n & Automatizări AI

Sub-nodurile care obligă modelul AI să returneze un obiect JSON strict valid (cu câmpuri și tipuri garantate), gata de inserat direct într-o bază de date sau într-un tabel.

Configurare nod & expresie
// Exemplu JSON pus în 'Generate from JSON Example':
{
  "sentiment": "pozitiv",
  "scor_urgenta": 8,
  "departament": "tehnic",
  "actiuni_recomandate": ["resetare parola", "apel telefonic"]
}

Descriere & Utilizare

Atunci când rezultatul unui nod AI trebuie folosit mai departe în automatizare — de exemplu, într-un nod Switch, If sau pentru a insera rânduri în PostgreSQL/Google Sheets — un răspuns conversațional în text liber („Sigur, iată datele: …”) va strica fluxul.

Sub-nodul Structured Output Parser (activat bifând opțiunea Require Specific Output Format pe AI Agent sau Basic LLM Chain) îți permite să dai fie un simplu exemplu JSON, fie o JSON Schema completă. n8n va forța modelul să răspundă exact cu acele chei, accesibile ulterior prin {{ $json.output.nume_camp }}.

Pentru modelele mai mici sau locale (ex: Llama 3 8B prin Ollama) care pot uita ocazional o acoladă, poți intercala Auto-fixing Output Parser: dacă JSON-ul generat este invalid, acesta face automat o a doua cerere invizibilă către LLM cu eroarea de parsare pentru a repara structura.

Cum să o reții ușor

💡 Ca un șablon de turnare din fabrică: indiferent cât de fluid este metalul topit (răspunsul LLM), la ieșire piesa are întotdeauna dimensiunile milimetrice cerute de linia de asamblare.

Opțiuni și parametri tehnici

  • Schema Type (Generate from JSON Example / Define using JSON Schema): modul cel mai rapid este să lipești un exemplu JSON valid, iar n8n deduce singur tipurile.
  • Require Specific Output Format: comutatorul de pe nodul părinte (AI Agent sau Basic LLM Chain) care activează portul Output Parser.
  • Item List Output Parser: alternativă ușoară când ai nevoie doar de o listă simplă de elemente (array de stringuri).

Exemple practice și cazuri de utilizare

  • Extragere date din CV-uri: modelul primește textul PDF-ului și returnează { "nume": "...", "ani_experienta": 5, "tehnologii": ["Python", "SQL"] }.
  • Accesarea câmpurilor în nodul următor: {{ $json.output.scor_urgenta }} într-un nod If pentru a trimite alertă pe Slack dacă scorul > 7.
  • Protecție cu Auto-fixing: Basic LLM Chain -> Auto-fixing Output Parser -> Structured Output Parser.

Sfaturi de configurare & capcane

Dacă folosești Define using JSON Schema, adaugă atributul "description" pe fiecare proprietate din schemă — aceasta acționează ca un micro-prompt pentru acel câmp specific.

Comenzi și ghiduri înrudite