Data & MoreEngineeringGrundlagen-Feldhandbuch

Die Plattform, die Pipeline und der Profiler.

Ein kompaktes Feldhandbuch für die Data & More Plattform: das konzeptionelle Modell, die durchgängige Datenpipeline, wie OCR rohe Dokumente in bereinigten Text und Signale umwandelt, wie der Profiler das Gefundene klassifiziert, der KI-Profiler, der die schwere Arbeit übernimmt, und der zugrundeliegende Technologie-Stack.

Sieben Abschnitte. Jeder mit dem kleinstmöglichen Detailgrad, der noch sinnvoll ist.

InhaltZu einem Abschnitt springen
Abschnitt 01Funktionsweise

Klassifizieren, Verifizieren, Löschen, immer aktiv

Die Plattform läuft kontinuierlich und nicht in einem festen quartalsweisen Rhythmus. Der Prozess hat einen Namen, Klassifizieren, Verifizieren, Löschen: Die Plattform klassifiziert, was im Archiv vorhanden ist, der Dateneigentümer verifiziert die Ergebnisse in seinem eigenen Bereich, und das Resultat ist die Löschung (oder Archivierung, Bearbeitung oder Einschränkung), die im Quellsystem durchgeführt wird. Quellen und Ausnahmen sind die einmalige Konfiguration, die den Kreislauf speist.

IMMER AKTIV VERIFIZIEREN KLASSIFIZIEREN LÖSCHEN
Klassifizieren – die Aufgabe der Plattform Verifizieren – die Aufgabe des Dateneigentümers Löschen – das kontinuierliche Ziel
Woher die Daten stammen

Verbundene Quellen

Jede Quelle ist über einen der Ingestion-Konnektoren der Plattform angebunden. Der Zyklus beginnt hier und schreibt die Ergebnisse ebenfalls hierhin zurück.

Office 365ExchangeSharePointOneDrive TeamsOutlookGmailGoogle DriveDateifreigaben
Was Löschen in der Praxis bedeutet

Drei Wege zum Löschen

Die Löschung erfolgt niemals automatisch. Der Dateneigentümer prüft jeden Fund lokal und wählt eine von drei Maßnahmen, die im Audit-Log erfasst wird.

  • Bearbeiten, das Dokument wird im Quellsystem korrigiert, geschwärzt oder annotiert.
  • Archivieren (Aufbewahrung), der Datensatz wird in ein Archiv mit einer definierten Aufbewahrungsregel verschoben.
  • Einschränken, der Datensatz verbleibt an seinem Ort, wird jedoch für eingeschränkten Zugriff markiert (Handhabung privater Daten).
Abschnitt 02Konzeptionelles Modell

Das konzeptionelle Modell

Jede Anfrage gelangt über einen TLS-terminierenden NGINX-Proxy und wird an die Anwendungsebene weitergeleitet: den Vue-Client, die zentrale Flask-API sowie die IAM-, Analyse- und LLM-Dienste. Die API übergibt zeitintensive Aufgaben an ein asynchrones Backbone aus Celery-Workern über RabbitMQ, das auch die Scan-, Ingest- und Enforce-Ereignisse für die Java-Ebene transportiert. Die eigentliche Hauptarbeit – das Durchsuchen von Quellen, die Textextraktion und die Durchsetzung von Richtlinien – findet in dieser Java-Ebene statt. Darunter befindet sich die Datenschicht mit Elasticsearch als gemeinsamem Dokumentenspeicher für alle Dienste.

EDGE APP-EBENE MESSAGING SPEICHER DIENSTE INGESTION KONZEPTIONELLES MODELL nicht 100 % korrekt NGINX TLS 1.2/1.3 · Reverse Proxy · Rate Limit · IP-Allowlist Client Vue 3 SPA 281 Komponenten · 24+ Sprachen API Flask 3 · Celery · :8000 der zentrale Knotenpunkt IAM Flask · JWT · :5000 LDAP / Active Directory Analytics Flask · pandas · :6000 Berichte, Diagramme, PDF asynchrone Verarbeitung synchrones HTTP Celery-Worker Neuindizierung · Massenoperationen · Benachrichtigungen RabbitMQ Task-Broker · v4.2 Task-Worker asynchrone Jobausführung schreibt Ergebnisse Elasticsearch 9.x · gemeinsamer Dokumentenspeicher PostgreSQL 17.x · IAM · pgvector Backup tägliche Sicherungen · 180 Tage Lesezugriffe · Schreibzugriffe Schreibzugriffe Schreibzugriffe Dienste java_core Scannen · Erfassen · Durchsetzen java_profiler Regex · NER · FastText Enforcer Richtlinienaktionen OCR Bild · Text · MRZ Data Subject Mgr Personensuche Datenfeeds Erfassung Graph-Erfassung Microsoft Graph EWS-Erfassung Exchange Web Services SP-Erfassung SharePoint Google-Erfassung Workspace · Drive Web-Erfassung URLs · Scraping
Anfrage- und Datenpfad Persistenter Speicher / Ausgabe Unterkomponente innerhalb einer Ebene
Abschnitt 03Datenpipeline

