Zum Inhalt

Datenextraktion

KARLI-gehostete Datenextraktions-Modelle verwandeln hochgeladene Dateien in strukturierten Text, den nachgelagerte Komponenten konsumieren können. Ausgewählt werden sie in der Read File-Komponente, wenn deren Extraction Backend auf karli steht.

KARLI ist derzeit der einzige Anbieter in dieser Modellkategorie.

Verfügbare Modelle

Modell Akzeptiert Hinweise
karli/default-data-extraction Beliebig KARLI-verwalteter Standard; wählt einen geeigneten Extraktor aus.
karli/data-extraction-moe-latest Beliebig Mixture-of-Experts-Router — wählt pro Dateityp (und pro Seite bei PDFs) den optimalen Extraktor. Siehe Details unten. Das einzige Modell, das Extraktionsfortschritt meldet.
docling-project/docling Dokumente Docling, serverseitig bei KARLI ausgeführt.
datalab-to/marker Dokumente Marker.
opendatalab/MinerU Dokumente MinerU.
karli/multimodal-data-extraction Dokumente Multimodale Hybrid-Pipeline.
openai/whisper-large-v3 Audio Audio-Transkription via Whisper.

Die Read-File-Komponente prüft die hochgeladene Datei vor dem Upload gegen den akzeptierten Typ des gewählten Modells — ein PDF an das Whisper-Modell zu schicken, liefert z. B. einen Fehler statt eines Uploads.

Mixture-of-Experts-Routing

Das Modell karli/data-extraction-moe-latest wählt automatisch den besten Extraktor je Dateityp:

Dateikategorie Endungen Extraktor
PDF pdf Seitenweiser Router (siehe unten)
Word-Dokumente doc, docx Docling
Präsentationen ppt, pptx Docling
Tabellen xls, xlsx, csv Default
HTML htm, html, xhtml MarkItDown
Bilder png, jpg, jpeg, gif, bmp, tiff, tif, webp Vision
Audio aac, mpeg, wav, webm, mp3, mp4 Audio (Whisper)
E-Mail eml, msg, pst Default
Klartext txt Default

Seitenweises PDF-Routing

Bei PDFs untersucht das MoE-Modell jede Seite einzeln, klassifiziert ihre Komplexität und leitet sie an den passendsten Extraktor weiter:

Seitenkategorie Extraktor Braucht Vision
Gescannte Seite Marker Ja
Handschrift Marker Ja
Bildlastig Marker Ja
Komplexes Layout Marker Nein
Fließtext MinerU Nein
Gemischter Inhalt Marker Nein

Das bedeutet, dass ein einzelnes PDF von mehreren Extraktoren verarbeitet werden kann — z. B. geht eine textlastige Seite durch MinerU, während eine gescannte Seite mit Vision-Unterstützung an Marker weitergeleitet wird.

Request-Aufbau

Die Extraktion läuft bei KARLI als asynchroner Task:

  1. Einreichen — die Komponente sendet einen Multipart-POST an {KARLI_BASE_URL}/data-extraction/submit. Das Formularfeld extractorModel trägt das gewählte Modell (gemappt auf seinen KARLI-Identifier), der File-Part das Dokument bzw. die Audiodatei. Die Antwort liefert die taskId des Tasks.
  2. Verfolgen — die Komponente folgt dem Event-Stream des Tasks unter {KARLI_BASE_URL}/data-extraction/tasks/{taskId}/events, bis sein Ergebnis eintrifft. Ist der Stream nicht verfügbar oder bricht er ab, fragt sie stattdessen alle 5 Sekunden {KARLI_BASE_URL}/data-extraction/tasks/{taskId} ab, höchstens 30 Minuten lang.

Jeder Request authentifiziert sich mit der unten beschriebenen Priorität.

Das Ergebnis ist ein JSON-Objekt, dessen segments zu einer einzigen Text-Payload zusammengefügt werden; Segmente mit title erscheinen als ## <title>-Markdown-Überschriften.

Fortschrittsmeldung

Während der Task läuft, meldet die Komponente seinen Fortschritt — verarbeitete Seiten von der Gesamtzahl — in ihren Logs und im Run-Stream des Flows, von wo Karli Studio ihn als Fortschrittsbalken anzeigt.

Nur mit dem MoE-Modell

Fortschritt meldet derzeit nur karli/data-extraction-moe-latest. Andere Modelle werden genauso extrahiert, zeigen aber keinen Fortschritt, bis das Ergebnis eintrifft.

Authentifizierung

Extraktions-Requests authentifizieren sich mit folgender Priorität:

  1. JWT (bei aktiver Karli-Studio-Session) — gesendet als Authorization: Bearer <token>.
  2. KARLI_API_KEY (aus Komponentenattribut, Provider-Variablen oder der Umgebungsvariable KARLI_API_KEY) — gesendet als X-API-Key: <key>.
  3. Fehler — sind weder JWT noch Key verfügbar, wird ein ValueError ausgelöst mit dem Hinweis, KARLI_API_KEY zu konfigurieren oder über Karli Studio zuzugreifen.

Externe API-Nutzer

Wer die Agentlab-API direkt aufruft und Flows mit einer FileComponent mit Dokumentextraktion nutzt, muss die Provider-Variable KARLI_API_KEY konfigurieren oder die Umgebungsvariable KARLI_API_KEY auf dem Server setzen. Details in der Model-Provider-Übersicht.

Unter Dokumentextraktion steht, wie die Read-File-Komponente diese Modelle praktisch einsetzt — inklusive der Data-Struktur am Ausgang.