Ingestion as an observable process

Extracting text is only one part of working with a document. A useful inspection surface also needs to show where that text came from, how it relates to the page, and what happened during processing. Trapo explores that surface for local PDFs and images.

The workbench connects page previews with extracted text, bounding boxes, spans, and diagnostic information. DuckDB retains the local record, so the interface can represent both document content and the history of an ingestion run.

From a Python pipeline to a portable workbench

The Agus Works prototype used Python, FastAPI, and local document readers including Docling, MinerU, and Infinity Parser2. It stored file hashes, structured output, chunks, and page regions, with a browser interface for inspecting and searching the resulting corpus.

The subsequent workbench lives in a repository that retains its earlier name, baidu-unlimited-ocr-portable. Its current product is Trapo: a Rust server hosting a React interface, local persistence, PDF rendering, runtime loading, and model downloads. This brings more of the application lifecycle into a portable local package.

Keeping the interface attached to the evidence

The current design persists OCR stream events before broadcasting them. On refresh, the interface can reconstruct completed activity and continue with new events. Page-region anchors connect an extracted span to the preview, rather than treating text and imagery as unrelated views.

That attention to traceability is the core of the experiment: preserve enough structure to examine a result and enough state to understand how it was produced.

The next layer

Graph-based retrieval is the longer-term direction described by the project. Graph extraction is not a completed capability of the documented workbench. The public work presented here is the ingestion and inspection foundation, using existing OCR models and runtimes rather than claiming model authorship.

From the workbench

Demonstrations & recordings

Evidence & further reading

Sources

  1. Trapo · Python ingestion and inspection prototype
    Agus Works · GitHubChecked October 25, 2026

    June 2026 public Python/FastAPI implementation with local document readers, DuckDB, structured page regions, and search.

  2. Trapo · portable Rust and React workbench
    bangonkali · GitHubChecked October 25, 2026

    Current README names the product Trapo and describes portable local ingestion. The repository address retains its earlier OCR name. Graph extraction is a future direction.

  3. Unlimited OCR · demonstration repository
    bangonkali · GitHubChecked October 25, 2026
  4. Hugging Face · learning activity
    Hugging Face · bangonkaliChecked October 25, 2026

    Public learning and community activity. This profile is not evidence of authorship of the models it references.