Technologie-Erklärung zur kontextbasierten Datenextraktion & Mandanten-Profiling
Klassische OCR-Systeme suchen oft "blind" nach Mustern im Text (Regular Expressions). Das führt bei komplexen Dokumenten häufig zu Fehlern.
Der Algorithmus sucht nach einem Preis (Zahl mit Komma). Er findet:
Ergebnis: Falsche Buchung, Chaos in der Buchhaltung.
Der Algorithmus sucht zuerst nach einem Ankerwort (z.B. "Gesamtbetrag").
Erst wenn er den Anker gefunden hat, sucht er in einem Radius von 60 Zeichen rechts daneben oder darunter nach dem Wert.
Ergebnis: 99,9% Trefferquote beim korrekten Endbetrag.
Das System definiert 5 Dimensionen von Ankern. Für jede Dimension kann eine Liste von Synonymen definiert werden.
Das System ignoriert die Kundennummer "50020", obwohl sie wie eine Rechnungsnummer aussieht, weil kein Anker in der Nähe ist. Es findet "RE-2023-001" zielsicher, weil der Anker "Rechnungsnummer" direkt davor steht.
Das mächtigste Feature des KAI Backends ist die Trennung von Code und Logik. Jede Firma (Mandant) oder jeder Lieferant kann unterschiedliche Bezeichnungen auf Rechnungen verwenden.
Anstatt den Python-Code zu ändern, erstellen Sie einfach ein Parsing-Profil im Dashboard. Dieses Profil wird in der Redis-Datenbank gespeichert und zur Laufzeit in die KI geladen.
| Feature | Lieferant A (Deutschland) | Lieferant B (USA) |
|---|---|---|
| Bezeichnung für Summe | "Zahlbetrag" | "Amount Due" |
| Bezeichnung für Steuer | "Umsatzsteuer 19%" | "Sales Tax" |
| Profil-Lösung | Profil "Standard_DE" lädt Anker: ["Zahlbetrag", "Umsatzsteuer"] | Profil "Import_USA" lädt Anker: ["Amount Due", "Sales Tax"] |
| Code-Änderung nötig? | NEIN | NEIN |
So fließen die Daten durch das System (z.B. in workspace_features.py):
profile_name übergeben wurde.parsing_profile:Lieferant_A).config.json._internal_extract_invoice_details iteriert durch alle Anker.extract_near_anchor aufgerufen, um den Wert im Textfenster (60 Zeichen) zu finden.