Von einer Rohdatenquelle zu einer durchgesetzten Richtlinie

Ein Dokument durchläuft jedes Mal denselben Prozess. Eine Quelle wird einmalig konfiguriert; von da an durchsucht die Plattform diese automatisch, extrahiert den enthaltenen Text, analysiert ihn auf personenbezogene Daten, prüft ihn anhand der Mandantenrichtlinien, handelt entsprechend dem Ergebnis und protokolliert das Resultat. Kostengünstige, deterministische Schritte werden zuerst ausgeführt; die aufwändigen KI- und Durchsetzungsschritte werden nur auf die Daten angewendet, die diese Stufe erreichen.

ERFASSEN ANALYSIEREN VALIDIEREN DURCHSETZEN BERICHTEN 1 · Erfassung java_core SCAN + INGEST Collector · Graph ews · google Apache Tika · OCR 2 · Analyse Inhalte klassifizieren Logikbasiertes Profiling java_profiler KI-gestütztes Profiling ai-profiler (spaCy) 3 · Validierung PolicyValidator Aufbewahrungsregeln Sensitivitätsklasse Aktion festlegen 4 · Durchsetzen PolicyEnforcer löschen verschieben · archivieren markieren · keine Aktion 5 · Berichten Analysen Dashboards Warnmeldungen · benachrichtigen PDF / Excel alle Stufen lesen und schreiben Elasticsearch
Hauptpfad der Pipeline Gemeinsamer Speicher, der in jeder Stufe verwendet wird Ausgabe an den Benutzer
Abschnitt 04OCR

Die OCR-Pipeline

Seiten werden von links nach rechts verarbeitet. Der MRZ-Durchlauf wird nur ausgeführt, wenn der ID-oder-nicht-Detektor eine Seite als Ausweisdokument identifiziert; alles andere wird an den umfangreichen OCR-Durchlauf weitergeleitet. Jede Stufe gibt Annotationen aus, die die nachfolgende Stufe als Hinweise verwenden kann.

EINGABE SCHNELLE TEXTERKENNUNG PARALLELE BILDVERARBEITUNG SPEZIALIST TIEFE OCR PDF-Reader pdfium / PyMuPDF Seiten → Bilder + Text Entzerrung · 300 DPI Tesseract LSTM · schnelle Basis OCR Wortrahmen · Konfidenz Layout · Lesereihenfolge kostengünstig · deterministisch Kombinierter Worker drei Detektoren, ein Bildladevorgang Unterschrift unterzeichnet? wo? YuNet Gesichtsrahmen Porträt? ID oder nicht Klassifikator Weiterleitung? bei ID immer · umfangreiche OCR MRZ Reisepass / Ausweisstreifen P<UTODOE<<JANE<< L898902C36UTO7408 ICAO 9303 Parser Prüfziffern verifiziert EasyOCR CRAFT + CRNN stilisiert · verrauscht 80+ Sprachen letzte Meile
Hauptdatenpfad Bedingter Zweig, nur bei Ausweisen Bildsignal Dokumentannotation
OCRBegründung

Warum die Aufgaben überhaupt aufteilen

Ein reales Dokumentenkorpus ist heterogen: digital erstellte PDFs, eingescannte Briefe mit einem Kaffeefleck, mehrsprachige Verträge und Reisepässe mit einer maschinenlesbaren Zone landen alle im selben Posteingang. Die Pipeline leitet jede Seite zunächst durch kostengünstige, deterministische Durchläufe und reserviert aufwendige Deep-Learning-OCR für die Fälle, bei denen sie tatsächlich erforderlich ist. Bildsignale werden gemeinsam mit dem Text übertragen, sodass ein Nutzer fragen kann Ist dieser Vertrag unterzeichnet? oder Ist dieses hochgeladene Dokument tatsächlich ein Reisepass? ohne die Datei erneut einzulesen.

Durchlauf 01PDF-Reader

Die Eingangspforte

Zwei PDFs, die für eine Person identisch aussehen, können intern völlig unterschiedlich sein: das eine ein digital erstellter Export mit einer fehlerfreien Textebene, das andere ein Handyfoto, das mit 72 DPI als PDF gespeichert und um vier Grad gedreht wurde. Der Reader gleicht diese Asymmetrie aus, sodass die nachgelagerte OCR-Verarbeitung damit nie konfrontiert wird.

