Intelligente KI-Pipeline zur Rechnungs- und Belegverarbeitung (n8n & OpenRouter)
Projektübersicht
Eine automatisierte, lokale Dokumentenverarbeitungspipeline, die entwickelt wurde, um manuelle Dateneingaben vollständig zu eliminieren. Das System überwacht kontinuierlich das Postfach, leitet Anhänge basierend auf ihrem Format intelligent weiter, extrahiert strukturierte Finanzinformationen mithilfe multimodaler KI-Modelle, bereinigt und normalisiert Daten über benutzerdefinierte Skripte und aktualisiert abschließend ein lokales, interaktives HTML-Register.
Schritt-für-Schritt-Architektur & Umsetzung
Schritt 1: E-Mail-Trigger (Email Trigger IMAP)
- Funktionsweise: Der Workflow wird automatisch über einen IMAP-Trigger gestartet, der eingehende Nachrichten in Echtzeit überwacht.
- Technische Details: Es ist eine sichere Verbindung zum Mailserver eingerichtet, um E-Mails mit Anhängen (digitale Rechnungen oder Belegfotos) abzufangen und in die Pipeline einzuspeisen.
Schritt 2: Trennung und Normalisierung von Anhängen (Split Attachments Code)
- Funktionsweise: E-Mails enthalten häufig mehrere Dateien oder sekundäre Elemente (z. B. Firmenlogos oder Signaturen). Dieser benutzerdefinierte JavaScript-Knoten isoliert jeden Anhang separat.
- Technische Details: Binäre Dateipuffer werden extrahiert, unnötige Elemente herausgefiltert und Metadaten standardisiert, sodass jede Datei als sauberer Datenstrom durch die Pipeline fließt.
Schritt 3: Formatbasierte bedingte Verzweigung (Is PDF?)
- Funktionsweise: Ermittelt, ob es sich bei der eingehenden Datei um ein strukturiertes PDF-Dokument oder ein Bild (JPEG, PNG etc.) handelt.
- Technische Details: Es wird ein bedingter Switch-Knoten verwendet, der die Pipeline in zwei optimierte parallele Pfade aufteilt:
- True-Zweig (PDF): Leitet Textdokumente an die Texterkennungsphase weiter.
- False-Zweig (Bilder/E-Mail): Leitet visuelle Dateien direkt an den multimodalen KI-Agenten weiter.
Schritt 4: Texterextraktion vs. multimodale Verarbeitung
- Für PDFs: Die Datei durchläuft den Knoten Extract Text from PDF, um Rohtext effizient zu extrahieren, bevor dieser an den textbasierten KI-Agenten übergeben wird.
- Für Bilder: Die Datei überspringt die Texterextraktion und geht direkt an den multimodalen KI-Agenten, der Dokumente visuell analysieren kann (OCR + tiefes Kontextverständnis).
Schritt 5: KI-Datenextraktion (AI Agent & Structured Output Parser)
- Funktionsweise: Transformiert unstrukturierte Dokumente in streng typisierte JSON-Daten.
- Technische Details:
- Basiert auf leistungsstarken LLMs über das OpenRouter Chat Model.
- Integriert mit einem Structured Output Parser, der das Antwortschema strikt erzwingt.
- Der KI-Agent erkennt und extrahiert präzise wichtige Finanzfelder: Rechnungsnummer, Datum, Lieferantenname, Positionen, Menge und Gesamtbetrag.
Schritt 6: Datenbereinigung, Normalisierung & Duplikatschutz (Merge & Write to HTML Registry)
- Funktionsweise: Führt parallele Ausführungsströme zusammen, verhindert doppelte Datensätze und bereitet die Daten für die Speicherung vor.
- Technische Details:
- Branch Merging: Führt die Ergebnisse der PDF- und Bildverarbeitung wieder in einen einzigen Datenstrom zusammen.
- Preisentwicklung/Normalisierung: Benutzerdefinierter JS-Code entfernt Währungssymbole, ersetzt Kommas durch Punkte und formatiert Preise als Zahlen mit zwei Dezimalstellen (z. B. 145.00), um eine korrekte Sortierung zu gewährleisten.
- Duplikatprüfung: Vergleicht neue Einträge anhand eines eindeutigen zusammengesetzten Schlüssels (Datum + Rechnungsnummer + Betrag) mit bestehenden Datensätzen im Register, um Mehrfachspeicherungen auszuschließen.
- HTML-Generierung & Sortierung: Sortiert Datensätze automatisch in chronologischer Reihenfolge und aktualisiert die lokale eigenständige Datei
invoice.html, die ein eingebettetes Client-Side-Skript zur Tabellensortierung enthält (ermöglicht das Sortieren durch Klick auf die Spaltenüberschriften).
Technologie-Stack
n8n (Self-hosted / Local-first)
Docker
Claude Code
OpenRouter API
Multimodal LLMs
Structured Output Parsers
JavaScript (Node.js)
IMAP
HTML5 / CSS3
