text-extract/MODULE.de.md
flemming-it fdb5deaa8b
Some checks failed
CI / Linux x86_64 (Forgejo) (push) Failing after 2s
docs: add MODULE.md + MODULE.de.md inline docs
Studio reads MODULE.md / MODULE.<locale>.md from the installed
bundle and renders it in the module-detail Documentation
section. text-extract ships them now — EN+DE peers, same
schema as the README but trimmed for the in-app reader.

Signed-off-by: flemming-it <sf@flemming.it>
2026-05-25 14:06:04 +02:00

2.5 KiB

text.extract

Reine Textextraktion aus PDF- und DOCX-Dokumenten. Pure-Rust, in-WASM, ohne deklarierte Berechtigungen. Der kanonische erste Schritt in Flows, die Rohtext brauchen — anonymisieren, zusammenfassen, übersetzen, per LLM klassifizieren, Audit-redigieren.

Capability

  • text.extract@0.1.0

Eingaben

Name Typ Beschreibung
document bytes Das zu extrahierende Dokument. MIME-Typen siehe unten.

Akzeptierte MIME-Typen (deklariert in module.yaml#accepts_mime, von Studio als File-Picker-Filter gelesen):

  • application/pdf
  • application/x-pdf
  • application/vnd.openxmlformats-officedocument.wordprocessingml.document

Andere MIME-Typen werden mit invalid_input abgelehnt — vor jedem Parsen.

Ausgabe

Name Typ Beschreibung
extracted json ExtractedDocument-Schema siehe unten.
{
  "engine": "pdf-extract",
  "engine_version": "0.7",
  "pages": [
    { "number": 1, "text": "…" }
  ]
}

confidence und bbox pro Seite sind im Schema für eine spätere Service-Mode-Variante (pdfium / mupdf via Host-Services) reserviert. v0.1.0 setzt diese Felder nicht; das Schema akzeptiert sie als optional.

Berechtigungen

Keine. Reine Rust-Pipeline (pdf-extract, zip, quick-xml). Kein Dateisystem, kein Netz. permissions: [] in module.yaml macht das explizit; der Hub erzwingt es.

Grenzen in v0.1.0

  • Layout-naives PDF. Mehrspaltige oder tabellenlastige Dokumente können umsortierten Text liefern. Ein-Spalten- Fließtext ist solide.
  • Kein OCR. Gescannte (nur-Bild-)PDFs liefern pro Seite leeren Text. Künftiges text.ocr@^0 als Vor-Schritt.
  • Nur DOCX bei Office. .doc (Altformat), .rtf, .odt noch nicht unterstützt.

1.0.0 setzt entweder die Service-Mode-Variante (pdfium-Qualität + Layout) voraus oder einen nachgewiesen-guten Extraktions-Score auf einem repräsentativen Korpus.

Beispiel-Flow

name: extract-anonymise
inputs:
  document: bytes
steps:
  - id: extract
    use: text.extract@^0
    with:
      document: $inputs.document
  - id: redact
    use: text.anonymize@^0
    with:
      text: $extract.extracted.pages[*].text
outputs:
  redacted: $redact.anonymized

Build

cargo build --release --target wasm32-wasip2
# Ausgabe: target/wasm32-wasip2/release/text_extract.wasm