Was es tut

  • Rastert jede Seite auf einen einheitlichen Wert von 300 DPI, damit die Engines konsistente Zeichengrößen erkennen.
  • Extrahiert die eingebettete Textebene sofern vorhanden, und umgeht dabei die Texterkennung vollständig bei born-digital-Dateien.
  • Entzerrt, korrigiert Verzerrungen und richtet die Ausrichtung aus, und schneidet anschließend die Ränder des Scannerbetts zu.
  • Teilt auf mehrseitige Dokumente in einen seitenweisen Datenstrom, den der Rest der Pipeline unabhängig verarbeitet.

Einzigartiger Vorteil

  • Freitext gewinnt. Ein born-digital-PDF überspringt die Texterkennung – sofort, fehlerfrei und vollständig.
  • Konsistente Eingabe. Jedes nachfolgende Modell kann von einem aufrecht ausgerichteten Bild mit sinnvollem DPI-Wert ausgehen.
  • Eine einzige Quelle der Wahrheit. Das hier gerenderte Bild wird von jedem nachfolgenden Worker wiederverwendet – keine doppelte Rasterisierung.
geneigter Rohdaten-Scan entzerrt 300 DPI
Pass 02Tesseract

Die schnelle Grundlage

Rechnung Nr. 2026-0427 Gesamt: 12.480,00 Fällig am 30. Mai 2026 USt-IdNr. 19283746 Wortrahmen + Konfidenz

Tesseract ist das Arbeitstier: schnell, CPU-freundlich, mit über 100 Sprachen und strukturierter Ausgabe – Wortrahmen, Zeilenrahmen und Konfidenzwerte pro Wort. Für die große Masse sauberer Bürodokumente löst es das Problem vollständig.

Was es tut

  • Führt den LSTM-Erkennungsalgorithmus über jede Seite aus und gibt hOCR / TSV mit Wörtern, Zeilen und Rahmen aus.
  • Weist einen Konfidenzwert pro Wort zu, der entscheidet, wo EasyOCR einen zweiten Durchgang benötigt.
  • Gibt Lesereihenfolge und Layout zurück, sodass Absätze sauber rekonstruiert werden können.

Einzigartiger Vorteil

  • Geschwindigkeit und Kosten. Reine CPU-Verarbeitung, keine GPU-Abhängigkeit, horizontal skalierbar und kostengünstig.
  • Deterministisch. Gleiche Eingabe, gleiche Ausgabe: einfach zu testen, zu cachen und in CI zu vergleichen.
  • Layout-bewusst. Wortrahmen und Lesereihenfolge sind erstklassige Ausgaben.
  • Konfidenz als Routing-Signal. Bereiche mit geringer Konfidenz werden zur Eingabe für EasyOCR.
Tesseract ist bewusst der erste OCR-Durchgang – für die meisten Seiten ausreichend. Die aufwändigeren Durchgänge werden nur dort ausgeführt, wo er an seine Grenzen stößt.
Pass 03Kombinierter Worker

Unterschriften, Gesichter und eine Entscheidung

Der kombinierte Worker ist die Vision-Lane. Anstatt drei separate Jobs auszuführen, die jeweils das Seitenbild neu laden, einen Tensor zuweisen und ein Modell aufwärmen, führt er drei Detektoren in einem einzigen Durchgang über dasselbe In-Memory-Bild aus und erzeugt so Signale auf Dokumentebene, die reiner Text allein nicht liefern kann.

Seitenbild · einmalig geladen Unterschriften-Detektor CNN über die Seite · Rahmen + Bewertung YuNet-Gesichtsdetektor klein, schnell, läuft auf CPU ID-oder-nicht-Klassifikator binärer Kopf · handelt es sich um einen Ausweis? signiert = true box=(14,130,96,38) · p=0.93 Gesichter = 1 Porträt · Bewertung 0,98 isID = true wird an den MRZ-Pass weitergeleitet ein Bild, ein Batch drei Detektoren teilen sich Dekodierung + Vorverarbeitung ~3× schneller als drei separate Worker
Detektor A

Unterschrift

Die meisten Verträge erlangen erst nach Gegenzeichnung ihre Gültigkeit. Ein kleines CNN scannt nach tintenähnlichen Strichen, die als handgeschriebene Unterschrift erkannt werden, und gibt Rahmen sowie einen Bewertungswert zurück.

  • Wandelt Wurde dieser Vertrag unterzeichnet? in einen booleschen Wert um.
  • Rahmen und Seitenindex ermöglichen es einer Benutzeroberfläche, direkt zur Unterschriftenzeile zu springen.
  • Die nächstgelegene Textzeile – der gedruckte Name – kann dem Rahmen zugeordnet werden.
