BiVelio Shield: ChatGPT e Claude privati — gratis, 100% in locale, senza account

Misurato

Ogni cifra, con la sua data, la sua macchina e il file da cui esce

Questa pagina raccoglie le misure che il resto del sito cita. Ogni tabella dice il giorno in cui è stata presa e la macchina su cui è girata, e un test rilegge ogni numero dal file che lo ha prodotto: quando quel file si muove e la pagina no, la costruzione diventa rossa.

Quel che non c'è è ciò che nessuno ha misurato. Dove la fonte non registra la macchina, la pagina lo dice invece di inventarne una; dove il corpus è sintetico, la frase che lo dice viaggia con il numero.

Il motore deterministico, sul corpus avversario

Lo strato controllato dalla cifra di controllo: documenti d'identità, IBAN, carte, chiavi e token. Due piste sullo stesso generatore — i valori scritti fra spazi, e gli stessi valori scritti come li scrive la gente: attaccati a una cifra sciolta, con prefisso, in cifre arabo-indiane, con un segno combinante dentro.

Corpus: 1.000 documenti in quattro lingue, 4.522 entità etichettate, 443.724 caratteri. Macchina: Apple M4 Pro, macOS 15.7.4, CPython 3.13.7.

PistaSemePrecisioneRichiamoFuga residuaSuperficie di fuga parzialeAndata e ritorno
Cooperativa12341,00001,00000,00 %01,000000
Cooperativa421,00001,00000,00 %01,000000
Cooperativa71,00001,00000,00 %01,000000
Avversaria12340,99401,00000,00 %01,000000
Avversaria420,98740,99890,00 %00,999641
Avversaria70,98941,00000,00 %01,000000

Misurato il 9 agosto 2026 · 1.000 documenti per passata, tre semi, entrambe le piste.

Le tre righe avversarie sono pubblicate con le altre: due stanno sotto le soglie che l'integrazione continua afferma, perché lì si estrae un solo seme e questa tabella ne estrae tre. Quel che tiene sulle sei passate è la coppia su cui si giudica una frontiera di fuga di dati: fuga residua a zero e superficie di fuga parziale a zero.

Documenti, nel gateway

Estrazione e rilevamento sul corpus di documenti, una richiesta alla volta. Sono cifre di richiesta singola: i due passi dipendono dal processore e l'interprete li serializza, quindi a governare la concorrenza sono il semaforo dei documenti e la riserva di processi, non questa tabella.

DocumentoEstrazioneRilevamentoTotaleValori trovati
PDF di una pagina con strato di testo1,3 ms1,9 ms3,2 ms6/6
Documento Word: corpo e proprietà autore0,6 ms2,1 ms2,7 ms6/6
Foglio di calcolo: celle, nome del foglio e proprietà1,4 ms1,1 ms2,5 ms6/6

Misurato il 29 agosto 2026 su fernando · AMD EPYC-Genoa, 16 vCPU, 30 GB.

Lo stesso lavoro nel browser
92 ms da un capo all'altro per un PDF di una pagina da 3 MB

Il percorso del browser è un'altra implementazione (pdf.js e pdf-lib) e il banco di prova dice che non è paragonabile alle righe qui sopra: perciò è pubblicato su una riga sua e mai dentro quella tabella.

Deterministico contro NLP

Lo strato deterministico non cerca nomi di persona; se ne occupa lo strato di NLP. Questo è ciò che ogni pila lascia dietro di sé sullo stesso corpus: la quota di valori PERSON e LOCATION dell'oro ancora presenti nel testo in uscita.

Corpus: 400 documenti, 800 entità dell'oro, seme 2026.

PilaFuga residuaValoriTempo di orologio
NER nullo (controllo)100,000 %800/8000,1 s
Deterministico + Presidio4,875 %39/8003,3 s
Deterministico + Presidio + GLiNER0,000 %0/8007,1 s

Misurato il 12 settembre 2026 · macchina: development laptop.

Lo zero non è una promessa di zero in produzione: il corpus è sintetico e le sue entità dell'oro sono solo PERSON e LOCATION, quindi non dice nulla della prosa reale, degli indirizzi o delle categorie particolari. La riga di controllo al cento per cento è quel che rende leggibile lo zero: senza di essa uno zero non si distingue da una scala rotta.

Le tre pile dei nomi

Quel che aggiunge il modello multilingue, sul corpus etichettato del progetto stesso. Questa misura è la ragione per cui viene consegnato spento.

Corpus: 300 documenti, 50 per lingua, 6 lingue.

PilaPer documentoRichiamoPrecisioneRichiamo in catalano
Presidio3 ms0,9900,9051,000
Presidio + GLiNER13 ms1,0000,8301,000
+ GLiNER multilingue72 ms1,0000,7871,000

Misurato il 12 settembre 2026.

