text-anonymize-legal-de/MODULE.de.md
flemming-it c8953011de
Some checks failed
CI / Linux x86_64 (Forgejo) (push) Failing after 1m18s
Add license, maintainers and disclaimer section
License clarified via upstream pyproject: JuraNonymizer library and
JuraNER model are MIT (Harshil Jagadishbhai Darji, HTW Berlin —
JUDGE-KI project at the KI-Werkstatt). Adds a human-review disclaimer
for automatic anonymization to MODULE.md/MODULE.de.md and corrects
the NOTICE attribution.
2026-07-10 12:53:35 +02:00

4.8 KiB
Raw Blame History

text.anonymize.legal-de

NER-basierte Anonymisierung deutscher juristischer Texte (JuraNER). Brückenmodul: das Transformers-Modell läuft im judge-ner Host-Service (fai_judge/host_services/judge-ner/); dieses WASM-Modul reicht das Dokument per Loopback-HTTP weiter und bildet die Antwort auf den Capability-Contract ab.

Capability

  • text.anonymize.legal-de@0.1.0

Eingaben

Name Typ Beschreibung
request json {"mode":"text"|"docx","options":{...}} — siehe unten.
document bytes UTF-8-Klartext (mode=text) oder eine DOCX-Datei (mode=docx).
endpoint text Optionale judge-ner-Basis-URL. Default http://127.0.0.1:8756.

request.options (alle optional)

Schlüssel Default Bedeutung
importance_levels ["High"] Zu anonymisierende Entitätsklassen (High/Mid/Low).
confidence_threshold 0.8 Minimale NER-Konfidenz (0.01.0).
manual_phrases [] Zusätzlich zu schwärzende Phrasen (Label RED).
maintain_consistency true Gleiche Oberflächenform erhält überall dasselbe ⟦TYPE#⟧-Token.
remove_rubrum false Rubrum-Block erkennen und durch Platzhalter ersetzen.

Ausgaben

Name Typ Beschreibung
result json {"replacements": [...], "text": "..."}text (der anonymisierte Text) nur bei mode=text. statistics und rubrum werden vom Service durchgereicht, wenn vorhanden.
document bytes Das anonymisierte Dokument: UTF-8-Text (text/plain) bei mode=text, das umgeschriebene DOCX bei mode=docx.

Jeder replacements-Eintrag: {text, label, label_description, start, end, score, line_number, anonymized}; im DOCX-Modus zusätzlich run_id_start, char_in_start, run_id_end, char_in_end zur Adressierung der exakten w:t-Knoten des Originaldokuments. Einträge mit "anonymized": null wurden erkannt, aber nicht ersetzt (Importance-Level nicht ausgewählt).

Berechtigungen & benötigte Services

permissions:
  - "net: localhost"
  - "net: 127.0.0.1"
requires_services:
  - judge-ner

Der Hub führt Steps mit diesem Modul nur aus, wenn der Operator einen judge-ner-Service-Endpunkt in ~/.chain/config.yaml (services:) deklariert hat. Beachte: Der erste judge-ner-Start lädt das JuraNER-Modell von HuggingFace — bis dahin antwortet der Service mit 503 und dieses Modul schlägt mit einer klaren „NER model not available"-Meldung fehl.

Einrichtung des judge-ner-Host-Services

Das NER-Modell (JuraNER von Harshil Darji, MIT — transformers + torch) kann nicht in der WASM-Sandbox laufen; es läuft als Host-Service.

# 1. Service starten (Docker; ~1 GB Modell-Download beim ersten Start,
#    persistiert im Named Volume — spätere Starts sind offline-fähig)
docker run -d --name judge-ner \
  -p 8756:8756 \
  -v judge-ner-models:/models \
  judge-ner

# 2. Beim Hub registrieren (~/.chain/config.yaml)
#    services:
#      judge-ner:
#        endpoint: http://127.0.0.1:8756
#        health_check:
#          url: http://127.0.0.1:8756/health

# 3. Prüfen
curl -s localhost:8756/health     # {"status":"ok","model_loaded":true}
chain service status judge-ner

Quellcode und Image-Build: fai_judge/host_services/judge-ner/ (docker build -t judge-ner .).

Fehler

  • Fehlerhafte request, Nicht-UTF-8-Textdokument oder 4xx vom Service → invalid input: ...
  • Service nicht erreichbar, 5xx, fehlerhafte Service-Antwort → internal error: judge-ner at <url> ...

Lizenz, Maintainer & Haftungshinweis

Lizenz. Dieses Modul steht unter Apache-2.0. Die zugrunde liegende NER-Methode und das Modell sind die JuraNonymizer-Bibliothek und das JuraNER-Modell, beide MIT-lizenziert:

Maintainer.

  • Harshil Jagadishbhai Darji (HTW Berlin) — NER-Modell und Anonymisierungs-Methode (JuraNonymizer / JuraNER)
  • Dr. Stefan Alexander Flemming (Flemming.AI) — dieses Brückenmodul und der judge-ner-Host-Service

Haftungshinweis. Automatische Anonymisierung ist ein statistisches Verfahren und bietet keine Garantie auf Vollständigkeit: Entitäten können übersehen, nur teilweise erkannt oder falsch klassifiziert werden. Bevor ein anonymisiertes Dokument veröffentlicht oder weitergegeben wird, muss es von einem Menschen geprüft werden. Die datenschutzrechtliche Verantwortung (DSGVO) verbleibt beim Betreiber; Autoren und Maintainer übernehmen keine Haftung für unvollständige Anonymisierung.

Build

cargo test
cargo build --release --target wasm32-wasip2