Detektor B

YuNet

YuNet ist ein kompakter Gesichtsdetektor, der entwickelt wurde, um in Echtzeit auf handelsüblicher Hardware zu laufen. Hier geht es nicht um Gesichter, sondern um Porträts als dokumentspezifisches Merkmal.

  • Ein Gesicht in der Ecke ist ein starkes Indiz für einen Personalausweis, Reisepass oder Führerschein.
  • Etwa 1 ms pro Ausschnitt auf der CPU – günstig genug, um auf jeder Seite ausgeführt zu werden.
  • Das Vorhandensein eines Gesichts kann eine Schwärzung oder besondere Verarbeitung auslösen.
Detektor C

Ausweisdokument oder nicht

Ein binärer Klassifikator, der die gesamte Seite analysiert und eine Frage beantwortet: Handelt es sich um ein Ausweisdokument? Seine Aufgabe ist es zu entscheiden, welche Seiten den MRZ-Spezialisten erreichen.

  • Vermeidet die MRZ-Verarbeitung auf jeder Seite – die meisten enthalten keine.
  • Verwendet YuNets Gesichtstreffer und Tesseracts Text als Merkmale.
  • Ein kleiner Kopf über einem kleinen Backbone: schnell und einfach zu kalibrieren.
Warum kombiniert? Das Laden des Bildes, die Farbkonvertierung, die Größenanpassung und das Aufwärmen eines Modells machen den größten Teil der Latenz jedes Detektors aus. Alle drei über ein gemeinsames Bild, einen Prozess und eine kompakte Schleife auszuführen, reduziert diesen Overhead erheblich und hält die Annotationen konsistent, da alle drei dieselben Pixel verarbeitet haben.
Pass 04MRZ

Der Reisepass-Spezialist

Die maschinenlesbare Zone am unteren Rand eines Reisepasses oder Personalausweises folgt dem strengen ICAO-9303-Format: einem festen Zeichensatz (A–Z 0–9 <), festen Positionen und integrierten Prüfziffern. Ein generisches OCR kann sie zwar lesen, verwechselt jedoch O/0 oder 1/I. Dieser Pass ist speziell für den Streifen konzipiert.

Was er leistet

  • Wird nur ausgeführt, wenn der Ausweisdokument-Klassifikator die Seite markiert, sodass keine unnötige Arbeit anfällt.
  • Verwendet einen MRZ-optimierten Erkenner und eine Grammatik, die ausschließlich gültige MRZ-Zeichen ausgeben.
  • Analysiert die Felder: Typ, Ausstellerland, Nachname, Vornamen, Dokumentennummer, Staatsangehörigkeit, Geburtsdatum, Geschlecht, Ablaufdatum.
  • Überprüft Prüfziffern– ein gefälschtes oder falsch gelesenes Feld wird durch Arithmetik erkannt, nicht durch Raten.

Einzigartiger Vorteil

  • Strukturiert, kein Freitext. KYC-Code verarbeitet einen typisierten Datensatz, keine Zeichenkette.
  • Selbstvalidierend. Prüfziffern bieten eine Garantie, die generisches OCR nicht erfüllen kann.
  • Enges Fachgebiet, hohe Genauigkeit. Kleiner Zeichensatz, festes Layout – ein Spezialist gewinnt mit großem Vorsprung.
UTOPIA PASSPORT SURNAME: DOE GIVEN: JANE DOB: 1985-04-12 P<UTODOE<<JANE<<<<<<<<<<<< L898902C36UTO7408122F12<<06 parser → typed record · check ✓
Pass 05EasyOCR

Die Deep-Learning-letzte Meile

Tesseract · confidence 0.41 |nv01ce N0. 2O26-O427 stilisierte Schriftart, geringer Kontrast EasyOCR · confidence 0.96 Invoice No. 2026-0427 CRAFT detector + CRNN

EasyOCR ist ein Deep-Learning-OCR – ein CRAFT-Textdetektor kombiniert mit einem CRNN-Erkenner auf PyTorch. Schwerer als Tesseract, glänzt aber genau dort, wo Tesseract Schwierigkeiten hat: bei kontrastarmen oder stilisierten Schriftarten, gekrümmtem oder gedrehtem Text, Fotos von Belegen und vielen nicht-lateinischen Schriften. Hier fungiert es als Fallback und als erweiterter OCR-Pass.

Was er leistet

  • Liest die Bereiche erneut, in denen Tesseract eine niedrige Konfidenz zurückgegeben hat – gezielt, nicht seitenübergreifend.
  • Verarbeitet nicht-lateinische Schriften, für die eine bestimmte Tesseract-Installation nicht konfiguriert ist.
  • Liefert eine zweite Einschätzung: Übereinstimmung zwischen beiden Engines erhöht die Konfidenz deutlich.

