Metadata-Version: 2.4
Name: belegant
Version: 0.1.0
Summary: On-Prem Document-AI für Schweizer Belege & QR-Rechnungen (DE/FR/IT) — Client, Verifier & lokaler Assistent
Author: Keyvan Hardani
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/Keyvanhardani/belegant
Keywords: ocr,invoice,qr-bill,swiss,document-ai,on-premise
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: pydantic>=2.6
Requires-Dist: httpx>=0.27
Requires-Dist: flask>=3.0
Requires-Dist: pillow>=10.0
Requires-Dist: pymupdf>=1.24

![Belegant](assets/belegant-logo.png)

# Belegant

🇨🇭 **Schweiz** · 🇩🇪 DE · 🇫🇷 FR · 🇮🇹 IT · 🇦🇹 AT

**On-Prem Document-AI für Schweizer Belege & QR-Rechnungen — DE / FR / IT.**
Liest IBAN, Betrag, MWST und Positionen aus einem Beleg-Bild und prüft jedes Feld
deterministisch mit der Prüfschicht `belegant-verify`.
Läuft lokal beim Kunden, keine Cloud. *Von den Machern von German-OCR.*

## Installation

```bash
pip install belegant
```

## Lokaler Assistent

```bash
belegant serv --port 8700     # Web-Assistent auf http://127.0.0.1:8700
```

Beleg hochladen → strukturiertes JSON **plus** deterministische Prüfung: IBAN/QR-IBAN,
QR-Referenz (Modulo-10 rekursiv), Creditor Reference (ISO 11649), MWST-Arithmetik
(8.1 / 2.6 / 3.8 %), CHE-UID, Swico-S1 und ein QR-Oracle-Abgleich. Was einen Check nicht
besteht, wird geflaggt — nie still ausgegeben.

## CLI

```bash
belegant extract rechnung.png    # extrahierter, geprüfter Beleg als JSON
```

## Modell-Backend

Belegant spricht **Belegant-4B** (multimodal, 4B) über **Ollama** oder
**vLLM** an — OpenAI-kompatibel. Konfiguration über Umgebungsvariablen (siehe `.env.example`):

```
BELEGANT_BASE_URL=http://127.0.0.1:11434/v1
BELEGANT_MODEL=belegant-4b
```

## Prinzip

**LLM proposes, verifier disposes.** Das Modell extrahiert, `belegant-verify` prüft jedes
Feld gegen Prüfsummen, Arithmetik und den konventionell dekodierten QR-Code. Ergebnis:
**0 % Halluzination** auf validierten Feldern — lieber ein ehrliches `null` als eine
erfundene IBAN.

## BelegBench v1

Fairer 4B-Vergleich, n = 300, 100 % synthetisch, DE / FR / IT.

| Modell | Field-EM | Halluzinationsrate | Parse-Fehler |
|---|---|---|---|
| **Belegant-4B** | **84.7 %** | **0.0 %** | 3/300 |
| Qwen3.5-4B (roh) | 75.8 % | 1.2 % | 15/100 |
| gemma3:4b (roh) | 16.5 % | 15.9 % | 76/100 |

Trilingual: DE 84.7 % · FR 81.4 % · IT 83.0 % — je 0 % Halluzination.

**Takeaway:** +9 Punkte in der 4B-Klasse und als einziges Modell mit 0 %
Halluzination (die Treuhänder-Metrik) — bei ~3 s pro Beleg, lokal, auf einem 4B.

## Credits & Danksagung

Basiert auf **Qwen3.5-4B** von **Alibaba Cloud · Qwen Team** (Apache-2.0) — grosser Dank ans Qwen-Team.

## Lizenz

Apache-2.0