Il modello multilingue non trova un solo nome che gli altri due strati non trovino già, nemmeno in catalano — Presidio porta il proprio modello catalano. Impiega 5,5 volte tanto e marca 39 tratti in più che non sono nomi: lo stesso testo di 10.000 caratteri passa da 1.118 ms a 3.081 ms.

La fonte registra la data e il corpus di questo confronto, non la macchina. Quel che si trasporta da una macchina all'altra è il rapporto fra le tre configurazioni, non i millisecondi.

Quel corpus è sintetico, quindi un richiamo di uno non è un'affermazione sulla scrittura reale. La fuga residua pubblicata dello strato dei nomi è quella della tabella qui sopra.

Il piano dei nomi: memoria e worker

Misurato il 12 settembre 2026 dentro l'immagine del piano su un CCX33 · Falkenstein. Fra i processi non si condivide nulla, quindi il numero di worker è una divisione e non una preferenza.

Interprete vuoto
26 MB
Modelli caricati
3.331 MB, in 13,9 s
Dopo un prompt di 10.000 caratteri
3.412 MB
Worker
6 processi, 20,5 GB. Otto sarebbero 27,3 GB, oltre il tetto di 26 GB fissato dal compose.

La tabella di latenza di questo piano — p95 per dimensione del testo più l'andata e ritorno misurata — è pubblicata su Come funziona e qui non si copia.

Contro quel che i fornitori hanno conservato

Misurato il 19 settembre 2026 con l'estensione 0.9.0, commit 225bcd18: 4 file sintetici provati presso 2 fornitori. 3 sono partiti davvero; 1 l'estensione l'ha fermato prima che uscisse dal browser. Quel che ogni fornitore ha conservato è stato riletto dalla sua copia della conversazione, non dallo schermo, che reidrata.

FileFornitoreMarcatori conservatiVerdetto
Documento Word con un IBAN nel testo e una foto di documento d'identità incorporataChatGPT1Senza fuga
PDF con strato di testo, documento d'identità e IBANChatGPT2Senza fuga
PDF scansionato, solo immagineChatGPTmai inviatoFermato
Lo stesso PDF con strato di testoClaude2Senza fuga

Il file scansionato non è mai partito: nessuna pagina aveva uno strato di testo e l'estensione ha annullato l'invio. Non finge di coprire quel che non riesce a leggere, quindi la sua riga non porta marcatori né verdetto di fuga, ma il proprio stato.

File provati: 4 · Inviati: 3 · Fermati prima di partire: 1 · Fornitori: 2 · Fughe su quel che è partito: 0 · Rilievi registrati: 7

I marcatori stessi, file per file, sono su Come funziona. Nessuno dei rilievi di quel giorno è una fuga; l'artefatto li nomina uno a uno.

Il pacchetto che viene pubblicato

Due artefatti, non uno. Ciò che il Chrome Web Store serve oggi è il file che installa chi legge questa pagina; ciò che questo repository ha costruito e non ha ancora caricato è un altro file. Entrambi stanno qui sotto, ciascuno con il giorno in cui è stato letto o costruito, insieme ai permessi che Chrome concede all'estensione e ai siti su cui può girare.

Ciò che serve lo store — il CRX firmato che installa chi legge:

Versione servita dallo store
0.9.0
Pacchetto servito dallo store
1.098.014 byte, letti dal servizio di aggiornamento di Chrome il 20 settembre 2026

Ciò che ha costruito questo repository — lo zip che viene caricato, e le verifiche fatte su di esso:

Preparato qui, non ancora caricato
Versione 0.9.2 — 1.119.692 byte, costruito il 21 settembre 2026
Verifiche del motore dentro lo zip
63/63, eseguite contro il motore impacchettato e non contro il sorgente
Chrome minimo
116

I due differiscono ogni volta che una build attende di essere caricata, e questa distanza è ordinaria. Non lo era ciò che questa pagina ha fatto fino a oggi: stampava la cifra preparata sotto la parola pubblicato, affermando così una versione e una dimensione che lo store non ha mai servito.

Permessi (3):

  • storage
  • scripting
  • alarms

Siti (4):

  • https://chatgpt.com/*
  • https://chat.openai.com/*
  • https://claude.ai/*
  • https://licensing.bivelio.com/*

Sito facoltativo, richiesto solo se chi legge lo accende:

  • https://gemini.google.com/*

Uno zip conserva le date di modifica, quindi due costruzioni degli stessi file danno impronte diverse e un'impronta non identifica nulla. Di questo artefatto si pubblicano i byte e il giorno in cui è stato costruito; la verifica che significa qualcosa esegue il motore dentro il pacchetto, non quello del repository. Lo store serve un CRX — gli stessi file più l'intestazione di firma che lo store aggiunge da sé alla pubblicazione —, quindi la sua dimensione non è quella dello zip e questa pagina non sottrae l'una dall'altra.

Da dove vengono questi numeri

Ogni tabella qui sopra cita il suo file. La pagina che percorre passo passo quel che il prodotto ne fa è «Come funziona»; il motore si può eseguire sul proprio testo nel banco di prova.