Einzigartiger Vorteil

  • Robustheit. CNN-Erkennung bewältigt Fotos, Perspektivverzerrungen und ungewöhnliche Schriftarten.
  • Abdeckung. Über 80 Sprachen sofort einsatzbereit.
  • Zielgerichtet. Wird nur dort ausgeführt, wo Tesseract nicht sicher war, sodass der aufwändige Pfad klein bleibt.
Günstig zuerst, aufwändig nur wo nötig – das ist es, was die Pipeline im Durchschnitt schnell hält, ohne den langen Schwanz zu verlieren.
OCRRouting

Die Entscheidung, die eine Seite trifft

Seite rendern PDF-Reader Tesseract-Pass Wörter + Konfidenz Kombinierter Worker signature · YuNet · ID-or-not Bereiche mit niedriger Konfidenz? Entscheidung, ob EasyOCR benötigt wird MRZ-Pass nur wenn isID = true EasyOCR-Pass chirurgisch, dann global Abschlussdatensatz Text + Signale + MRZ
OCRAuf einen Blick

Was jeder Durchlauf hinzufügt

Durchlauf Ausgabe Kosten Wann er glänzt
PDF-Reader normalisierte Bilder, Textebene sehr niedrig digital erstellte PDFs
Tesseract Wortrahmen + Konfidenz niedrig · CPU saubere Bürodokumente
Signatur Signiert-Flag + Rahmen niedrig Verträge, Compliance
YuNet Gesichtsrahmen, Anzahl sehr niedrig Erkennung von Porträts / Ausweisen
ID-or-not isID, Dokumenttyp niedrig Weiterleitung an MRZ
MRZ typisierter Datensatz + Prüfziffern mittel Reisepässe, nationale Ausweise
EasyOCR Text + Konfidenz hoch · GPU-freundlich stilisiert, verrauscht, mehrsprachig
OCRGrundsätze

Was die Pipeline annimmt

Günstig zuerst, aufwendig nur wenn nötig

Jeder Durchlauf existiert, weil der vorherige einen bestimmten Fehlerfall nicht bewältigen kann. Tesseract übernimmt den Großteil; EasyOCR wird nur für Wörter aufgerufen, die es nicht lesen konnte; MRZ nur, wenn die Seite tatsächlich ein Ausweis ist.

Signale, nicht nur Text

OCR ist notwendig, aber selten ausreichend. Der kombinierte Worker gibt Signale auf Dokumentebene aus – signiert, Porträt vorhanden, Identitätsdokument –, die die nachgelagerte Geschäftslogik tatsächlich benötigt.

Spezialisten schlagen Generalisten in engen Domänen

Ein Reisepass-MRZ ist ein kleines, striktes Format mit Prüfziffern. Ein spezialisierter Parser ist genauer und selbstvalidierend – auf eine Weise, die keine generische OCR für denselben Bereich leisten kann.

Arbeit teilen

Der kombinierte Worker existiert, weil das Laden und Vorverarbeiten des Bildes der zeitaufwendige Teil ist. Drei Detektoren über ein einziges In-Memory-Bild reduzieren diesen Overhead und halten die Annotationen konsistent.

Abschnitt 05Profiler mit Klassifizierung

Der Profiler und seine Taxonomie

Die Profiling-Stufe in der Datenpipeline läuft in zwei parallelen Modi. Logik-Profil (java_profiler) übernimmt Regex, Spracherkennung und regelbasierte Entitätsextraktion. KI-Profil (ai-profiler, die spaCy NLP-Engine) übernimmt NER, Schlüsselphrasen-Matching und Abhängigkeitsgrammatik-Prüfungen. Beide schreiben ihre Ergebnisse in dieselbe gemeinsame Taxonomie unten.

Die Ergebnisse sind in übergeordnete Kategorien gegliedert, von denen jede viele Eintragstypen enthält. Kategorien und Eintragstypen werden durch kundenspezifische Wörterbücher gesteuert, die aus Elasticsearch geladen werden, sodass jedes Abonnement beliebige davon aktivieren, deaktivieren oder erweitern kann. Die nachstehende Liste spiegelt die Ansicht „Dokumentklassen" in der Admin-Oberfläche wider.

Kategorie 01

Datenschutzklassifizierung

Der Großteil der DSGVO-relevanten Erkennung: Identifikatoren, besondere Kategorien und Dokumentklassen, deren bloßes Vorhandensein ein Signal ist, dass ein Datensatz einer Governance bedarf.

