Architettura
Lo abbiamo costruito
per essere ispezionabile.
Tre passaggi sul tuo dispositivo, zero server. Quando dichiariamo "100% on-device" non è un claim di marketing — è un vincolo architetturale che condiziona ogni scelta tecnica. L'unica cosa che esce dal tuo Mac è il testo anonimizzato, che hai già letto e confermato.
Tu incolli il testo
Sull'estensione browser (ChatGPT, Claude, Gemini, Copilot, Perplexity, Mistral). Sull'app desktop (drag & drop di PDF, DOCX, XLSX, anche scansioni). Sul mobile (share extension da qualsiasi app).
Il testo o il documento resta sul dispositivo. Non viene mai inviato a un server PrivActa, perché un server PrivActa non esiste.
PrivActa riconosce e sostituisce in 0,2 secondi
Una pipeline di rilevamento ibrida combina:
- 19 regex specializzate per pattern strutturati italiani — Codice Fiscale, Partita IVA, IBAN IT, codice destinatario SDI, CAP, numeri civici.
- Modello AI Italian-NER fine-tuned su 30.000+ documenti legali italiani (atti di citazione, sentenze, contratti, atti notarili). Accuratezza F1 97% su gold standard.
- Ensemble voting tra rule-based e ML, con per-label weighting. Il risultato è più accurato di entrambi presi singolarmente.
Per i PDF scansionati, prima passa l'OCR (PaddleOCR PP-OCRv3 italiano) che estrae il testo, poi entra nella pipeline.
Tutto in linguaggio Rust (memory-safe, niente garbage collection) o WebAssembly (sandbox browser). 0,2 secondi medi per documento tipico.
L'LLM riceve solo token
Mario Rossi diventa [PERSONA_1].
RSSMRA85C15H501Z diventa [CF_1].
IT60X0542811101000000123456 diventa [IBAN_1].
Il modello esterno ragiona sui token, non sui dati reali. Risponde referenziando i token. Quando la risposta torna a te, lo Smart Remasking sostituisce i token con i nomi reali — così tu lavori normalmente, ma l'LLM non li vede mai.
Esempio reale
Atto di citazione tipico. 5 dati personali, 4 token unici. Tempo di anonimizzazione: 0,18 secondi.
Atto di citazione del cliente Mario Rossi (CF RSSMRA85C15H501Z), con riferimento al pagamento sull'IBAN IT60X0542811101000000123456. L'udienza è fissata presso lo Studio Legale Bianchi & Partners con avv. Luca Bianchi.
Atto di citazione del cliente [PERSONA_1] (CF [CF_1]), con riferimento al pagamento sull'IBAN [IBAN_1]. L'udienza è fissata presso lo [ORGANIZZAZIONE_1] con avv. [PERSONA_2].
Smart Remasking
I nomi reali tornano nella risposta
Quando ChatGPT risponde, lo fa referenziando i token:
"Per [PERSONA_1] consiglio di citare l'art. 1453 c.c. con riferimento al pagamento ricevuto sull'IBAN [IBAN_1]..."
PrivActa intercetta la risposta in arrivo, sostituisce i token con i nomi reali (mantenuti in un dizionario cifrato locale), e ti mostra:
"Per Mario Rossi consiglio di citare l'art. 1453 c.c. con riferimento al pagamento ricevuto sull'IBAN IT60X0542811101000000123456..."
Lavori con i veri nomi nella tua bozza. L'LLM non li ha mai visti.
Il dizionario cifrato risiede solo sul tuo dispositivo. Nessuno — nemmeno PrivActa SRL — ha la chiave per decriptarlo. Lo stesso dizionario è ricostruibile dai dati locali se cancelli e reinstalli.
Cosa rende PrivActa diversa da una toolbar di filtri
- Niente cloud. Non esiste un endpoint PrivActa che riceva i tuoi documenti. Tutto il processing è in locale.
- Niente account. PrivActa non ti chiede email, password, telefono. Pago tier? Lo gestisci dalla licenza, non dal login.
- Memory-safe stack. Codice in Rust (impossibile buffer overflow, double-free, use-after-free) o WebAssembly (sandbox del browser). Zero codice C/C++ nel critical path.
- Modelli firmati. Ogni download di modello ML è verificato via SHA-256. Niente esecuzione di blob non firmati.
- Audit log locale. Tier Studio+ registra ogni anonimizzazione con hash documento + entità rilevate, in SQLite locale. Esportabile per il DPO o per un'ispezione del Garante.