Zum Inhalt

KI: Markdown-Inhalt abfragen

Der Service Task „KI: Markdown-Inhalt abfragen" beantwortet gezielte Fragen zu einem Markdown-Text und gibt die Antworten als strukturiertes JSON-Objekt zurück. Die Fragen werden als Array übergeben, wobei jede Frage mit einem Attributnamen verknüpft ist — so entsteht automatisch ein sauberes Ergebnisobjekt.

Besonders geeignet ist dieser Task für die Auswertung von OCR-Ergebnissen: Ein eingescanntes PDF wird zunächst in Markdown umgewandelt und anschließend können gezielt Informationen wie Lieferscheinnummern, Daten oder Beträge extrahiert werden.


Input-Parameter

Die folgenden Felder werden als Eingabe für den Task benötigt:

{
  "content": "# Lieferschein\n\nLieferschein-Nr: LS-2024-001\nKommission: KOM-4711\nDatum: 15.03.2024\n\n| Pos | Artikel | Menge |\n|-----|---------|-------|\n| 1 | Widget A | 100 |\n| 2 | Widget B | 50 |",
  "questions": [
    {
      "question": "Wie lautet die Lieferscheinnummer?",
      "attribute": "deliveryNoteNumber",
      "format": "z.B. LS-2024-001"
    },
    {
      "question": "Wie lautet die Kommissionsnummer?",
      "attribute": "commissionNumber"
    },
    {
      "question": "Welches Datum hat der Lieferschein?",
      "attribute": "date",
      "format": "YYYY-MM-DD",
      "validation": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    {
      "question": "Wie viele Positionen enthält die Tabelle?",
      "attribute": "itemCount",
      "format": "Ganzzahl"
    }
  ],
  "returnNotFoundFields": false,
  "maxContentLength": 50000
}

Erläuterung:

  • content: Der Markdown-Text, der analysiert werden soll. Typischerweise ein OCR-Ergebnis oder ein anderer strukturierter Text aus einem vorherigen Prozessschritt.
  • questions: Ein Array von Fragen. Jede Frage enthält:
    • question: Die Frage in natürlicher Sprache (Deutsch oder Englisch).
    • attribute: Der Schlüsselname im Ergebnisobjekt.
    • format (optional): Ein Hinweis an die KI, in welchem Format die Antwort erwartet wird (z. B. „YYYY-MM-DD" oder „Ganzzahl").
    • validation (optional): Ein regulärer Ausdruck (Regex), gegen den der extrahierte Wert geprüft wird. Stimmt der Wert nicht überein, wird die KI automatisch zur Korrektur aufgefordert (bis zu 3 Versuche).
  • returnNotFoundFields (optional, Standard: false): Wenn true, enthält das Ergebnis ein zusätzliches Feld _notFound mit den Attributnamen, für die keine Antwort gefunden wurde.
  • maxContentLength (optional, Standard: 50000): Maximale Zeichenanzahl des Inhalts. Kann bei Bedarf erhöht werden.

Output

Der Task gibt ein JSON-Objekt zurück, dessen Schlüssel den Attributnamen der Fragen entsprechen:

{
  "deliveryNoteNumber": "LS-2024-001",
  "commissionNumber": "KOM-4711",
  "date": "2024-03-15",
  "itemCount": 2
}

Wird eine Antwort im Text nicht gefunden, wird das Feld auf null gesetzt.

Mit returnNotFoundFields: true:

{
  "deliveryNoteNumber": "LS-2024-001",
  "commissionNumber": "KOM-4711",
  "date": "2024-03-15",
  "itemCount": 2,
  "_notFound": []
}

JSONata-Beispiele

{
  "content": ocrResult.markdown,
  "questions": [
    {
      "question": "Wie lautet die Lieferscheinnummer?",
      "attribute": "deliveryNoteNumber",
      "format": "z.B. LS-2024-001"
    },
    {
      "question": "Welches Datum hat der Lieferschein?",
      "attribute": "date",
      "format": "YYYY-MM-DD",
      "validation": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  ]
}
{
  "content": vorheriger_schritt.text,
  "questions": [
    {
      "question": "Wie hoch ist der Gesamtbetrag?",
      "attribute": "totalAmount",
      "format": "Zahl"
    },
    {
      "question": "Wie lautet die Rechnungsnummer?",
      "attribute": "invoiceNumber"
    }
  ],
  "returnNotFoundFields": true
}

Hinweise

  • Es muss mindestens eine Frage im questions-Array enthalten sein.
  • Die Fragen können in jeder Sprache formuliert werden — die KI versteht Deutsch und Englisch gleichermaßen.
  • Präzise format-Angaben verbessern die Ergebnisqualität erheblich (z. B. „Datum im Format YYYY-MM-DD" statt nur „Datum").
  • Die optionale validation ermöglicht eine automatische Prüfung: Passt der extrahierte Wert nicht zum Regex-Muster, wird die KI erneut befragt — mit gezieltem Korrektur-Feedback.
  • Bei sehr langen Texten kann maxContentLength angehoben werden. Der Standardwert von 50.000 Zeichen deckt die meisten Anwendungsfälle ab.

Tipp

Dieser Task eignet sich besonders gut in Kombination mit OCR-Ergebnissen: Zuerst wird ein eingescanntes PDF per OCR in Markdown umgewandelt, anschließend werden mit diesem Task gezielt die relevanten Informationen extrahiert. Zusammen mit dem Task „KI: Schlüsselwerte extrahieren" lässt sich ein vollständiger Dokumenten-Eingangsworkflow aufbauen — automatische Erkennung aller Felder plus gezielte Nachfragen für kritische Werte.