# `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 `_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 `_iso` als `Y-m-d`). **Eingangswerte:** Die Datei unter `` (Platzhalter erlaubt). **Ausgangswerte:** - `_` — je Schema-Feld (leer wenn nicht gefunden) - `_json` — alle Felder als JSON - `_ok` — `"1"` wenn alle Pflichtfelder plausibel gefüllt, sonst `"0"` - `_fehlend` — CSV der fehlenden/unplausiblen Pflichtfelder **XML-Beispiel** ```xml {{rechnung_pdf}} extrakt ``` **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 `_ok` signalisiert.