ReisepassGesundheitsinformationenZertifikate / Genehmigungen ReiseinformationenPolitische OrientierungArbeitsabwesenheit VollmachtVersicherungsinformationenStandort Kriminelles VerhaltenStrafregisterMitarbeiterverwarnung Nationaler PersonalausweisFörderantragZahlungskarte Religiöse OrientierungSexuelle OrientierungNationale Ausweisnummer TestamenteEthnische HerkunftBeschäftigungsinformationen FührerscheinGewerkschaftsmitgliedschaftGehalts- / Finanzinformationen SteuerinformationenKrankenversicherungskarteMitarbeiterkündigung Sonstige AusweisdokumentePersonalgewinnungBildungsinformationen
30 Eintragstypen · kundenbezogene Wörterbücher, pro Sprache
Kategorie 02

Klassifizierung kritischer Sicherheitsinformationen

Eine parallele Taxonomie für Inhalte, die die Organisation gefährden – anstatt einer Einzelperson: Geheimnisse, Infrastruktur und Sicherheitsoperationen.

Passwörter & GeheimnisseQuellcodeInfrastrukturkonfiguration SchwachstellenbewertungProtokolldateienSicherheitsvorfälle CCTV-KamerastandorteDigitale ZertifikateSicherheitsanforderungen Netzwerkzugangskontrolle
10 Eintragstypen · mit SECURITY-Organisationstyp gekennzeichnet
Kategorie 03

QA

Eine Arbeitskategorie, die vom Datenteam genutzt wird, um neue Eintragstypen zu erfassen und zu testen, bevor sie in eine der öffentlichen Taxonomien überführt werden. Für Mandanten standardmäßig deaktiviert.

Kategorie 04

Tag-Bereinigung

Wartungskategorie, die stillgelegte Eintragstypen und Zusammenführungsziele enthält, sodass historische Befunde interpretierbar bleiben, während neue Scans die aktuelle Taxonomie verwenden.

Kategorie 05

Spezielle Klassifizierungen

Mandantenspezifische Kategorien für Eintragstypen, die keiner globalen Taxonomie angehören. Ein Kunde kann diese Kategorie mit eigenen Wörterbüchern erweitern.

Pro Eintragstyp

Was ein Eintragstyp enthält

  • Aktiv, Bericht, Anzeige, Einmalige Kennzeichnung, Such-Tag, Tag in Outlook: mandantenspezifische Einstellungen, die steuern, wo der Befund angezeigt wird.
  • # Dokumente: aktuelle Anzahl der Datensätze, die derzeit mit dem Tag versehen sind.
  • Status, Organisationstyp, Token-Nr.: Herkunft und Validierung des Eintragstyps selbst.
  • Ausführungszeit und Ausführungszeit der Kennzeichnung: Kostentelemetrie darüber, wie lange die Auswertung eines Eintragstyps pro Dokument dauert.
  • Kennzeichnung abgeschlossen und Abonnement aktualisiert: Zeitstempel für den letzten vollständigen Durchlauf und die letzte Wörterbuchsynchronisierung.
Benannte Entitäten

Personenbezogene Kennungen (aus NER)

Neben den wörterbuchgesteuerten Kategorien liefert die spaCy NER-Analyse Kennungsbefunde, die nicht mandantenspezifisch konfigurierbar sind.

PersonVollständiger NameOrganisationStandort Ort / GPEDatumUhrzeitNationalität / Gruppe
Abschnitt 06AI Profiler

Der AI Profiler Deep Dive

Derselbe Erkennungskern (handle_doc) betreibt sowohl eine hochvolumige Hintergrundpipeline als auch einen Live-Anfrage-Endpunkt. Batch-Aufgaben fließen von links nach rechts durch den Scheduler, eine begrenzte Warteschlange und einen Pool von spaCy-Workern; der Echtzeit-Endpunkt leitet einen einzelnen Text direkt in den Kern weiter und gibt JSON zurück.

QUELLE SCHEDULER WARTESCHLANGE WORKER KERN ZIEL Elasticsearch index: data DS_Status: REQUEST_AI Scheduler fragt in jedem Zyklus ab search-after, 50/Seite Warteschlange maxsize 1000 Worker-Pool spaCy spaCy SPACY_WORKERS: 2 handle_doc der Erkennungskern 1 · Leitplanken 2 · Sprachweiterleitung 3 · Matcher Elasticsearch DS_Status: FINISHED POST /profile-text Echtzeit, einzelner Text auf Abruf JSON als Antwort
Batch-Datenpfad Echtzeit-Endpunkt Worker / Ergebnis Erkennungskern
AI ProfilerDie Aufgabe

Sensible Daten finden, kennzeichnen und zurückübergeben

