GDPRag (GDPR + RAG) è un sistema di Retrieval-Augmented Generation che ti permette di chattare con i tuoi documenti aziendali usando intelligenza artificiale europea.
Tutto configurabile dal browser. L'unica cosa da impostare è la cartella documenti nel file .env.
| GDPRag | Soluzioni USA | |
|---|---|---|
| Provider AI | Mistral AI (Parigi, Francia) | OpenAI, Google, etc. |
| Giurisdizione | GDPR (UE) | CLOUD Act (USA) |
| Documenti | Restano in locale | Spesso uploadati su cloud USA |
| Training sui dati | No | Dipende dal provider |
| AI Act compliance | Disclaimer incluso | Da implementare |
- Docker Desktop installato (Mac / Windows / Linux)
- API key Mistral (gratuita) — vedi sotto come ottenerla
- Vai su console.mistral.ai
- Crea un account (o accedi con Google/GitHub)
- Vai su API Keys → Create new key
- Copia la chiave — la inserirai nella UI di GDPRag al primo avvio
Mistral offre un free tier per iniziare. I costi per un uso normale sono minimi (vedi tabella costi sotto).
git clone https://github.com/aringad/gdprag.git
cd gdprag
cp env.example .envApri il file .env e imposta DOCUMENTS_ROOT con il percorso della cartella che contiene i tuoi documenti:
# Mac
DOCUMENTS_ROOT=/Users/tuonome/Documents
# Linux
DOCUMENTS_ROOT=/home/tuonome/Documents
# Windows (Docker Desktop)
DOCUMENTS_ROOT=C:\Users\TuoNome\DocumentsQuesta cartella verrà montata come /data/ dentro il container (in sola lettura). Dalla UI potrai poi navigare le sottocartelle e scegliere quali indicizzare — non viene toccato nulla automaticamente.
docker compose up -dApri http://localhost:7860 nel browser.
- Tab ⚙️ Impostazioni → incolla la tua API key Mistral → 💾 Salva e verifica
- Sempre in Impostazioni → 🔍 Esplora
/data/per vedere le tue cartelle - Aggiungi le cartelle che vuoi indicizzare (es.
/data/clienti,/data/procedure) - Tab 📥 Gestione Documenti → 🚀 Indicizza cartelle configurate
- Tab 💬 Chat → chatta con i tuoi documenti!
I tuoi documenti (PDF, DOCX, XLSX, PPTX, TXT, ...)
│
▼
Estrazione testo + chunking (locale)
│
▼
Mistral Embed API → vettori (cloud EU, $0.10/M token)
│
▼
ChromaDB → database vettoriale (locale)
│
▼ (domanda)
Ricerca similarità (locale)
│
▼
Top 5 frammenti → Mistral Chat API (cloud EU)
│
▼
Risposta con fonti
| Tab | Funzione |
|---|---|
| 💬 Chat | Chatta con i tuoi documenti |
| 📥 Gestione Documenti | Indicizza cartelle configurate, percorsi manuali o upload |
| ⚙️ Impostazioni | API key, modello AI, gestione cartelle |
| ℹ️ Info | Architettura, compliance, costi |
PDF, DOCX, DOC, XLSX, XLS, PPTX, HTML, TXT, MD, CSV, JSON, ODT, RTF
| Variabile | Descrizione | Default |
|---|---|---|
DOCUMENTS_ROOT |
Cartella radice dei documenti | ./documenti |
MISTRAL_API_KEY |
API key (opzionale — configurabile da UI) | — |
- API Key Mistral — inserisci, salva e verifica con un click
- Modello AI — Small (veloce/economico), Medium, Large (massima qualità)
- Cartelle — naviga
/data/, aggiungi/rimuovi cartelle da indicizzare
La configurazione viene salvata su un volume Docker persistente — sopravvive ai riavvii.
Le share di rete funzionano purché siano montate come cartelle.
Mac: le share SMB appaiono in /Volumes/NomeShare dal Finder.
Imposta DOCUMENTS_ROOT=/Volumes/NomeShare nel .env.
Linux: monta la share e usa il mountpoint come DOCUMENTS_ROOT:
sudo mount -t cifs //192.168.1.100/documenti /mnt/share -o username=utente
# poi in .env: DOCUMENTS_ROOT=/mnt/share| Operazione | Costo |
|---|---|
| Indicizzare 100 documenti (~50 pag.) | ~$0.25 |
| 50 domande/giorno per un mese | ~$3/mese |
| Uso intensivo (500 domande/giorno) | ~$30/mese |
# Avvia
docker compose up -d
# Vedi i log
docker compose logs -f
# Ferma
docker compose down
# Ricostruisci dopo aggiornamento
docker compose up -d --build
# Cancella il database vettoriale
docker volume rm gdprag_gdprag_chroma
# Cancella la configurazione salvata
docker volume rm gdprag_gdprag_config
# Entra nel container
docker exec -it gdprag bash
# CLI dentro il container
docker exec -it gdprag python rag_engine.py --stats
docker exec -it gdprag python rag_engine.py --files
docker exec -it gdprag python rag_engine.py --formatspip install -r requirements.txt
export MISTRAL_API_KEY="la-tua-chiave"
python web_ui.py
# Apri http://localhost:7860- Mistral AI (Parigi) — piena giurisdizione GDPR, non soggetto a CLOUD Act USA
- AI Act Art. 50 — disclaimer di trasparenza incluso nell'interfaccia
- Documenti originali — restano sempre in locale, mai caricati sul cloud
- Dati al cloud — solo i frammenti rilevanti alla domanda
- Training — Mistral non usa i dati API per addestrare i modelli
GDPRag — Sviluppato da Mediaform s.c.r.l.