Page
Where this runs every box is a real deployment
Browser your PDF Akamai Functions · edge WASM · WASI Preview 2 · no GPU documents app /v1/analyze — which pages have text /v1/extract — text, geometry, figures /v1/extract?chunk=1 — + semantic chunks 3-page window, model runs in-module /v1/render — one page to a PNG /v1/embed-text — text to 384-d /v1/ocr — 404, and says why CLIP app · separate deployment /v1/embed — one image to 512-d MobileCLIP-S0 vision, fp32, mounted triage runs on every page · ~13 ms/page Linode LKE · Singapore one g6-dedicated-8 node · 8 vCPU · 16 GB · no GPU liteparse-ocr POST /v1 — raster to text + boxes PaddleOCR · PP-OCRv6 medium no CPU limit · 7 GiB · one at a time 4.4 s + 0.41 s per line liteparse-clip /v1/image — image to 512-d /v1/text — text to 512-d, CLIP space /v1/embed — text to 384-d, prose space /v1/chunk — text to chunks + vectors /v1/describe — a figure, in words MiniLM · MobileCLIP · Florence-2, all fp32 · 3 CPU · 5 GiB liteparse-demo this page · calls all of the above holds the vector index 1 CPU · 1 GiB · shared node no models of its own PDF the PNG comes back to you then you POST it — flagged pages only text to embed · a figure to describe, only if OCR read nothing
Every page is triaged at the edge. Only pages with no usable text layer cross into the region, and only a page OCR cannot read reaches the vision model. Nothing here calls anything else here — the edge hands results back to you, and you decide what to send on. That is what makes the saving yours.

The servers

ServiceWhereHardwareModels
liteparse-spin Akamai Functions, edge
01cb27a8….fwf.app
WASM sandbox · 128 MiB, 30 s MiniLM-L6-v2 int8, for ?chunk=1 and /v1/embed-text; everything else is pdfium and Rust
liteparse-clip (edge) Akamai Functions, edge
4425cb59….fwf.app
WASM sandbox · 128 MiB, 30 s
99.8 MiB peak
MobileCLIP-S0 vision fp32, mounted not embedded
liteparse-ocr ocr.apps.sasriya.net g6-dedicated-8 · unthrottled CPU · 7 GiB PP-OCRv6 medium det + rec, PP-LCNet textline
liteparse-clip clip.apps.sasriya.net g6-dedicated-8 · 3 CPU · 5 GiB all-MiniLM-L6-v2, MobileCLIP-S0, Florence-2-base — all fp32 ONNX
liteparse-demo edgedoc.apps.sasriya.net shared pool · 1 CPU · 1 GiB none — orchestration and the index

Two things this diagram is honest about

Everything here is CPU. No GPU is involved anywhere. That is the point: the work that survives triage is small enough that ordinary machines finish it, and the numbers on this page are what those machines actually did.

The vision model is shown, and not indexed. Florence-2 names a figure’s shape reliably but invents its subject when the image carries no text — an unlabelled line graph came back as “people who have been diagnosed with cancer”. Its output appears in the pipeline so you can see the routing, and never enters the search index, where a confident fabrication would be indistinguishable from a fact.

Edge Document Intelligence

drop a PDF · watch where the work goes · search what came out

has text — spared no text — needs a model not read yet
Drop a PDFor click to choose
Chunk by

Pipeline

This run

Every question, after that

What the flagged pages would cost

Failed

— every square is a page · click one to open it
—

less model work

Without triage —
With triage —

Text index — 384-d · passages and OCR’d pages

Index a document, then ask it something.

Visual index — 512-d · figures by appearance

—