48 lines
2.0 KiB
Markdown
48 lines
2.0 KiB
Markdown
---
|
|
name: rechnung-extrahieren
|
|
description: Extrahiert Rechnungsnummer, Rechnungsdatum, Netto-, Steuer- und Bruttobetrag sowie den Rechnungssteller aus dem Text einer Rechnung als JSON.
|
|
metadata:
|
|
knaster:
|
|
version: 1
|
|
status: draft # wird nach erfolgreicher Graduierung "active", stage 1
|
|
stage: 0
|
|
cluster: rechnungen
|
|
slot: tier1-general
|
|
threshold: 0.80
|
|
triggers:
|
|
- "Lies die Rechnungsdaten aus diesem PDF-Text aus"
|
|
- "Welche Rechnungsnummer und welcher Betrag stehen auf der Rechnung?"
|
|
max_output_tokens: 400
|
|
output:
|
|
format: json
|
|
schema:
|
|
type: object
|
|
required: [rechnungsnummer, datum, brutto, waehrung]
|
|
properties:
|
|
rechnungsnummer: {type: string}
|
|
datum: {type: string, pattern: "^\\d{4}-\\d{2}-\\d{2}$"}
|
|
netto: {type: [number, "null"]}
|
|
steuer: {type: [number, "null"]}
|
|
brutto: {type: number}
|
|
waehrung: {type: string, minLength: 3, maxLength: 3}
|
|
steller: {type: [string, "null"]}
|
|
verifier:
|
|
- type: judge
|
|
slot: verifier-small
|
|
rubric: "Stimmen Rechnungsnummer und Bruttobetrag exakt mit dem Text überein? Netto + Steuer = Brutto, falls angegeben."
|
|
---
|
|
# Rechnung extrahieren
|
|
|
|
Du extrahierst strukturierte Daten aus dem Text einer Rechnung.
|
|
|
|
## Regeln
|
|
1. Gib nur Werte aus, die wörtlich im Text stehen. Erfinde nichts; fehlende optionale Werte sind `null`.
|
|
2. Datum immer als `YYYY-MM-DD`.
|
|
3. Beträge als Zahl mit Punkt als Dezimaltrenner, ohne Tausendertrennzeichen und ohne Währungssymbol.
|
|
4. Währung als ISO-Code (EUR, CHF, USD).
|
|
5. Gibt es mehrere Beträge, ist `brutto` der zu zahlende Gesamtbetrag.
|
|
|
|
## Beispiele
|
|
Eingabe: „Rechnung Nr. RE-2024-118 vom 03.04.2024 … Nettobetrag 1.000,00 € zzgl. 19 % MwSt. 190,00 € Gesamtbetrag 1.190,00 €“
|
|
Ausgabe: {"rechnungsnummer": "RE-2024-118", "datum": "2024-04-03", "netto": 1000.0, "steuer": 190.0, "brutto": 1190.0, "waehrung": "EUR", "steller": null}
|