Hai mai desiderato che ChatGPT sapesse ESATTAMENTE cosa c’è nei tuoi documenti, nei tuoi appunti, nei tuoi file? Magari hai un drive pieno di PDF, centinaia di note su Obsidian, email storiche, contratti, manuali tecnici. E ti piacerebbe fare una domanda in linguaggio naturale e ricevere una risposta basata solo su QUEI documenti, non su quello che l’AI ha imparato da Internet in generale.
Bene, quello che ti serve si chiama RAG (Retrieval-Augmented Generation). In questa guida vediamo insieme cos’è, come funziona e soprattutto quali sono i metodi più semplici per costruirti un sistema RAG domestico senza impazzire.
Di cosa parleremo..
Cos’è un RAG in parole semplici
Un sistema RAG è un modo per agganciare un database di conoscenze personali a un modello linguistico come ChatGPT o Claude. Funziona in due fasi:
- Recupero: quando fai una domanda, il sistema cerca nei tuoi documenti i frammenti più pertinenti
- Generazione: passa quei frammenti al modello AI insieme alla domanda, così la risposta è basata SUI TUOI dati
Immagina di avere un assistente che, prima di risponderti, si alza, va nella tua libreria, prende i libri giusti, li sfoglia e solo dopo ti risponde. Ecco, questo è un RAG. Senza RAG, l’assistente risponde solo con quello che sa già, senza consultare i tuoi documenti.
Se vuoi capire meglio i fondamenti, ti consiglio di partire dal Glossario AI per una definizione completa di RAG e dei termini correlati.
Perché costruirsi un RAG domestico?
I motivi sono tanti:
- Privacy: i tuoi dati non lasciano mai il tuo computer. Niente cloud, niente server di terze parti.
- Personalizzazione: l’AI risponderà basandosi sulle tue conoscenze, non su quelle generiche di Internet.
- Costi: dopo l’investimento iniziale (un buon PC o un piccolo server), il costo di gestione è prossimo allo zero.
- Integrazione: puoi collegare il tuo RAG a qualsiasi software, sito web o AI agent che usi.
Cosa ti serve per partire
Indipendentemente dal metodo che scegli, gli ingredienti sono sempre gli stessi:
- Un modello per generare gli embedding, ossia per trasformare i tuoi documenti in rappresentazioni numeriche che il sistema può “capire” e cercare
- Un database vettoriale, dove vengono conservati gli embedding dei tuoi documenti
- Un LLM, che genera le risposte in linguaggio naturale basate sui documenti recuperati
- Un orchestratore, che coordina il recupero dei documenti e la generazione delle risposte
Nel Glossario AI trovi la spiegazione di cosa sono i database vettoriali e gli embedding.
Metodo 1: AnythingLLM – Il più semplice in assoluto
Se non hai voglia di scrivere una riga di codice, AnythingLLM è la soluzione perfetta. È un’applicazione desktop (ma anche server) che ti permette di:
- Caricare documenti (PDF, Word, TXT, markdown, codice, siti web interi)
- Scegliere un modello AI locale (attraverso Ollama, LM Studio o OpenAI in cloud)
- Fare domande in linguaggio naturale
Come si installa
- Scarichi AnythingLLM dal sito ufficiale (gratuito, open source)
- Lo avvii e crei uno spazio di lavoro (workspace) per ogni argomento
- Carichi i documenti drag-and-drop
- Colleghi un modello (Ollama per locale, OpenAI per cloud)
- Inizi a chattare con i tuoi documenti
AnythingLLM gestisce automaticamente la divisione dei documenti in chunk, la creazione degli embedding e il recupero. Davvero non devi fare nulla.
Pro e contro
Pro: interfaccia grafica immediata, supporto multi-formato, funziona su Mac/Windows/Linux, si collega a Ollama e LM Studio.
Contro: meno flessibile per integrazioni avanzate, non progettato per essere esposto come API a software esterni.
Metodo 2: Ollama + Open WebUI – Potenza locale con interfaccia web
Ollama è il punto di riferimento per far girare modelli AI localmente sul proprio computer. Open WebUI è un’interfaccia web pensata per Ollama che include il supporto RAG integrato.
Come si monta
- Installi Ollama (un comando su Linux/Mac, un installer su Windows)
- Scarichi un modello:
ollama pull llama3.2oollama pull mistral - Installi Open WebUI (Docker o manuale)
- Carichi i documenti nell’interfaccia web
- Fai domande
Open WebUI supporta l’upload di documenti, la ricerca semantica interamente offline e la creazione di collezioni di documenti per argomento.
Pro e contro
Pro: tutto locale al 100%, interfaccia web moderna, supporta più modelli contemporaneamente, ha un’API nativa che puoi chiamare dai tuoi software.
Contro: richiede un minimo di dimestichezza con terminale e Docker, consuma RAM e CPU (serve un PC decente per modelli medio-grandi).
Metodo 3: LangChain + ChromaDB – Per chi sa programmare un po’
Se hai familiarità con Python (o vuoi imparare le basi), LangChain è il framework più popolare per costruire sistemi RAG. Lo abbini a ChromaDB (un database vettoriale leggero) e hai un sistema personalizzabile al 100%.
Esempio minimale
from langchain_community.document_loaders import TextLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_chroma import Chroma
from langchain_ollama import OllamaEmbeddings, ChatOllama
from langchain.chains import RetrievalQA
# Carica i documenti
loader = TextLoader("miei-appunti.md")
docs = loader.load()
# Dividi in chunk
text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
splits = text_splitter.split_documents(docs)
# Crea il database vettoriale
vectorstore = Chroma.from_documents(documents=splits, embedding=OllamaEmbeddings(model="nomic-embed-text"))
# Crea la catena RAG
qa_chain = RetrievalQA.from_chain_type(
llm=ChatOllama(model="llama3.2"),
retriever=vectorstore.as_retriever()
)
# Fai una domanda
risposta = qa_chain.invoke({"query": "Qual è la procedura per il backup?"})
print(risposta["result"])
Con meno di 20 righe di Python hai un sistema RAG funzionante. Puoi poi esporlo come API web con FastAPI o Flask e collegarlo ai tuoi software.
Pro e contro
Pro: massima flessibilità, controlli tutto (divisione chunk, strategia di recupero, prompt template), si integra con qualsiasi database vettoriale (Chroma, Qdrant, Weaviate, Pinecone).
Contro: devi saper programmare, la manutenzione è a carico tuo, per funzionalità avanzate serve più complessità.
Metodo 4: LlamaIndex – Più smart di LangChain per i documenti
LlamaIndex è simile a LangChain ma nasce specificamente per il data indexing. Se LangChain è un coltellino svizzero per costruire applicazioni AI, LlamaIndex è specializzato nel dare da mangiare dati ai modelli.
LlamaIndex sa già come gestire PDF, siti web, database SQL, Google Drive, Notion, Obsidian e decine di altre fonti. Supporta indici avanzati come auto-merging retriever (unisce chunk piccoli in chunk più grandi) e sentence-window retrieval (recupera frasi ma restituisce il contesto circostante).
Pro e contro
Pro: connettori nativi per decine di fonti dati, strategie di retrieval avanzate, integrazione facile con gli LLM locali via Ollama.
Contro: come LangChain, richiede capacità di programmazione, la documentazione è densa.
Metodo 5: n8n + modelli locali – RAG senza codice
Se vuoi costruire un sistema RAG senza scrivere codice ma con più flessibilità di AnythingLLM, n8n è la soluzione ideale. n8n è un’automazione visuale (tipo Zapier ma open source) che puoi far girare sul tuo server.
Con n8n puoi creare flussi (workflow) che:
- Prendono documenti da una cartella, un drive o un’email
- Generano gli embedding chiamando un modello locale
- Salvano i vettori in un database (Qdrant, Postgres con pgvector, Weaviate)
- Rispondono alle domande tramite webhook o API
Il vantaggio è che ogni passaggio è visuale: trascini nodi e li colleghi. Il risultato è un sistema RAG che puoi esporre come API REST e collegare a qualsiasi software.
Pro e contro
Pro: nessuna programmazione richiesta, flussi visuali, supporto nativo per webhook e API, si integra con centinaia di servizi.
Contro: per scenari complessi i workflow diventano grandi, la latenza è leggermente superiore a una soluzione Python custom.
Collega il tuo RAG ai software esterni
Una volta che hai il tuo RAG funzionante, il vero valore sta nel collegarlo a ciò che usi tutti i giorni. Ecco come:
API REST
La maggior parte dei metodi sopra espone un’API nativa. AnythingLLM la fornisce di serie, Open WebUI ha la sua, LangChain e LlamaIndex puoi esporli con FastAPI, n8n ha webhook nativi.
OpenClaw MCP Server
Se usi OpenClaw o altri AI agent, puoi esporre il tuo RAG come MCP Server (Model Context Protocol). Questo permette al tuo agente AI di interrogare il tuo database di documenti durante le conversazioni, proprio come farebbe con un motore di ricerca, ma sui tuoi dati personali.
Obsidian + Copilot
Uno dei casi d’uso più popolari: se usi Obsidian per gli appunti, ci sono plugin come Copilot che integrano un RAG locale basato su Ollama. Ogni nota che scrivi diventa indicizzata e interrogabile. Il tuo secondo cervello diventa davvero parlante.
Telegram Bot
Con Python + python-telegram-bot puoi creare un bot che riceve messaggi, interroga il tuo RAG e risponde. Lo ospiti sul Raspberry Pi che hai in casa e hai il tuo assistente personale sempre disponibile.
La soluzione migliore per OpenClaw con API GPT e DeepSeek-V4-Flash
Se il tuo obiettivo è collegare un RAG domestico a OpenClaw (o a qualsiasi AI agent che usi), la combinazione più efficace è questa:
Open WebUI + Ollama per gli embedding + API OpenAI/DeepSeek per la generazione.
Ecco perché funziona perfettamente:
- Open WebUI ha un’API REST nativa ben documentata, che OpenClaw può chiamare direttamente tramite MCP o HTTP request.
- Puoi usare modelli di embedding locali via Ollama (come
nomic-embed-textoall-MiniLM-L6-v2) per indicizzare i documenti senza mandare dati in cloud, mantenendo la privacy al 100%. - Per la generazione delle risposte, Open WebUI si appoggia indifferentemente a OpenAI (GPT-4o, GPT-5.6) o a DeepSeek (V4-Flash) tramite API, configurando più provider.
- OpenClaw espone un MCP Server che si connette a qualsiasi API REST. Gli fai puntare a
http://tuo-server:3000/api/v1/rage hai finito.
In pratica: i tuoi documenti restano a casa tua (embedding locali), ma le risposte le genera il modello cloud più potente che hai a disposizione. Il meglio di entrambi i mondi.
Per configurare, installi Open WebUI in Docker, imposti Ollama con un modello di embedding leggero, aggiungi OpenAI e DeepSeek come provider LLM, esponi l’API in rete locale, e colleghi OpenClaw via MCP con le credenziali della tua istanza. Niente in cloud, niente data leak, niente costi di indicizzazione nascosti.
Quale metodo scegliere?
Ecco un riepilogo rapido per aiutarti a decidere:
- Non vuoi complicazioni, un utente singolo: AnythingLLM (metodo 1) o Open WebUI (metodo 2).
- Sai programmare e vuoi il massimo controllo: LangChain (metodo 3) o LlamaIndex (metodo 4).
- Vuoi automazione visuale senza codice: n8n (metodo 5).
- Vuoi collegare il RAG a OpenClaw: Open WebUI + Ollama per embedding + API GPT o DeepSeek per la generazione.
- Devi esporre il RAG come API ad altri software: Open WebUI ha la migliore API nativa.
- Vuoi la privacy totale: qualsiasi metodo con Ollama + modelli locali.
FAQ
Devo avere un PC potente per far girare un RAG domestico?
Dipende. Per modelli piccoli (3-8 miliardi di parametri) come Llama 3.2 o Phi-3, un portatile con 8 GB di RAM e una CPU moderna è sufficiente. Per modelli più grandi (13-70 miliardi) serve una GPU dedicata. La parte di embedding è leggera, la generazione delle risposte è la fase più onerosa.
Posso usare ChatGPT o DeepSeek invece di un modello locale?
Certo. Open WebUI supporta nativamente OpenAI, DeepSeek, Anthropic e Google come provider. Gli embedding e l’indicizzazione rimangono sul tuo computer, solo la generazione delle risposte va in cloud. È la configurazione ideale per unire privacy dei dati e potenza dei modelli cloud.
Quanto spazio occupano i dati indicizzati?
Molto meno dei documenti originali. Gli embedding sono compatti: un migliaio di pagine di PDF occupano qualche centinaio di megabyte nel database vettoriale. I documenti originali restano dov’erano.
Posso collegare il RAG a più dispositivi in casa?
Sì. Se installi AnythingLLM o Open WebUI su un server domestico (un Raspberry Pi 5 o un mini PC), puoi accedervi da qualsiasi dispositivo in rete. Anche da fuori casa con un tunnel (Tailscale, Cloudflare Tunnel).
Che differenza c’è tra RAG e fine-tuning?
Il fine-tuning modifica il modello AI stesso, addestrandolo sui tuoi dati. Serve per cambiare il comportamento o lo stile, ma è costoso e complesso. Il RAG invece non modifica il modello: gli fornisce solo il contesto giusto al momento giusto. È più flessibile e molto più economico.

