Misurato il 2026-05-27 · promptShield 1.0.14 · Presidio 2.2.362
promptShield vs Microsoft Presidio
Confronto diretto su 14 documenti PDF in 7 lingue. Stessa estrazione del testo, stessi documenti, nessun tuning asimmetrico. Script e CSV grezzi pubblicati: verificate da soli.
In breve
Presidio (installazione predefinita)
666
span emessi · alto livello di rumore
promptShield 1.0.14
252
span emessi · stesso corpus · rumore filtrato
Sui documenti contrattuali (dove i dati sono dati personali reali), promptShield emette gli stessi 209 span ad alto segnale di Presidio. Il divario di 414 span è sui bilanci, dove i rilevamenti grezzi delle entità sono per il 30–70% rumore (nomi di società di revisione, sedi legali, menzioni di Paesi per ragioni di giurisdizione).
Confronto delle funzionalità
| Funzionalità | promptShield | Presidio |
|---|---|---|
Recognizer regex multilingua (oltre 60 tipi) Presidio: prevalentemente EN di default | ◦ | |
Modello di entità multilingua (Davlan) Presidio: richiede un recognizer di entità HuggingFace personalizzato | ◦ | |
Livello LLM opzionale per dati personali contestuali | ||
Validazione checksum US NPI / ABA / DEA Presidio: NPI e MBI inclusi, ABA/DEA parziali | ◦ | |
Validazione checksum AU TFN / ABN / ACN / Medicare | ||
Validazione checksum BR CPF / CNPJ | ||
Validazione checksum CH AHV | ||
Validazione checksum MX CLABE | ||
Validazione NL BSN / RSIN | ||
Validazione NIR francese (previdenza sociale) | ||
Filtro per il boilerplate giurisdizionale "regolato dalle leggi di X" → X non segnalato | ||
Coalescenza degli span PERSON nella stessa pagina "Pierre Dubois" mantenuto, il solo "Pierre" scartato | ||
Filtro ORG per reparti generici | ||
Filtro PERSON per titoli di ruolo | ||
Applicazione desktop completa con GUI di revisione | ||
Tokenizzazione reversibile (encode / decode) Presidio: livello anonymizer separato | ◦ | |
100% offline (nessuna dipendenza dal cloud) | ||
Recognizer personalizzati via API | ||
Libreria Python per integrazioni personalizzate | ||
Integrazione con Azure AI Language |
✓ = incluso di default · ◦ = disponibile tramite configurazione personalizzata · ✗ = assente
Categorie di rumore che Presidio (installazione predefinita) emette e che promptShield elimina
URL nei piè di pagina dei contratti
Link all'informativa sulla privacy, URL della pagina di supporto, contatto legale generico. ~8–10 span per contratto, praticamente nessuno dei quali è un dato personale che il revisore vuole oscurare.
UrlRecognizerMenzioni isolate di Paesi / città nella prosa giurisdizionale
"regolato dalle leggi della Francia", "sede legale a Parigi", "società costituita in Germania". In un bilancio francese, Presidio emette 73 span LOCATION; quasi tutti sono orpelli contrattuali.
filter_jurisdiction_boilerplate + filter_standalone_countryFrammenti PERSON
Lo stesso nome compare come tre span separati: "Pierre", "Dubois", "Pierre Dubois". Su un contratto italiano, Presidio emette 26 span PERSON: gli stessi nomi ripetuti e frammentati in nome, cognome e nome completo.
filter_span_coalescenceNomi generici di reparti etichettati come ORG
"Marketing", "Vorstand", "Direction Générale", "Board of Directors", "Comitato di Direzione". Non sono organizzazioni che il revisore vuole oscurare.
filter_generic_org (stoplist di 90 voci × 7 lingue)Titoli di ruolo etichettati come PERSON
"CEO", "Directeur", "Geschäftsführer" in maiuscolo a inizio riga, talvolta etichettati erroneamente come PERSON dal modello di entità.
filter_role_titlesQuando scegliere invece Presidio
Presidio è la scelta giusta quando:
- State costruendo una pipeline DLP personalizzata in Python e volete il controllo a livello di libreria.
- Avete bisogno di integrare servizi cloud (Azure AI Language, AWS Comprehend) sotto un'unica astrazione per i dati personali.
- Volete mettere a punto i vostri recognizer per tipi di entità proprietari.
- Elaborate flussi di testo (non documenti delimitati) e avete bisogno di una libreria pensata come servizio.
Sia Presidio (di Microsoft) che promptShield sono progetti di spirito MIT. Usate lo strumento giusto per il compito giusto.
Quando scegliere promptShield
- Anonimizzate documenti PDF/DOCX/XLSX delimitati sul desktop.
- Avete bisogno di checksum specifici per Paese pronti all'uso (TFN, CPF, NPI, IBAN, ecc.) senza doverli scrivere voi stessi.
- Volete un flusso di lavoro con GUI completo (revisione, oscuramento, tokenizzazione, esportazione) anziché una libreria da integrare.
- I vostri clienti non possono inviare documenti a un servizio cloud per ragioni di conformità.
Riproducilo tu stesso
Ogni numero su questa pagina proviene dallo script pubblicato nel repo pubblico. Nessun numero deriva da un'esecuzione interna e non verificabile.
git clone https://github.com/promptshield-Inc/pii-detection-benchmarks
cd pii-detection-benchmarks
pip install -r requirements.txt
python benchmark.pyOutput: results/presidio_counts_<date>.csv + results/presidio_entities_<date>.csv. Lo script di Presidio è completamente autonomo: non serve avere promptShield installato per verificare il lato Presidio.
Avvertenze oneste
- Solo installazione predefinita. Un'installazione di Presidio ottimizzata (recognizer personalizzati + backend di entità transformer + soglie di confidenza calibrate) colmerebbe gran parte del divario di precisione. Noi misuriamo ciò che la maggior parte degli utenti di Presidio implementa nel primo mese.
- Corpus sintetico. I documenti reali dei clienti hanno un rumore più complesso (errori OCR, originali scansionati, layout multi-colonna) che qui non misuriamo.
- Nessuna etichettatura di riferimento (ground truth). I numeri "entrambi / solo i nostri / solo Presidio" sono un proxy della precisione, non una misurazione F1 rigorosa. Etichettare a mano 14 PDF in 7 lingue richiede ~40 ore di lavoro; non l'abbiamo ancora fatto.
- Due classi di documenti. Contratti + bilanci. Cartelle cliniche, moduli HR e pratiche di immigrazione produrrebbero divari diversi.