Aus dem Vergleich mit eingegangenen Lieferanten-Rechnungen (ZUGFeRD/Factur-X) übernommen: 1) BT-113 TotalPrepaidAmount/PrepaidAmount = 0,00 immer ausgeben (UBL + CII) - macht die Summensektion vollständig (4/4 Lieferanten hatten es). 2) BT-86 BIC der Verkäuferbank (DEUTDEDB160) ins XML: UBL FinancialInstitutionBranch/ID, CII PayeeSpecifiedCreditorFinancialInstitution/ BICID. BIC in VERKAEUFER-Stammdaten ergänzt. 3) ZUGFeRD-Profil-Konsistenz: die CII deklariert jetzt das EN16931-Profil (urn:cen.eu:en16931:2017, B2B) statt des strengen KoSIT-XRechnung-Profils - das passt zum factur-x-Level 'en16931'. Damit entfällt der bisherige XMP- Override (fix_xrechnung_xmp_conformance): factur-x schreibt nativ 'EN 16931'/'1.0', konsistent zum eingebetteten XML. Die reine XRechnung (UBL, B2G) bleibt beim strengen xrechnung_3.0-Profil. Verifiziert: ZUGFeRD-PDF mit check_xsd=True erzeugt (Element-Reihenfolge korrekt), XMP 'EN 16931' == eingebettetes Profil. Alle 7 Beispielrechnungen unverändert. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .dockerignore | ||
| .gitignore | ||
| Dockerfile | ||
| README.md | ||
| docker-compose.yml | ||
| invoice_logic.py | ||
| main.py | ||
| requirements.txt | ||
| sRGB.icc | ||
README.md
README
Description
Dieses Tool konvertiert Rechnungen im PDF-Format über eine Weboberfläche in die offiziellen E-Rechnungsformate XRechnung (UBL 3.0) und ZUGFeRD 2.4 (hybride PDF mit eingebettetem CII-XML). Die Datenextraktion erfolgt über ein LLM, das intern im Firmennetzwerk läuft – sensible Finanzdaten verlassen das lokale Netzwerk nicht.
Zugriff
Die Anwendung läuft als Docker-Container und ist im lokalen Firmennetzwerk erreichbar unter:
Aufbau
Das System besteht aus zwei Komponenten:
- Web-Oberfläche (
main.py, Streamlit): PDF-Upload, Datenvalidierung, Export - vLLM-Backend: separat betriebener Inferenz-Server (Standard:
gemma431b), der die strukturierten Metadaten aus dem Rechnungstext extrahiert
Installation (Docker)
1. Repository holen
git clone https://gitea.scitech-gmbh.de:8443/dfuhrmann/E-Rechnung.git
cd E-Rechnung
2. Umgebungsvariablen prüfen
In docker-compose.yml sind das vLLM-Backend und Modell hinterlegt:
environment:
- VLLM_URL=http://10.192.0.140:8002
- LLM_MODEL=gemma431b
Bei Bedarf hier anpassen (z.B. anderes Modell oder Backend-Host).
3. Container bauen und starten
docker compose up -d --build
Die Anwendung ist danach unter http://localhost:8040 (bzw. im Firmennetz unter http://erechnung) erreichbar.
Use
Der Konversionsprozess gliedert sich in folgende Schritte:
- Dokumenten-Upload: Laden Sie die Rechnungs-PDF über die Weboberfläche hoch. Die PDF wird direkt zur Kontrolle angezeigt.
- Extraktion: Starten Sie die Analyse über den Button "Daten extrahieren".
- Validierung: Prüfen Sie die extrahierten Kopfdaten und die Positionstabelle in der Benutzeroberfläche. Da alle Felder editierbar sind, können Korrekturen direkt vorgenommen werden. Pflichtfelder sind mit :red[*] markiert; der Export wird blockiert, solange Pflichtangaben fehlen.
- Export: Wählen Sie das gewünschte Format (XRechnung-XML oder ZUGFeRD-PDF) und starten Sie den Download.
Notes
Human-in-the-Loop
Das Tool dient als Automations-Assistent. Vor dem finalen Export ist eine visuelle Endkontrolle der extrahierten Daten (insbesondere Rechnungsnummer und Empfängeradresse) durch den Sachbearbeiter zwingend erforderlich, um KI-Fehlinterpretationen auszuschließen.
GoBD-Konformität
Das Tool generiert ausschließlich das strukturierte XML- bzw. hybride PDF-Format. Für die Einhaltung der GoBD-Richtlinien (u. a. die revisionssichere Archivierung der Original-PDF sowie der generierten E-Rechnung über den gesetzlichen Zeitraum von 10 Jahren) ist der Betreiber der Software selbst verantwortlich.