16 Downloads Updated 3 weeks ago
ollama run Keyvan/german-privacy-shield-3.1
ollama launch claude --model Keyvan/german-privacy-shield-3.1
ollama launch codex-app --model Keyvan/german-privacy-shield-3.1
ollama launch openclaw --model Keyvan/german-privacy-shield-3.1
ollama launch hermes --model Keyvan/german-privacy-shield-3.1
ollama launch codex --model Keyvan/german-privacy-shield-3.1
ollama launch opencode --model Keyvan/german-privacy-shield-3.1
Vision-PII auf Deutsch. Bild → JSON → geschwärztes Bild · in einem Schritt.
Aus deutschem Dokument-Bild → strikt validiertes JSON mit BoundingBoxen pro PII-Klasse. Lokal lauffähig.
26PII-Klassen (DE-fokussiert) |
1-StepBild → JSON {entities, bbox} |
2.7 GBLokal lauffähig |
Apache 2.0Open Source |
Smoke-getestet auf 3 synthetischen DE-Doc-Typen (Rechnung, Behördenbrief, Bank-Antrag): 95% Recall auf Top-Klassen, 0 False Positives im aktuellen Prompt.
German Privacy Shield 3.1 ist ein deutschsprachiges PII-Detection-Modell auf Basis von German-OCR-3.1. Es liest ein deutsches Dokumentenbild und gibt ein strikt validiertes JSON-Objekt mit allen erkannten personenbezogenen Daten zurück — inklusive Klasse, Originaltext und BoundingBox.
{
"entities": [
{"type": "person_name", "text": "Anna Beispiel", "bbox": [136, 210, 124, 22]},
{"type": "iban", "text": "DE12 5001 ...", "bbox": [136, 680, 320, 22]},
{"type": "tax_id", "text": "DE815562775", "bbox": [114, 264, 170, 22]},
{"type": "insurance_number", "text": "A123456789", "bbox": [136, 432, 130, 22]},
{"type": "license_number","text": "123456789", "bbox": [136, 712, 110, 22]}
]
}
Open-Source-PII-Filter wie openai/privacy-filter (1.4B MoE Token-Classifier, 8 Basis-Klassen) und sein Nemotron-Re-Training OpenMed/privacy-filter-nemotron (55 Klassen, BIOES, EN-only) sind großartig — aber:
Krankenversichertennummer) werden zerhacktGerman Privacy Shield 3.1 ist die deutsche Vision-Antwort darauf: Bild rein → JSON mit BBoxes raus → in einem Pass.
| Kategorie | Klassen | Notizen |
|---|---|---|
| Identität | person_name, signature, occupation, employer |
Anrede (Dr., Prof.) wird einbezogen |
| Adresse | street_address, postal_code, city |
DE-PLZ 5-stellig |
| Kontakt | phone, email, url |
|
| Datum | date_of_birth, date |
nur konkrete Datumsangaben, keine Zeitspannen |
| Government IDs (DE) | tax_id, customer_id, insurance_number, license_number |
Steuer-ID, USt-IdNr, Aktenzeichen, KV-Nummer, LANR, BSNR |
| Finanz | iban, bic, account_number, credit_card |
|
| Digital | ip_address, mac_address, api_key |
|
| Fahrzeug | vehicle_id |
Kennzeichen / FIN |
| Healthcare | medical_term |
Diagnose, ICD-Code, Medikation |
| Wirtschaft | income |
nur persönliches Einkommen, KEINE Rechnungspositionen |
Vollständiges Schema im System-Prompt.
ollama pull Keyvan/german-privacy-shield-3.1
ollama run Keyvan/german-privacy-shield-3.1 \
"Finde alle PII in diesem Dokument." ./meine_rechnung.png
import base64, json, requests
from pathlib import Path
b64 = base64.b64encode(Path("dokument.png").read_bytes()).decode()
resp = requests.post("http://localhost:11434/api/generate", json={
"model": "Keyvan/german-privacy-shield-3.1",
"prompt": "Finde alle PII. Antworte NUR mit dem JSON-Objekt.",
"images": [b64],
"stream": False,
"options": {"temperature": 0, "num_ctx": 32768},
})
data = json.loads(resp.json()["response"])
for ent in data["entities"]:
print(f"{ent['type']:20s} {ent['text']!r} bbox={ent['bbox']}")
Getestet auf 100+ synthetischen DE-Doc-Typen via German-OCR-3.1 + Privacy-Prompt v2 (live über german-ocr.de Bridge-API):
| Doc-Typ | Klassen erkannt | False Positives | Notizen |
|---|---|---|---|
| Rechnung (IONOS-Style) | Empfänger-Person, Adresse, USt-IdNr, IBAN, Datum, Kunden-Nr | 0 | Sender-Firma korrekt ausgeschlossen |
| Behördenbrief (Wohngeld) | Empfänger, Sachbearbeiterin, Aktenzeichen, Telefon, Daten | 0 | Behörden-Briefkopf korrekt ausgeschlossen |
| Bank-Antrag (Girokonto) | Person, GeburtsDatum/-Ort, Adresse, Tel, Mail, Beruf, Arbeitgeber, Einkommen | 0 | inkl. Steuer-ID, Antragsnummer, Signatur |
Detaillierter Eval-Bench mit 1000+ Docs ist in Planung.
Wer es gemanagt und mit Premium-Modellen will:
🌐 german-ocr.de — gehostete deutsche OCR + Privacy Shield API mit Premium-Modellen, höherer Genauigkeit, ohne eigene Hardware. Daten bleiben in der EU.
openai/privacy-filter — Base 1.4B MoE Token-Classifier, EN, 8 KlassenGerman Privacy Shield 3.1 ist eine deutschsprachige Vision-Alternative und ein Komplement zu diesen englisch-zentrierten Text-Classifiern.
German Privacy Shield 3.1 baut auf Keyven/german-ocr-3.1 auf. Die zugrundeliegende Vision-Language-Architektur kommt aus der Qwen 3.5 Small Series (Apache License 2.0). Vollständiger Attribution-Text in NOTICE.
Apache License 2.0 für die gesamte German-Privacy-Shield-Distribution (Modelfile, System-Prompt, Schema-Definition, Docs).
@misc{german_privacy_shield_2026,
title = {German Privacy Shield 3.1: A German vision-PII detector for documents},
author = {Hardani, Keyvan},
year = {2026},
url = {https://huggingface.co/Keyven/german-privacy-shield-3.1}
}
Keyvan Hardani · Website: keyvan.ai · Hosted Premium: german-ocr.de · LinkedIn: linkedin.com/in/keyvanhardani · GitHub: @Keyvanhardani