Files
cluster-knaster/skills/rechnung-extrahieren/SKILL.md
T

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}