E-Rechnung/README.md

80 lines
3.6 KiB
Markdown

# README
## Description
Dieses Tool konvertiert Rechnungen im PDF-Format vollautomatisch in das offizielle XRechnung-XML-Format (UBL-Standard, Version 3.0). Das System verarbeitet sensible Finanzdaten vollständig lokal auf der eigenen Hardware und verzichtet auf externe Cloud-Schnittstellen.
Die Anwendung nutzt eine Hybrid-Architektur:
* **Stammdaten (Kopfdaten):** Ein lokales Large Language Model (LLM) extrahiert unstrukturierte Metadaten wie Rechnungsnummern, Datumsangaben, Bestell-Referenzen und Kundenadressen. Die Steuerung erfolgt über eine strikte JSON-Schema-Grammatik.
* **Positionen (Tabelle):** Ein nativer Python-Algorithmus extrahiert Artikelbeschreibungen, Mengen, Einheiten und Einzelpreise über reguläre Ausdrücke (Regex). Die finale Summenberechnung erfolgt finanzmathematisch präzise über das `decimal`-Modul inklusive kaufmännischem Runden.
## Supported Model
Das System ist auf das folgende Modell optimiert, welches sich im Verzeichnis `models/` befinden muss:
* **Modell:** Qwen3.5-4B-Instruct
* **Format:** GGUF
* **Quantisierung:** Q8_0
Hinweis: Es muss zwingend die Instruct-Variante des Modells verwendet werden. Das Basis-Modell (Base) ist für diese Anwendung nicht kompatibel.
## Installation
### 1. Verzeichnisstruktur vorbereiten
Erstellen Sie im Projektverzeichnis den Ordner für das lokale KI-Modell:
```bash
mkdir models
```
### 2. Virtuelle Umgebung (venv) erstellen und aktivieren
Erstellen Sie eine isolierte Python-Umgebung und aktivieren Sie diese vor der Installation der Pakete.
**Windows (PowerShell):**
```powershell
python -m venv venv
.\venv\Scripts\Activate.ps1
```
**Linux / macOS:**
```bash
python -m venv venv
source venv/bin/activate
```
### 3. Modell platzieren
Laden Sie die Modelldatei `Qwen3.5-4B-Instruct-Q8_0.gguf` herunter und platzieren Sie diese im erstellten Ordner. Der Pfad muss exakt wie folgt lauten:
`models/Qwen3.5-4B-Instruct-Q8_0.gguf`
### 4. Abhängigkeiten installieren
Die Datei `requirements.txt` ist im Repository enthalten. Führen Sie in der aktivierten virtuellen Umgebung den passenden Befehl aus, um die Installation mit GPU-Beschleunigung (Nvidia CUDA) durchzuführen:
**Windows (PowerShell):**
```powershell
$env:GGML_CUDA="1"; pip install -r requirements.txt --force-reinstall --no-cache-dir
```
**Linux / macOS:**
```bash
GGML_CUDA=1 pip install -r requirements.txt --force-reinstall --no-cache-dir
```
## Use
Starten Sie die Applikation über das Terminal:
```bash
streamlit run app.py
```
Der Konversionsprozess gliedert sich in folgende Schritte:
1. **Dokumenten-Upload:** Laden Sie die Rechnungs-PDF über die Weboberfläche hoch.
2. **Extraktion:** Starten Sie die hybride Analyse über den dafür vorgesehenen Button.
3. **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.
4. **Export:** Generieren Sie die finale XML-Datei über die Export-Funktion und starten Sie den Download.
## Notes
### Human-in-the-Loop
Das Tool dient als Automations-Assistent. Vor dem finalen XML-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-Format. Für die Einhaltung der GoBD-Richtlinien (u. a. die revisionssichere Archivierung der Original-PDF sowie der generierten XML-Datei über den gesetzlichen Zeitraum von 10 Jahren) ist der Betreiber der Software selbst verantwortlich.