Der Profiler liest Dokumente, die bereits in Elasticsearch indiziert sind. Für jedes Dokument erkennt er Namen, Orte und Datumsangaben und sucht anschließend nach Formulierungen, die auf besondere Kategorien personenbezogener Daten hinweisen: Gesundheit, Religion, Politik, sexuelle Orientierung, Ethnizität, Vorstrafen, Gewerkschaftszugehörigkeit und arbeitsrechtliche Maßnahmen. Jeder Treffer wird mit einem Typ, dem gefundenen Text und seiner Position versehen und anschließend am Dokument gespeichert, sodass Compliance-Arbeit auf Fakten statt auf Vermutungen basiert.

AI ProfilerZwei Zugangswege

Eine Pipeline und ein Endpunkt

Modus A

Geplante Pipeline

Ein Hintergrund-Thread fragt Elasticsearch kontinuierlich nach Dokumenten ab, die als DS_Status: REQUEST_AI markiert sind, und leitet sie an einen Pool von Worker-Prozessen weiter. Auf diese Weise werden umfangreiche Archive profiliert.

Modus B

REST-Endpunkt

Eine POST /profile-text-Route profiliert auf Abruf einen einzelnen Text und gibt farblich markierte Treffer als JSON zurück. Eine /health-Route meldet den Betriebsstatus.

AI ProfilerDie Batch-Pipeline

Vom markierten Dokument zum fertigen Profil

Beim Start wartet die Anwendung, bis der Elasticsearch-Cluster den Status „healthy" erreicht, und startet anschließend den Scheduler sowie den Worker-Pool. Der folgende Zyklus wiederholt sich kontinuierlich.

  • 01 Scheduler fragt Elasticsearch ab. In jedem Zyklus durchsucht er den data-Index nach Dokumenten, bei denen DS_Status = REQUEST_AI, seitenweise mit je 50 Einträgen per search-after.
  • 02 Jedes Dokument wird zu einer Aufgabe. Dokumente werden als Aufgaben verpackt und in eine gemeinsam genutzte Multiprocessing-Warteschlange eingereiht. Füllt sich die Warteschlange, pausiert der Scheduler und erzeugt so einen natürlichen Gegendruck, damit der Speicherverbrauch begrenzt bleibt.
  • 03 Worker nehmen Aufgaben entgegen. Ein Pool von spaCy-Worker-Prozessen (standardmäßig 2) zieht Aufgaben parallel, führt den Erkennungskern aus und führt bereits vorhandene Kennzeichnungen am Dokument zusammen.
  • 04 Erkennungskern wird ausgeführt. Der Text wird geprüft, sprachlich weitergeleitet und durch bis zu drei Erkennungsalgorithmen verarbeitet. Dies ist handle_doc, nachfolgend näher erläutert.
  • 05 Ergebnisse zurückgeschrieben. Ergebnisse werden dedupliziert und per Bulk-Update am Dokument gespeichert, und der Status wird aufFINISHED. Auch bei einem Fehler wechselt der Status auf FINISHED, sodass nichts endlos neu verarbeitet wird.
Zurückgeschrieben

Pro Dokument

DS_EntryType_Count
DS_EntryType_List
DS_EntryType_Values
DS_EntryType_Index
DS_ProfiledAt
DS_Status = FINISHED
Gegendruck bei einer 1000 Einträge tiefen Warteschlange hält die gesamte Pipeline innerhalb eines festen Speicherrahmens – unabhängig davon, wie groß das Archiv ist.
AI ProfilerIm Kern

Filtern, weiterleiten, dann abgleichen

Bevor ein Modell ausgeführt wird, handle_doc filtert Aufgaben heraus, die nicht verarbeitet werden sollen, und wählt anschließend das richtige Werkzeug für die jeweilige Sprache. Erst danach werden die Matcher ausgeführt.

Dokumenttext + erkannte Sprache Schutzmaßnahmen nur freigegebene Typen json · xml · log überspringen bei > 20.000 Zeichen kürzen unbekannte Sprache verwerfen Weiterleitung Abhängigkeit vorhanden Muster? ja → gesamter Text nein → Sätze aufteilen Matcher NER Schlüsselwortphrasen Abhängigkeitsgrammatik Duplikate entfernen + Labels zusammenführen → zurückschreiben
Schritt 1

Festlegen, was verarbeitet wird

Nur freigegebene Dokumenttypen werden profiliert (doc, docx, pdf, eml, txt und weitere). Strukturierte Formate wie json, xml und log werden übersprungen. Text mit mehr als 20.000 Zeichen wird markiert und gekürzt, und Inhalte in unbekannter Sprache werden verworfen.

Schritt 2

Sprachstrategie auswählen

