Corso
Quante volte hai costruito una demo RAG che funziona alla grande su un paio di PDF puliti, ma non riesce a rispondere a nulla sui documenti reali di un'azienda?
Succede che le tabelle si appiattiscono, le pagine scansionate spariscono, un deck di slide perde le intestazioni e la logica di chunking separa il titolo di sezione dal corpo. Un sistema RAG di produzione è ben lontano dall'essere solo un LLM con un database vettoriale. Servono parsing dei documenti, strategie di chunking, retrieval ibrido, reranking, tracciamento delle citazioni, orchestrazione degli agenti e mezza dozzina di altri componenti da configurare.
RAGFlow è una piattaforma open source che combina questi pezzi in un unico stack. Gestisce parsing profondo dei documenti, chunking basato su template, retrieval ibrido, workflow di agenti e integrazione MCP dietro un'unica UI e API, così puoi dedicarti alla tua knowledge base e basta.
In questo articolo ti mostrerò come funziona RAGFlow sotto il cofano, com'è la sua architettura, come si confronta con LangChain e LlamaIndex e come distribuirlo.
Se ti serve un ripasso su come funziona il RAG, iscriviti al nostro corso Retrieval Augmented Generation (RAG) with LangChain: capirai le basi in un pomeriggio.
Che cos'è RAGFlow?
RAGFlow è un motore RAG open source sviluppato da InfiniFlow e rilasciato sotto licenza Apache 2.0 nell'aprile 2024.
È progettato per applicazioni AI in produzione dove la qualità del retrieval fa la differenza. Il progetto punta alla comprensione profonda dei documenti, quindi considera parsing e chunking come la base di tutto il resto. Se i tuoi PDF, fogli di calcolo e presentazioni sono un caos, nessun reranker o LLM più grande potrà aiutarti: devi lavorare prima sulla qualità dei documenti.
Ciò che rende RAGFlow diverso dalla maggior parte degli strumenti RAG è che è uno stack completo. Hai parsing dei documenti, chunking basato su template, retrieval ibrido, reranking, tracciamento delle citazioni, un builder di workflow per agenti e supporto MCP in un unico sistema. Non devi scegliere un database vettoriale, configurare un parser, aggiungere un reranker e costruire una UI sopra: è tutto lì dietro un'unica interfaccia web e un'unica API.
Questo rende RAGFlow più vicino a una piattaforma che a un framework.
Come funziona RAGFlow
RAGFlow segue la classica pipeline RAG, ma ogni passaggio è un componente configurabile invece di codice che devi scrivere.
Ecco cosa succede dal momento in cui carichi un documento a quando l'LLM invia una risposta:
- Ingerisci documenti: carichi file o colleghi una fonte dati. RAGFlow accetta PDF, file Word, fogli Excel, presentazioni PowerPoint, Markdown, HTML, immagini e copie scansionate. Dalla v0.25 puoi anche sincronizzare dati da Confluence, S3, Notion, Discord e Google Drive.
- Fai parsing e struttura i contenuti: il motore DeepDoc legge ogni file con OCR, riconoscimento della struttura delle tabelle e del layout. L'output è contenuto strutturato con metadati su intestazioni, tabelle, figure e ordine di lettura.
- Genera embedding: RAGFlow elabora ogni chunk con un modello di embedding che scegli dalla configurazione. Puoi usare OpenAI, Cohere, Voyage, un modello locale o qualsiasi altro supportato.
- Indicizza la conoscenza: chunk e vettori vanno nel motore documentale. Elasticsearch è il predefinito, ma puoi passare a Infinity, il database di InfiniFlow costruito per la ricerca ibrida.
- Recupera il contesto rilevante: quando arriva una query, RAGFlow esegue in parallelo ricerca vettoriale, ricerca keyword BM25 e reranking. Ottieni i migliori chunk con citazioni al documento sorgente.
- Genera risposte con un LLM: i chunk recuperati entrano nel prompt, l'LLM scrive una risposta e RAGFlow allega le citazioni così che l'utente possa ricondurre ogni affermazione al passaggio di origine.
L'ordine non è nuovo. Ciò che conta è che ogni passaggio è una parte configurabile della piattaforma e puoi ispezionare l'output a ogni stadio.
Architettura di RAGFlow
L'architettura di RAGFlow ha quattro livelli, e ciascuno risolve un problema specifico nella pipeline RAG. Ecco una rapida panoramica visiva:

Architettura di RAGFlow visualizzata
Ora ti guido attraverso ciascun livello.
Ingestione dei documenti
Questo è il punto d'ingresso. RAGFlow accetta PDF, documenti Office come Word, Excel e PowerPoint, file Markdown e pagine web. Funzionano anche documenti scansionati e immagini, visto che l'OCR è integrato.
Puoi caricare file direttamente dalla UI, collegare una fonte cloud o inviare documenti tramite API. Il livello di ingestione normalizza tutto in un formato comune prima di passare allo stadio successivo.
Elaborazione della conoscenza
Qui entra in gioco DeepDoc.
Il parsing trasforma i file grezzi in contenuti strutturati con intestazioni, paragrafi, tabelle e figure. Il chunking divide quel contenuto in unità di retrieval in base a un template che scegli (Generale, Paper, Libro, Q&A, Manuale, Tabella o Naive). L'estrazione dei metadati allega contesto a ciascun chunk, come numeri di pagina, titoli di sezione e posizione sulla pagina.
I chunk che escono da questo livello mantengono la loro struttura. Questo significa che una tabella resta una tabella, un'intestazione resta con la sua sezione e la didascalia di una figura resta con la sua figura. Non è casuale come nelle strategie di chunking tradizionali per RAG.
Motore di retrieval
Il motore di retrieval si appoggia a Elasticsearch o Infinity, a seconda del motore documentale che configuri.
Esegue in parallelo tre tipi di ricerca:
- Ricerca vettoriale per la similarità semantica
- Ricerca keyword BM25 per le corrispondenze esatte dei termini
- Reranking sui risultati unificati per spingere in alto i chunk più rilevanti
Questo livello ti restituisce un piccolo set di chunk di alta qualità da inserire nel prompt dell'LLM.
Livello LLM
Il livello LLM invia i chunk recuperati al modello che hai collegato: OpenAI, DeepSeek, Gemini, Claude, un modello locale su Ollama o qualsiasi altro supportato da RAGFlow.
La risposta torna con citazioni. Ogni affermazione nella risposta punta a uno specifico chunk, e ogni chunk punta a una posizione precisa nel documento sorgente. Questo è ciò che RAGFlow chiama risposte con fondamenta: l'utente può cliccare una citazione e vedere il passaggio esatto da cui proviene, il che rende facile intercettare le allucinazioni.
I quattro livelli funzionano come una pipeline. L'ingestione alimenta l'elaborazione della conoscenza, l'elaborazione alimenta il motore di retrieval e il motore di retrieval alimenta il livello LLM.
Funzionalità principali di RAGFlow
Ecco le funzionalità che contano di più quando costruisci un sistema RAG su documenti reali e disordinati.
Parsing avanzato dei documenti
Il parser di RAGFlow si chiama DeepDoc, ed è il motivo per cui la piattaforma esiste.
DeepDoc esegue tre modelli di visione su ogni documento: OCR per l'estrazione del testo, TSR per il riconoscimento della struttura delle tabelle e DLR per il riconoscimento del layout. Quindi, invece di trattare un PDF come un flusso di caratteri, legge il file come farebbe un umano: vede dove sono le tabelle, dove si interrompono le colonne, qual è un'intestazione e cosa è una nota a piè di pagina.
Questa struttura confluisce nei chunk. Le tabelle restano con le loro intestazioni, i layout multicolonna vengono letti nell'ordine giusto e le figure mantengono le didascalie.
Se hai provato a farlo manualmente, sai quanto è difficile farlo bene su tipi di documenti diversi e in scala.
Retrieval ibrido
La ricerca semantica spesso manca le query in cui la parola esatta conta. La ricerca per keyword da sola manca le query in cui conta il significato ma la formulazione è diversa.
RAGFlow esegue entrambe in parallelo:
- Ricerca vettoriale che coglie le corrispondenze semantiche: "revenue" trova "sales" e "income"
- Ricerca per keyword che coglie le corrispondenze esatte: un codice prodotto o un termine legale compare anche se il modello di embedding non lo capisce
- Reranking che riodina i risultati combinati con un modello dedicato, così i chunk in cima sono davvero i più rilevanti
Builder di workflow
Il builder di workflow è una tela visiva su cui configuri la pipeline invece di scrivere codice.
Trascini componenti su una canvas — retrieval, rerank, LLM, esecuzione di codice, chiamate HTTP, iterazioni, switch — e li connetti in un flusso. RAGFlow include template predefiniti per pattern comuni come Retrieve - Rerank - Answer, Deep Research e Data Analytics.
Per team composti per lo più da non-ingegneri, questo è il modo per creare un prototipo funzionante in una settimana.
Supporto agenti
Dalla v0.20, RAGFlow supporta workflow agentici completi sulla stessa canvas dei workflow tradizionali.
Un componente agente può pianificare, riflettere, chiamare tool e delegare a sotto-agenti. Configuri un prompt e un elenco di tool e l'agente decide a runtime quale tool chiamare e in che ordine. I tool possono essere componenti integrati, server MCP collegati o altri agenti.
Il valore sta nel ragionamento sulla conoscenza recuperata.
Un agente di supporto può recuperare da una knowledge base, chiamare un'API esterna per controllare lo stato di un ticket e decidere se fare escalation. Lo fa in un unico flusso, con citazioni allegate alle parti provenienti dai documenti.
Parsing dei documenti ed estrazione della conoscenza
La qualità del retrieval parte dalla qualità del parsing. Se sbagli questa parte, nessun reranker o LLM più grande ti salverà.
La maggior parte dei fallimenti RAG avviene a livello di documento, cioè un PDF pieno di tabelle viene estratto come valori separati da virgola o un deck di slide perde la sua gerarchia visiva. Quando quei chunk arrivano al database vettoriale, non c'è più valore in essi.
L'approccio di RAGFlow è trattare il parsing come un problema di prima classe.
Tabelle
Le tabelle sono la parte più difficile del parsing. Un parser PDF standard legge una tabella riga per riga e la trasforma in un flusso di numeri senza intestazioni. Perdi la struttura.
DeepDoc esegue il Table Structure Recognition (TSR) prima del chunking. Identifica i confini della tabella, la riga di intestazione, le colonne e le relazioni tra celle. Quando il chunker divide il documento, le tabelle restano intatte con le loro intestazioni e ogni riga mantiene il suo contesto.
Immagini e scansioni
DeepDoc usa l'OCR per estrarre testo da pagine scansionate e, dalla v0.19, può usare un modello visione-linguaggio per interpretare le immagini dentro PDF e DOCX.
Questo significa che un diagramma, un grafico o la foto di una ricevuta possono diventare contenuto ricercabile.
Layout multicolonna
Articoli accademici e report finanziari usano layout multicolonna. Un parser ingenuo li legge da sinistra a destra, riga per riga, mescolando le colonne e producendo contenuti senza senso.
DeepDoc usa il Document Layout Recognition (DLR) per capire prima l'ordine di lettura. Sa che la colonna 1 viene prima della colonna 2 e che un'intestazione può coprire entrambe le colonne.
Metadati
Ogni chunk ha metadati come numero di pagina, titolo di sezione, posizione sulla pagina e file sorgente di provenienza.
Questo abilita le citazioni. Quando l'LLM cita un passaggio, RAGFlow può indicare la pagina e la posizione esatta nel documento sorgente. Rende possibile anche il filtraggio a livello di chunk: puoi cercare dentro una specifica sezione o un documento specifico.
Qualità dei chunk
L'ultimo pezzo è il chunking stesso. RAGFlow usa chunking basato su template, quindi scegli un template che corrisponde al tuo tipo di documento (Generale, Paper, Libro, Q&A, Manuale, Tabella o Naive).
Ogni template applica regole diverse su dove dividere. Il template Paper mantiene abstract, metodi e risultati come unità separate. Il template Q&A mantiene ogni domanda con la sua risposta. Il template Manuale rispetta intestazioni e procedure. Hai capito l'idea.
Il risultato sono chunk che hanno senso da soli. Quando vengono aggiunti alla finestra di contesto dell'LLM, hanno significato sufficiente per rispondere alla domanda.
Retrieval in RAGFlow
Una volta che i documenti sono stati analizzati e spezzettati, il retrieval decide se l'LLM vede il contesto giusto. Il motore di retrieval di RAGFlow ha tre parti che lavorano insieme.
Retrieval vettoriale
La ricerca vettoriale coglie la similarità semantica. Esegui l'embedding della query e di ogni chunk con lo stesso modello e il motore restituisce i chunk i cui vettori sono più vicini al vettore della query.
È ciò che permette a una ricerca per "revenue growth" di trovare un chunk su "sales increase" anche se i termini non compaiono nell'altro. RAGFlow ti consente di scegliere il modello di embedding — OpenAI, Cohere, Voyage, BGE o uno locale — e cambiarlo in seguito senza ricostruire tutto il sistema.
Ricerca ibrida
La ricerca vettoriale non è il massimo per i termini esatti. Cose come un codice prodotto o un riferimento legale potrebbero non avere un forte segnale semantico, ma la corrispondenza esatta della stringa conta molto.
RAGFlow esegue BM25 in parallelo alla ricerca vettoriale e combina i risultati. Ottieni il richiamo semantico degli embedding e la precisione dell'abbinamento per keyword nella stessa query.
Reranking
Il primo round di retrieval ti dà un set di candidati — di solito i primi 30 o 50 chunk. Sono troppi per la finestra di contesto dell'LLM e la cima della lista spesso è rumorosa.
Il reranking prende quei candidati e li riordina con un modello dedicato che legge insieme query e chunk. Il reranker sa cosa è rilevante per la query, non solo cosa è simile. I primi 5 o 10 chunk dopo il reranking sono quelli che entrano nel prompt.
Selezione del contesto
L'ultimo passaggio è decidere cosa va nel contesto dell'LLM. RAGFlow ti consente di impostare il numero di chunk, la soglia di similarità e il punteggio minimo del reranker.
Puoi anche usare opzioni avanzate come RAPTOR (riassunto gerarchico per domande multi-hop) o long-context RAG (indici automatici a livello di documento che danno all'LLM una mappa del materiale sorgente). Queste opzioni servono quando il retrieval su chunk piatti non basta.
Lo scopo del motore di retrieval è fornire all'LLM esattamente il contesto necessario e nulla di più.
RAGFlow vs pipeline RAG tradizionali
Le pipeline RAG tradizionali sono costruite da strumenti indipendenti. Scegli un parser (Unstructured, LlamaParse, PyMuPDF), un chunker (text splitter di LangChain, codice custom), un modello di embedding, un database vettoriale (Pinecone, Weaviate, Chroma, Qdrant), un reranker (Cohere, BGE), un client LLM e una UI. Poi scrivi il codice che li usa tutti.
Questo approccio ti dà il massimo controllo, ma richiede molto sforzo di ingegneria.
Ogni punto di integrazione è codice che devi pianificare, scrivere, testare e mantenere. Quando vuoi aggiungere il tracciamento delle citazioni, devi costruirlo. Allo stesso modo, quando un componente cambia API, devi sistemare la pipeline.
RAGFlow adotta l'approccio opposto.
È una piattaforma integrata in cui parsing, chunking, retrieval, reranking, citazioni, orchestrazione dei workflow e una web UI sono disponibili out-of-the-box. Configuri tramite interfaccia web invece che con codice, e i pezzi sono già connessi.
In cambio rinunci a un po' di flessibilità. Se vuoi cambiare un algoritmo di chunking innovativo o un reranker di ricerca, lavori nel modello a plugin di RAGFlow invece di scrivere Python. Per la maggior parte dei casi in produzione va bene, ma per usi sperimentali può risultare piuttosto restrittivo.
Ecco un riepilogo delle differenze:
| RAG tradizionale | RAGFlow | |
|---|---|---|
| Setup | Assemblare più strumenti | Una piattaforma, un deploy |
| Orchestrazione | Codice custom | Builder di workflow visuale |
| Impegno ingegneristico | Alto | Basso-medio |
| Flessibilità | Controllo totale | Vincolata dalla piattaforma |
| Tempo al primo risultato | Giorni o settimane | Ore |
| Migliore per | Pipeline custom o sperimentali | Sistemi in produzione su documenti disordinati |
Nessun approccio è universalmente migliore. Se hai il tempo ingegneristico e ti serve pieno controllo, una pipeline tradizionale è la scelta giusta. Se vuoi concentrarti sulla knowledge base, RAGFlow sarà più veloce.
RAGFlow vs LangChain e LlamaIndex
Se stai anche solo considerando RAGFlow, probabilmente hai sentito parlare di LangChain e LlamaIndex. Ora ti mostro come si confrontano.
LangChain
LangChain è un framework applicativo per app LLM. Il suo compito principale è l'orchestrazione, quindi concatenare prompt, tool, memoria e modelli in workflow. LangChain non si interessa molto di come vengono analizzati i tuoi documenti o di come è impostato il retrieval. Si occupa di ciò che accade dopo il retrieval.
Se il tuo progetto è ricco di agenti — chiamate a tool, ragionamento a più passi, logica ramificata, human-in-the-loop — LangChain (e il suo layer a macchina a stati, LangGraph) è ciò che la maggior parte dei team finisce per usare.
LlamaIndex
LlamaIndex è un framework dati per LLM. Si concentra sull'ingestione dei dati, sulla costruzione di indici e su query efficaci. LlamaIndex ha oltre 160 connettori dati, diversi tipi di indice (vettoriale, keyword, ad albero, knowledge graph) e predefiniti ragionevoli per chunking e retrieval.
Se il tuo progetto è pesante sul retrieval — molti documenti, esigenze di ricerca approfondita e varie sorgenti — LlamaIndex è la scelta migliore per un approccio code-first.
RAGFlow
RAGFlow è una piattaforma RAG integrata. Non è una libreria da importare in Python: è un sistema da distribuire. Parsing, chunking, retrieval, reranking, citazioni, workflow, agenti e una web UI sono inclusi.
Se la tua priorità è mettere in piedi un sistema RAG di produzione su documenti disordinati senza scrivere da zero la pipeline, RAGFlow è la via più rapida.
I tre strumenti possono anche mischiarsi. Uno schema comune è LlamaIndex per l'ingestione, LangChain o LangGraph per l'orchestrazione degli agenti e RAGFlow quando vuoi uno stack completo, self-hosted, invece di codice assemblato a mano.
Ecco un riepilogo:
| LangChain | LlamaIndex | RAGFlow | |
|---|---|---|---|
| Tipo | Framework applicativo | Framework dati | Piattaforma integrata |
| Focus principale | Orchestrazione, agenti | Ingestione, indicizzazione, retrieval | Stack RAG end-to-end |
| Interfaccia | Libreria Python / JavaScript | Libreria Python | Web UI + API |
| Parsing dei documenti | Base (con integrazioni) | Buono | Migliore (DeepDoc) |
| Supporto agenti | Forte (LangGraph) | Base (workflow) | Forte (v0.20+) |
| Migliore per | App ricche di agenti | App ricche di retrieval | RAG in produzione su documenti disordinati |
| Linguaggio | Code-first | Code-first | Config-first (con API) |
Costruire un'applicazione RAG con RAGFlow
Una volta che RAGFlow è in esecuzione, costruire un'applicazione RAG segue cinque passaggi. Anche qui, non scrivi codice di pipeline: configuri ogni passaggio tramite UI o API.
Ingerisci i documenti
Inizia caricando i tuoi documenti. Puoi aggiungere file tramite la web UI, collegare una fonte dati come Google Drive, S3, Notion, Confluence o Discord, oppure aggiungere file tramite API.

Esempio di ingestione documenti
RAGFlow accetta la maggior parte dei formati comuni, quindi non devi convertire nulla in anticipo.
Configura la knowledge base
Una knowledge base in RAGFlow è un contenitore per documenti, chunk e impostazioni. Scegli il template di chunk che corrisponde al tuo tipo di documento (Generale per contenuti misti, Paper per la ricerca, Manuale per documentazione tecnica, Q&A per ticket di supporto, e così via), scegli il modello di embedding e il parser.

Configurazione della knowledge base
Tieni presente che questo passaggio è importante: una buona scelta del template ti evita molti grattacapi dopo.
Scegli una strategia di retrieval
Decidi quindi come deve funzionare il retrieval. Imposti il numero di top chunk da restituire, la soglia di similarità e se usare la ricerca ibrida o solo la vettoriale. Puoi anche attivare il reranking e scegliere un modello di reranker.
Per i casi avanzati, RAGFlow supporta RAPTOR per la sintesi gerarchica e knowledge graph per retrieval basato su entità. Puoi attivarli nelle impostazioni della knowledge base.
Collega un LLM
RAGFlow non include un LLM. Porti il tuo: OpenAI, DeepSeek, Gemini, Claude, un modello locale tramite Ollama o qualsiasi altro supportato da RAGFlow.

Opzioni modello
Aggiungi la tua chiave API nelle impostazioni, scegli il modello e imposta il prompt di sistema.
Testa le risposte
L'ultimo passaggio è il testing. RAGFlow ha un'interfaccia chat in cui puoi interrogare la knowledge base e vedere la risposta con le citazioni allegate.
Clicca una citazione e arrivi esattamente al chunk con la sua posizione evidenziata nel documento sorgente.
La maggior parte dei team ripete questo ciclo alcune volte prima che le risposte siano utilizzabili. È normale per qualsiasi sistema RAG, ma con RAGFlow cambi impostazioni in una UI invece di riscrivere codice Python.

Esempio di configurazione chat
RAGFlow in produzione
Vedrai RAGFlow usato in produzione per un set specifico di casi d'uso, soprattutto quelli in cui la qualità dei documenti e il tracciamento delle citazioni contano di più.
Knowledge base aziendali
Le grandi aziende hanno migliaia di documenti sparsi tra unità condivise, Confluence, SharePoint e PDF allegati alle email. Di solito i dipendenti non trovano ciò che serve e chiedere all'LLM senza RAG porta ad allucinazioni.
Qui RAGFlow funziona bene.
Vecchi PDF, policy scansionate, fogli Excel con tabelle pivot, presentazioni PowerPoint di anni fa: tutto viene analizzato. E con le citazioni, i team legali e compliance possono fidarsi delle risposte, e la web UI consente ai non-ingegneri di mantenere la knowledge base.
Assistenti al supporto clienti
I team di supporto hanno anni di ticket, FAQ, manuali di prodotto e runbook interni. Un assistente deve cercare in tutto ciò, trovare il passaggio giusto e sapere quando fare escalation.
Il template di chunk Q&A di RAGFlow è fatto apposta per questo. Gli dai la cronologia dei ticket e tratta ogni coppia domanda-risposta come unità di retrieval. Se aggiungi uno strato agente sopra, colleghi un'API per controllare gli ordini e ottieni un assistente che gestisce le richieste di routine e inoltra quelle complesse con tutto il contesto.
Ricerca nella documentazione interna
I team di ingegneria hanno runbook, documenti di architettura, postmortem di incidenti e reference API sparsi tra Notion, Confluence e GitHub. Grep funziona per le keyword, ma non aiuta con "come abbiamo gestito l'ultima volta che è scattato questo alert?"
RAGFlow ti dà ricerca semantica su tutto il corpus con citazioni alla fonte. Ciò significa che gli ingegneri possono ottenere il passaggio e il link alla pagina originale con un clic.
Assistenti alla ricerca
I team di ricerca lavorano con articoli, brevetti, report e esperimenti interni. Il template Deep Research in RAGFlow è progettato per questo, con retrieval multi-turn e ragionamento chain-of-thought, dove l'agente scompone una domanda, cerca pezzi di risposta e li sintetizza.
Per finanza, legale e ricerca farmaceutica, la possibilità di tracciare ogni affermazione a una fonte è ciò che rende l'assistente utilizzabile.
Il filo conduttore è che i documenti sono la parte difficile. Se il materiale sorgente è pulito e semplice, la maggior parte degli strumenti RAG funziona. Se è disordinato e strutturato, il livello di parsing di RAGFlow probabilmente ti porterà più lontano che scrivere la pipeline da zero.
Distribuire RAGFlow
RAGFlow offre tre percorsi di deployment. Vediamo quali sono.
Deployment con Docker
Docker Compose è il percorso principale. Cloni il repo, entri nella cartella docker e lanci docker compose up -d. Questo avvia il server RAGFlow insieme a Elasticsearch, MinIO, MySQL e Redis.
Le specifiche minime sono 4 core CPU, 16 GB di RAM e 50 GB di disco. In pratica vorrai più RAM se gestisci grandi collezioni di documenti, perché Elasticsearch e Infinity richiedono molta memoria.
Le immagini Docker sono pensate per x86, da tenere a mente. Se sei su Apple Silicon o un'altra macchina ARM64, lo strato di traduzione ti farà partire, ma per prestazioni migliori vorrai costruire l'immagine da te seguendo la guida ARM64 nella documentazione di RAGFlow.
Sviluppo locale
Se vuoi modificare il codice sorgente di RAGFlow, puoi avviare backend e frontend da sorgente. Usi uv per le dipendenze Python, esegui docker compose -f docker/docker-compose-base.yml up -d per avviare solo i servizi di supporto (MinIO, Elasticsearch, MySQL, Redis), poi avvii il backend con uno script shell e il frontend con npm run dev.
Questo percorso ha senso solo se contribuisci al progetto o fai debug. Per la maggior parte degli utenti, Docker Compose è più rapido.
Deployment cloud
InfiniFlow gestisce una versione hosted su cloud.ragflow.io. Ha un tier gratuito con 5 app e 500 crediti al mese e piani a pagamento a $29, $129 e prezzi enterprise.
La versione cloud va bene per prototipi e piccoli team. Per un uso serio in produzione con dati sensibili, la maggior parte dei team fa self-hosting sulla propria infrastruttura, o su una singola VM per deployment piccoli o su Kubernetes con la Helm chart per quelli più grandi.
Considerazioni sullo scaling
Il deployment predefinito di RAGFlow esegue tutto su una sola macchina. Va bene fino a un certo punto, ma oltre incontrerai limiti sul numero di documenti, sul carico di query o sulla dimensione del team.
I componenti che scalano indipendentemente sono il motore documentale (Elasticsearch o Infinity), lo storage oggetti (MinIO) e l'app RAGFlow stessa. Per deployment più grandi, separi questi servizi su macchine diverse, usi un Elasticsearch gestito o uno storage S3-compatibile e fai girare più istanze dell'app RAGFlow dietro un load balancer.
L'accelerazione GPU per DeepDoc è un'altra cosa da esplorare. Come sai, il parsing è pesante sulla CPU di default, ma puoi abilitare la modalità GPU in configurazione, che fa una grande differenza su grandi job di ingestione documenti.
Il resto è lavoro di infrastruttura standard e RAGFlow non ostacola nulla di tutto ciò.
Vantaggi e limiti di RAGFlow
Ogni strumento ha dei compromessi, e RAGFlow non fa eccezione. Ecco cosa devi sapere prima di usarlo.
Vantaggi
- È una piattaforma integrata: non devi scegliere un parser, un database vettoriale, un reranker, un chunker e un framework UI e poi scrivere il codice. RAGFlow include tutto.
- L'elaborazione dei documenti è la parte più forte: DeepDoc gestisce PDF, file scansionati, tabelle e layout complessi meglio della maggior parte delle alternative. Se i tuoi documenti sono disordinati, spesso basta questo per scegliere RAGFlow.
- È orientato alla produzione fin dal primo giorno: citazioni fondate, visualizzazione dei chunk, workflow degli agenti, supporto MCP e una vera UI di gestione sono integrati.
- È open source sotto Apache 2.0: puoi fare self-hosting, modificare il codice ed eseguirlo sulla tua infrastruttura. Il repo GitHub ha oltre 80k stelle e sviluppo attivo, quindi il progetto non scomparirà presto.
Limiti
- Il deployment non è così semplice come sembra all'inizio: Docker Compose aiuta, ma stai comunque eseguendo Elasticsearch o Infinity, MinIO, MySQL e Redis insieme all'app. Qualcosa si romperà prima o poi e dovrai conoscere abbastanza Docker per sistemarlo.
- Requisiti di infrastruttura: il minimo è 16 GB di RAM e 4 core CPU, ma vale per workload piccoli. Deployment reali richiedono 32 GB o più, specialmente se usi Infinity o esegui grandi job di ingestione. RAGFlow su un VPS da $5 non funzionerà.
- C'è una curva di apprendimento: il builder di workflow è potente, ma ha molti componenti, e trovare il template di chunk giusto e le impostazioni di retrieval richiede tempo. Passerai qualche giorno a prendere confidenza prima di essere produttivo.
Niente di tutto ciò è un ostacolo insormontabile se RAGFlow si adatta al tuo caso d'uso. Considerali il costo di avere una piattaforma invece di una libreria.
Chi dovrebbe usare RAGFlow?
RAGFlow non è ideale per ogni progetto. Ecco a chi si adatta e chi invece starà meglio con qualcosa di più leggero.
Fit migliore
Ingegneri AI che costruiscono sistemi RAG di produzione. Se il tuo lavoro è creare un'app RAG funzionante e non scrivere un'altra libreria di chunking, RAGFlow elimina gran parte dell'impianto idraulico.
Team AI enterprise. Legale, compliance, finanza e supporto hanno bisogno di citazioni e tracciabilità. Anche una UI che i non-ingegneri possono usare è un plus.
Sviluppatori che lavorano con documenti disordinati. PDF pieni di tabelle, file scansionati, layout multicolonna e formati misti sono dove DeepDoc è superiore alla concorrenza. Se il tuo materiale sorgente è qualcosa di diverso dal testo pulito, la qualità del parsing di RAGFlow è difficile da eguagliare.
Organizzazioni con grandi collezioni di documenti. Superata la soglia di qualche migliaio di documenti, ti serve un sistema che possa ingerire, indicizzare e cercare in scala. RAGFlow è lo strumento giusto qui.
Meno ideale
Prototipi di chatbot semplici. Se devi solo rispondere a domande da un paio di file Markdown, RAGFlow è eccessivo. Uno script LlamaIndex o una semplice pipeline LangChain ti portano a destinazione più velocemente.
Progetti molto piccoli. Per Q&A personale su pochi PDF, il costo infrastrutturale è troppo alto. Passerai più tempo sui comandi Docker che sul progetto vero e proprio.
Team che vogliono zero setup. Se vuoi iscriverti e avere un RAG funzionante in cinque minuti, un servizio hosted o una libreria leggera è più adatta. RAGFlow ha una versione cloud, ma il percorso self-hosted (dove sta la maggior parte del valore) richiede un po' di setup.
La regola pratica è semplice. Se la qualità del retrieval su documenti disordinati è la parte difficile del tuo progetto, RAGFlow vale il costo di setup. Se non lo è, usa qualcosa di più leggero.
Conclusione
RAGFlow è una piattaforma full-stack per costruire applicazioni RAG di produzione su documenti reali.
Il suo punto di forza è che elaborazione dei documenti, retrieval, reranking e generazione vivono in un unico workflow invece di essere combinati da strumenti separati. Hai parsing DeepDoc, retrieval ibrido, citazioni fondate e workflow di agenti dietro un'unica UI e API.
Se i tuoi documenti sono disordinati e la qualità del retrieval conta, RAGFlow vale il costo di setup.
Inizia con il tier cloud gratuito o con un deploy Docker locale, carica alcuni dei tuoi documenti peggiori e guarda come tornano le risposte. È il modo più veloce per capire se si adatta al tuo caso d'uso.
L'architettura RAG è semplice per design, ma non significa che non funzioni per casi complessi. Leggi il nostro post Advanced RAG Techniques per imparare il retrieval denso, il reranking e il ragionamento multi-step.
Ragflow
A cosa serve RAGFlow?
RAGFlow è usato per costruire applicazioni di Retrieval Augmented Generation sui tuoi documenti. Le aziende lo usano per knowledge base enterprise, assistenti al supporto clienti, ricerca nella documentazione interna e assistenti alla ricerca che devono rispondere a domande da PDF, fogli di calcolo, presentazioni e altre fonti disordinate. Ti offre parsing dei documenti, retrieval, reranking, citazioni e workflow di agenti in un'unica piattaforma invece di cinque strumenti separati.
RAGFlow è gratuito?
Sì, RAGFlow è open source sotto licenza Apache 2.0 e puoi eseguirlo in self-hosting sulla tua infrastruttura senza costi. InfiniFlow offre anche una versione hosted con un tier gratuito per progetti piccoli e piani a pagamento a partire da $29 al mese per team più grandi. La maggior parte degli utenti in produzione fa self-hosting, soprattutto quando lavora con dati sensibili.
In cosa RAGFlow è diverso da LangChain o LlamaIndex?
LangChain è un framework applicativo per concatenare chiamate LLM, tool e agenti. LlamaIndex è un framework dati per ingestione, indicizzazione e retrieval. RAGFlow è un'intera piattaforma: la distribuisci, la configuri tramite web UI e ottieni parsing, retrieval, citazioni e workflow pronti all'uso senza scrivere codice di pipeline. Puoi anche combinarli: LlamaIndex per l'ingestione, LangChain per l'orchestrazione, RAGFlow quando vuoi l'intero stack in un unico posto.
Quali formati di documenti supporta RAGFlow?
RAGFlow supporta PDF, file Word, fogli Excel, presentazioni PowerPoint, Markdown, HTML, testo semplice, immagini e documenti scansionati. Il motore DeepDoc usa OCR, riconoscimento della struttura delle tabelle e del layout per analizzare correttamente ogni formato, così le tabelle restano integre, le pagine multicolonna vengono lette nell'ordine giusto e i file scansionati diventano ricercabili. Dalla v0.25 puoi anche sincronizzare direttamente da Confluence, S3, Notion, Discord e Google Drive.
Quali sono i requisiti hardware minimi per eseguire RAGFlow?
Il minimo ufficiale è 4 core CPU, 16 GB di RAM, 50 GB di disco e Docker 24.0 o superiore. In pratica, vorrai 32 GB di RAM o più quando indicizzi volumi reali di documenti, poiché Elasticsearch (o Infinity), MinIO, MySQL e Redis girano insieme all'app RAGFlow. L'accelerazione GPU per DeepDoc è opzionale ma velocizza l'ingestione.


