Hai report, whitepaper o trascrizioni video che nessuno ha tempo di leggere per intero? Con il nodo langchain n8n e i nodi AI correlati puoi costruire una pipeline che trasforma documenti lunghi in riassunti chiari e pronti per l’uso marketing, riducendo tempi di produzione e migliorando la coerenza. In questa guida pratica creiamo un flusso end‑to‑end per il riassunto di documenti lunghi con n8n: dal chunking del testo al “map‑reduce” della sintesi, passando per prompt ottimizzati, caching/batching, valutazione qualità (LLM‑as‑judge) e opzioni di archiviazione con embeddings e vector store. Un approccio modulare, pensato per marketer che vogliono automatizzare con efficienza, controllare costi e ottenere output in Markdown o JSON pronti per blog, newsletter o slide.

📚 Nuovo a n8n? Parti dalla guida completa: cos'è n8n e come funziona.

[IMG: Panoramica flusso: Input (PDF/trascrizione) → Chunking → LLM (per chunk) → Merge/Reduce → Valutazione → Export/DB/Vector Store]


Mappa concettuale n8n ↔ LangChain: nodi e pattern fondamentali

Per capire come orchestrare una catena di sintesi map‑reduce in LangChain dentro n8n, partiamo dai mattoni disponibili.

  • OpenAI Chat Node: usa i modelli chat (system/user prompts) per generare riassunti testuali strutturati. Perfetto per “per‑chunk summarization” e per la fase di reduce/refine.
  • Embeddings OpenAI (EmbeddingsOpenAi): converte testi in vettori per archiviazione/ricerca semantica.
  • Vector stores supportati: Pinecone e Weaviate sono opzioni comuni per salvare embeddings e abilitarne il riuso in un workflow RAG per sintesi multi‑documento.
  • SplitInBatches Node: elabora liste di item a lotti, utile per processare chunk in batch e controllare parallelismo/costi.
  • Item Lists, Merge: dividono e riaggregano array, fondamentali per preparare input e raccogliere i riassunti parziali.

LangChain Code (self‑hosted): un nodo specializzato per importare e usare direttamente le primitive LangChain JS in codice, con due modalità (Execute vs Supply Data) e I/O configurabili. È utile per catene personalizzate e casi avanzati non coperti dai nodi predefiniti.

Schema logico del riassunto di documenti lunghi con n8n:
1) Import/estrazione testo (gestione PDF/trascrizioni in n8n).
2) Chunking con overlap (text splitter ricorsivo e chunk overlap simulato in Code/Item Lists).
3) Sintesi per chunk con OpenAI Chat Node e prompt per sintesi strutturata in Markdown.
4) Reduce/refine: ulteriore passata per condensare i riassunti parziali in un executive summary.
5) (Opzionale) Embeddings e vector store per riuso/ricerca; evaluation dei riassunti con LLM‑as‑judge; caching e batching nelle pipeline AI.

[IMG: Mappa concetti → Nodi n8n (OpenAI Chat, EmbeddingsOpenAi, SplitInBatches, Item Lists, Merge, LangChain Code)]


Pipeline base: dal testo grezzo al riassunto “map‑reduce” in Markdown

Obiettivo: catena di sintesi map‑reduce in LangChain realizzata con nodi n8n standard.

Passo 1 — Preparazione input

  • Se il contenuto è già testo, prosegui.
  • Se è PDF/trascrizione, acquisisci il file (HTTP Request, Google Drive, S3) e convertilo in testo con il tuo step di estrazione abituale; porta il testo in items[0].json.text.

Passo 2 — Chunking con overlap (Code node)
Usiamo un Code node per splittare il testo in chunk con overlap, utile a preservare contesto ai bordi.

// Code (Run Once for All Items) — input: items[0].json.text
const text = items[0].json.text || '';
const chunkSize = 2000;     // caratteri
const chunkOverlap = 200;   // sovrapposizione
const chunks = [];
for (let i = 0; i < text.length; i += (chunkSize - chunkOverlap)) {
  const part = text.slice(i, i + chunkSize);
  if (part.trim()) chunks.push({ json: { chunk: part } });
}
return chunks;

Passo 3 — Batching
Inserisci SplitInBatches per controllare i costi LLM e il ritmo:

  • batchSize: per esempio 8.
  • Loop “Execute Next Batch” finché gli item non terminano.

Passo 4 — Sintesi per chunk (OpenAI Chat)
Configura OpenAI Chat Node per generare un riassunto breve e coerente. Imposta:

  • System prompt: “Sei un assistente che riassume contenuti in modo chiaro e fedele.”
  • User prompt: “Riassumi il seguente testo in 8‑12 bullet Markdown, conservando dati numerici e nomi: {{$json.chunk}}”

Suggerimenti:

  • Imposta temperature bassa (0‑0.3) per consistenza.
  • Output parser per JSON/Markdown: richiedi esplicitamente “Rispondi solo in Markdown valido”.

Passo 5 — Merge dei risultati
Usa Item Lists (Aggregate) o un Code node per unire i riassunti parziali:
“`javascript
// Code (Run Once for All Items) — input: array di {json: { summary: “…”}}
const bullets = items.map(i => i.json.summary || i.json.text ||

Vuoi automazioni AI su misura per la tua azienda?
Scopri la consulenza →