Wenn eine Sprache grammatikalische Abhängigkeitsmuster aufweist, wird der gesamte Text auf einmal analysiert. Andernfalls wird der Text in Sätze aufgeteilt und jeder Satz einzeln analysiert, wobei das mehrsprachige Modell als universeller Fallback dient.

AI ProfilerErkennungsalgorithmen

Drei Perspektiven auf denselben Text

Jeder Treffer trägt ein vorangestelltes Label, damit nachgelagerte Systeme wissen, wie er gefunden wurde. Die drei Perspektiven werden auf denselben Satz angewendet und ihre Ergebnisse zusammengeführt.

„Jane wurde wegen Diabetes behandelt." ein Satz, drei Perspektiven Erkennung benannter Entitäten statistisches Modell · Personen, Daten Schlüsselwort-Phrase-Matcher lemma-basiert · erkennt Flexionsformen Abhängigkeitsgrammatik Subjekt + sensibles Objekt S_PER · S_PER_FULL · S_DATE „Jane" wird als Namenstrefffer eingestuft S_K_HEALTH „Diabetes" aus dem Gesundheitswörterbuch S_S_HEALTH Subjekt „Jane" + Objekt „Diabetes" bestätigt
01 · NER

Benannte Entitäten

Das statistische Modell von spaCy erkennt Personen, Organisationen, Orte, Daten und Zeiten. Namen mit der richtigen Form (zwei bis drei verschiedene alphabetische Wörter, keine Ziffern) werden als vollständige Namenseinträge eingestuft.

Labels: S_PER, S_PER_FULL, S_ORG, S_GPE, S_LOC, S_DATE
02 · Keywords

Phrasenabgleich

Ein lemma-basierter Phrase-Matcher durchsucht Texte nach Begriffen aus kundenbezogenen Wörterbüchern sensibler Vokabular, sodass auch flektierte Formen und nicht nur exakte Zeichenketten erkannt werden.

Labels: S_K_<TYPE>
03 · Grammatik

Abhängigkeitsabgleich

Grammatikalische Muster bestätigen einen tatsächlichen Zusammenhang: Eine Person oder ein zulässiges Pronomen fungiert als Subjekt, und ein sensibles Schlüsselwort als Objekt. Dies reduziert Falschpositive, da Kontext und nicht nur ein einzelnes Wort gefordert wird.

Labels: S_S_<TYPE>
AI ProfilerReichweite

Entwickelt für Skalierung undReichweite

15+Sprachmodelle
3Erkennungsmethoden
1kAufgabenwarteschlangentiefe
9Sensible Kategorien

Dedizierte Modelle stehen für Englisch, Dänisch, Deutsch, Niederländisch, Französisch, Italienisch, Spanisch, Schwedisch, Norwegisch, Finnisch, Polnisch, Portugiesisch, Litauisch, Kroatisch (auch für Serbisch, Bosnisch und Montenegrinisch) sowie Ukrainisch zur Verfügung, ergänzt durch ein mehrsprachiges Modell für alle weiteren Sprachen und einen universellen Satztrenner als Grundlage.

Abschnitt 07Stack

Der gesamte Stack

SchichtTechnologie
FrontendVue 3, Vite, TypeScript, Vuex, SCSS, Chart.js, Axios
API-GatewayNGINX 1.29, TLS-Terminierung, Routing, IP-Allowlisting
REST-APIsFlask 3.x, FastAPI, Gunicorn, Uvicorn
Asynchrone AufgabenCelery 5.x, RabbitMQ 4.2
VerarbeitungJava 11/17, Spring Boot, Apache Tika
ML / NLPspaCy 3.8, FastText, sentence-transformers
LLM / RAGLlamaIndex, OpenAI, Ollama, Claude, pgvector
OCREasyOCR, Tesseract, YOLO, PyMuPDF
Suche / SpeicherungElasticsearch 9.3
Relationale DatenbankPostgreSQL 17.6 with pgvector
AuthentifizierungJWT (RSA), LDAP / Active Directory, Google OAuth
InfrastrukturDocker Compose, Ansible, GitHub Actions, AWS ECR / S3
MonitoringKibana, Portainer, Flower, Metricbeat
In einem SatzDie Gesamtstruktur

Verbinden, scannen, klassifizieren, entscheiden, handeln, berichten.

Vom konfigurierten Postfach bis zur durchgesetzten Aufbewahrungsregel folgt jedes Dokument einem einzigen Pfad durch eine vielsprachige Umgebung, die durch einen gemeinsamen zentralen Datenspeicher zusammengehalten wird. Die Architektur ist bewusst plural gestaltet; die maßgebliche Datenquelle hingegen nicht.

~42 Dienste · Python + Java Kern · Elasticsearch im Zentrum