Architettura
I3K RAG Enterprise è un sistema RAG production-grade pensato per girare 100% locale, dentro il perimetro del cliente. Tutte le componenti sono open-source e rilasciate sotto licenza AGPL-3.0, e nessun dato esce mai dal perimetro di deployment.
Questa pagina è la panoramica concettuale. Per i dettagli di installazione e runtime, vedi la quickstart e la deployment guide.
Componenti
Un deployment di I3K RAG Enterprise è composto dai seguenti servizi:
| Componente | Porta | Ruolo |
|---|---|---|
| FastAPI backend | :8000 | API REST, gestione utenti JWT, orchestrazione query |
| React + Vite frontend | :3000 | UI web moderna con real-time updates |
| Qdrant | :6333 | Vector database per gli embedding dei chunk |
| Ollama | :11434 | Server di inferenza LLM locale |
| SQLite | — | Database utenti e autenticazione |
| I3K retrieval orchestrator | in-house | Orchestrazione della pipeline RAG in Python |
| Apache Tika + Tesseract | — | Estrazione testo e OCR per i documenti ingeriti |
L'LLM di default servito da Ollama è Qwen3:14b-q4_K_M, con Mistral 7B Q4 come alternativa più leggera. Il modello di embedding è BAAI/bge-m3, che copre 29 lingue out of the box. Tutta l'inferenza avviene localmente — su NVIDIA CUDA, AMD ROCm o CPU-only.
Nessuna chiamata a terze parti
Nessuna delle componenti si collega a servizi esterni. Modelli, embedding, vector store, database utenti e UI vivono tutti sul server che controlli tu.
Pipeline RAG a 4 step
Ogni richiesta attraversa quattro step ben definiti. La pipeline è orchestrata dal nostro retrieval orchestrator interno dentro il backend FastAPI.
- Ingest. I documenti vengono caricati tramite la web UI o l'API REST. Apache Tika estrae testo da PDF, DOCX, DOC, PPTX, PPT, XLSX, XLS, TXT, MD, ODT, RTF, HTML e XML. Tesseract si occupa dell'OCR per PDF, DOCX, PPTX e XLSX scansionati.
- Embed & store. Il testo estratto viene sottoposto a chunking, embeddato con BAAI/bge-m3 e salvato in Qdrant. Ogni vettore porta con sé i metadata usati per il filtering RBAC al momento del retrieval.
- Retrieve. Il nostro retrieval orchestrator interno esegue il retrieval semantico da Qdrant. Threshold di rilevanza e top-K sono configurabili. Il filtering basato sui ruoli viene applicato al livello di retrieval, così un utente vede solo i chunk a cui ha diritto.
- Generate. I chunk recuperati vengono passati all'LLM configurato (default: Qwen3:14b-q4_K_M via Ollama) per produrre una risposta grounded sul contesto documentale. Zero chiamate esterne.
Multi-user e RBAC
I3K RAG Enterprise include autenticazione JWT e tre ruoli predefiniti:
- User — accesso query-only. Può porre domande e leggere le risposte.
- Super User — tutto quello che può fare lo User, più upload e cancellazione documenti.
- Admin — gestione completa del sistema, inclusi account utente e configurazione.
L'enforcement dei ruoli avviene al livello di retrieval: i permessi vengono tradotti in filtri sui metadata Qdrant, così una query non raggiunge mai l'LLM con chunk che il chiamante non è autorizzato a vedere.
Sovranità dei dati
I3K RAG Enterprise è costruito attorno a una sola regola: niente esce dal perimetro.
- Tutti gli LLM girano dentro Ollama sul server stesso.
- Gli embedding vengono calcolati localmente dal backend FastAPI.
- Qdrant memorizza i vettori su disco locale.
- SQLite mantiene utenti e stato di autenticazione su disco locale.
- Niente telemetry, niente analytics, niente chiamate per aggiornamento modelli di default.
Questo rende il sistema adatto ad ambienti dove data residency, confidenzialità contrattuale o requisiti regolatori vietano l'invio di contenuti ad API esterne.
Sicurezza
- Transport — termina TLS sul reverse proxy a scelta davanti al backend FastAPI.
- Autenticazione — token JWT con expiration configurabile.
- Password hashing — bcrypt sul database utenti.
- Audit log — log applicativo di autenticazioni, operazioni sui documenti e azioni admin.
- Network egress — nessuno di default. Il deployment può girare su host completamente air-gapped.
Scaling
Un deployment single-server è production-ready per 10.000+ documenti. Lo scaling verticale è il primo passo consigliato: più RAM permette a Qdrant di tenere indici più grandi in memoria, una GPU permette a Ollama di servire Qwen3:14b con throughput più alto, e core aggiuntivi accorciano i tempi di ingestion.
Per dataset più grandi e layout orizzontali, vedi la deployment guide.
Backup
I backup sono gestiti dal layer integrato rclone, che supporta oltre 70 storage provider (S3, Azure Blob, GCS, B2, SFTP, WebDAV e molti altri). Lo stesso meccanismo esegue il backup della collection Qdrant, del database SQLite e dei documenti sorgente caricati, in modo che un restore riporti il sistema a uno stato consistente.
Repository
Il codice sorgente è disponibile su github.com/I3K-IT/RAG-Enterprise sotto licenza AGPL-3.0.