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:

ComponentePortaRuolo
FastAPI backend:8000API REST, gestione utenti JWT, orchestrazione query
React + Vite frontend:3000UI web moderna con real-time updates
Qdrant:6333Vector database per gli embedding dei chunk
Ollama:11434Server di inferenza LLM locale
SQLiteDatabase utenti e autenticazione
I3K retrieval orchestratorin-houseOrchestrazione della pipeline RAG in Python
Apache Tika + TesseractEstrazione 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Architettura — I3K RAG Enterprise — I3K RAG Enterprise