Files
Workflow/tasks/ki_dok_extrakt.md

2.3 KiB

ki_dok_extrakt — Feldextraktion aus Dokumenten per KI

Zweck: Zieht definierte Felder (Schema) aus einer hochgeladenen PDF-/Textdatei — z. B. Rechnungsnummer, Betrag, IBAN aus einer Eingangsrechnung — und legt sie als Kontextvariablen ab. Pflichtfelder werden validiert; fehlt eines, endet der Task NICHT mit Fehler, sondern setzt <prefix>_ok = 0, damit der Workflow per if in eine manuelle Nacherfassung verzweigen kann. Läuft über die zentrale KI-Kette des Hauses.

Parameter

Name Pflicht? Default Beschreibung
quelle ja PDF- oder Textdatei
schema/feld (name) ja Zu extrahierendes Feld; wiederholbar
feld (typ) nein string string, betrag, iban oder datum (Normalisierung + Plausibilitätsprüfung)
feld (pflicht) nein nein ja/true/1 = Pflichtfeld
feld (hinweis) nein Zusatzhinweis für die KI
max_zeichen nein 20000 Dokumenttext auf N Zeichen kürzen (Minimum 1000)
output_var nein extrakt Prefix der Ausgabevariablen

Feld-Typen: string = Freitext, betrag = "1.234,56""1234.56", iban = ohne Leerzeichen, Großschreibung + Format-Check, datum = normalisiert auf d.m.Y (zusätzlich <feld>_iso als Y-m-d).

Eingangswerte: Die Datei unter <quelle> (Platzhalter erlaubt).

Ausgangswerte:

  • <prefix>_<feldname> — je Schema-Feld (leer wenn nicht gefunden)
  • <prefix>_json — alle Felder als JSON
  • <prefix>_ok"1" wenn alle Pflichtfelder plausibel gefüllt, sonst "0"
  • <prefix>_fehlend — CSV der fehlenden/unplausiblen Pflichtfelder

XML-Beispiel

<task type="ki_dok_extrakt" id="rechnung_lesen">
  <config>
    <quelle>{{rechnung_pdf}}</quelle>
    <schema>
      <feld name="re_nr"         typ="string" pflicht="ja" hinweis="Rechnungsnummer"/>
      <feld name="betrag_brutto" typ="betrag" pflicht="ja"/>
      <feld name="iban"          typ="iban"/>
      <feld name="datum"         typ="datum"/>
    </schema>
    <output_var>extrakt</output_var>
  </config>
</task>

Hinweis: Liefert die Datei keinen extrahierbaren Text (z. B. Scan ohne Textebene) oder ist die KI-Antwort kein parsebares JSON, endet der Task mit Fehler. Fehlende Pflichtfelder dagegen sind kein Fehler, sondern werden über <prefix>_ok signalisiert.