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 |
|---|---|---|
| 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) |
| 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:
- Einreichen — die Komponente sendet einen Multipart-
POSTan{KARLI_BASE_URL}/data-extraction/submit. Das FormularfeldextractorModelträgt das gewählte Modell (gemappt auf seinen KARLI-Identifier), der File-Part das Dokument bzw. die Audiodatei. Die Antwort liefert dietaskIddes Tasks. - 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:
- JWT (bei aktiver Karli-Studio-Session) — gesendet als
Authorization: Bearer <token>. KARLI_API_KEY(aus Komponentenattribut, Provider-Variablen oder der UmgebungsvariableKARLI_API_KEY) — gesendet alsX-API-Key: <key>.- Fehler — sind weder JWT noch Key verfügbar, wird ein
ValueErrorausgelöst mit dem Hinweis,KARLI_API_KEYzu 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.