--- 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}