So funktioniert's

Die dreistufige Pipeline, die Ihre Daten schützt.

Überblick

Noirdoc arbeitet als transparenter Reverse Proxy zwischen Ihrer Anwendung und Ihrem LLM-Anbieter. Jede Anfrage durchläuft eine dreistufige Pipeline, die sicherstellt, dass das Sprachmodell niemals echte personenbezogene Daten sieht.

Ihre App
Noirdoc Proxy
LLM-Anbieter
ERKENNEN
Erkennen & Ersetzen
PII wird erkannt und durch Pseudonyme ersetzt
WEITERLEITEN
Weiterleiten
Bereinigte Anfrage wird an das Modell gesendet
WIEDERHERSTELLEN
Wiederherstellen
Pseudonyme werden in Originalwerte zurückgewandelt

Der gesamte Prozess ist für Ihre Anwendung unsichtbar. Sie senden eine normale API-Anfrage und erhalten eine normale Antwort — Noirdoc übernimmt alles dazwischen.

Die dreistufige Pipeline

Schritt 1: Erkennen & Ersetzen

Wenn Noirdoc Ihre Anfrage empfaengt, durchsucht es jede Nachricht in der Konversation nach personenbezogenen Daten. Erkannte Entitäten — Namen, E-Mail-Adressen, Telefonnummern, IBANs und mehr — werden durch deterministische Pseudonyme ersetzt.

Zum Beispiel wird eine Nachricht wie:

Bitte verfasse eine Antwort an Max Mustermann (max.mustermann@example.com) bezueglich Rechnung #4021.

zu:

Bitte verfasse eine Antwort an <<PERSON_1>> (<<EMAIL_1>>) bezueglich Rechnung #4021.

Die Zuordnung zwischen echten Werten und Pseudonymen wird in einem verschluesselten Session-State gespeichert, damit sie spaeter umgekehrt werden kann.

Schritt 2: Weiterleiten

Die pseudonymisierte Anfrage wird an Ihren konfigurierten LLM-Anbieter weitergeleitet — OpenAI, Anthropic, Azure OpenAI oder OpenRouter. Das Modell verarbeitet die Anfrage ausschliesslich mit den pseudonymisierten Daten. Es hat keinen Zugriff auf die Originalwerte.

Noirdoc fuegt ausserdem einen kurzen System-Prompt ein, der das Modell über das Pseudonym-Format informiert. Dies hilft dem Modell, Tokens wie <<PERSON_1>> als Eigennamen zu behandeln und sie konsistent in seiner Antwort zu verwenden.

Schritt 3: Wiederherstellen

Wenn das LLM antwortet, durchsucht Noirdoc die Antwort nach Pseudonym-Tokens und ersetzt sie durch die Originalwerte aus dem Session-Mapping. Die wiederhergestellte Antwort wird an Ihre Anwendung zurueckgegeben, als haette das Modell mit echten Daten gearbeitet.

Wenn das Modell <<PERSON_1>> in seiner Antwort verwendet, wird daraus wieder Max Mustermann, bevor Ihre Anwendung die Antwort sieht.

Session-State und Mapping-Persistenz

Pseudonym-Zuordnungen sind keine einmaligen Ersetzungen. Sie bleiben über die gesamte Konversationssitzung hinweg bestehen, was bedeutet:

  • <<PERSON_1>> bezieht sich innerhalb einer Sitzung immer auf dieselbe Person
  • Wenn Max Mustermann in Nachricht 1 und erneut in Nachricht 5 erscheint, werden beide Vorkommen <<PERSON_1>> zugeordnet
  • Neue Entitäten erhalten den naechsten verfuegbaren Index — eine zweite Person wird zu <<PERSON_2>>

Diese Konsistenz ist entscheidend für mehrstufige Konversationen. Das Modell kann über <<PERSON_1>> über mehrere Austausche hinweg Schlussfolgerungen ziehen, ohne jemals zu erfahren, wer diese Person tatsaechlich ist.

Zuordnungen werden für einen konfigurierbaren Zeitraum (Standard: 30 Tage) aufbewahrt, gesteuert durch die Einstellung mapping_ttl_days. Nach Ablauf des TTL wird die Zuordnung geloescht und derselbe reale Wert erhaelt in zukuenftigen Sitzungen ein neues Pseudonym. Ein TTL von 0 deaktiviert die Persistenz vollstaendig — Zuordnungen existieren nur für die Dauer einer einzelnen Anfrage.

Mehrschichtige Erkennung

Noirdoc verwendet mehrere komplementaere Erkennungsmethoden, die parallel arbeiten, um die Genauigkeit zu maximieren:

  • Musterbasierte Erkennung erfasst strukturierte Entitäten mit vorhersehbaren Formaten — E-Mail-Adressen, Telefonnummern, IBANs, Kreditkartennummern, Steuer-IDs und aehnliche Daten. Diese Schicht ist schnell, deterministisch und erzeugt bei strukturierten Daten sehr wenige Fehlerkennungen.

  • Kontextsensitive Erkennung versteht die Bedeutung des umgebenden Textes und erkennt Entitäten, die keinem festen Muster folgen — etwa Personennamen, Organisationen und Orte. Beispielsweise erkennt sie, dass „Schwarz” in „Dr. Schwarz rief gestern an” ein Personenname ist und keine Farbe.

Beide Methoden laufen bei jeder Anfrage. Ihre Ergebnisse werden zusammengefuehrt und dedupliziert. Jede Erkennung traegt einen Konfidenzwert — nur Entitäten, die den konfigurierten Schwellenwert erreichen, werden pseudonymisiert. So werden Fehlerkennungen reduziert bei gleichzeitig hoher Erkennungsrate.

Was das Modell sieht

Um das Gesamtbild zu veranschaulichen, hier ein Beispiel dessen, was tatsaechlich beim LLM-Anbieter ankommt:

Ihre urspruengliche Anfrage:

Fasse die Fallakte für Anna Schmidt zusammen, geb. 12.04.1990,
versichert unter SVNR 1234 120490. Ihre Aerztin Dr. Weber
ist erreichbar unter weber@praxis-berlin.de.

Was das Modell empfaengt:

Fasse die Fallakte für <<PERSON_1>> zusammen, geb. <<DATE_1>>,
versichert unter SVNR <<SVNR_1>>. Ihre Aerztin <<PERSON_2>>
ist erreichbar unter <<EMAIL_1>>.

Das Modell generiert eine kohaerente Antwort mit den Pseudonymen. Noirdoc stellt dann die Originalwerte wieder her, bevor die Antwort an Ihre Anwendung zurueckgegeben wird. Zu keinem Zeitpunkt hat der LLM-Anbieter Zugriff auf echte personenbezogene Daten.