DANYLO PRAVDAHUB
0%
ALL WORK

AI SYSTEMS — ACTIVE DEVELOPMENT —

Assay

Messy documents in, graded data out: read on local GPUs, every field confidence-scored, on a verifiable record.

by

2 min read

Read this with AI

AT A GLANCE

AT A GLANCEASSAY
STATUS
ACTIVE DEVELOPMENT
TIMELINE
2026-07 — 2026-07 · 6 DAYS
LANGUAGES
TypeScript / Python / SQL
CATEGORY
AI SYSTEMS
0%

FIELD ACCURACY

OUTCOME

98.73% field accuracy over 1,361 ground-truth-reconciled documents; a 1,001-document batch on two consumer GPUs with zero failures at cents per thousand pages.

METRICS

0%

M.01FIELD ACCURACY

Over 1,361 ground-truth-reconciled documents, computed from the ledger, not asserted. The count is the corrected one: a 2026-07-27 audit in the product repo found 16 leftover test-account documents had been counted as public corpus. The accuracy figure never moved, because it derives from ground-truth verdicts and no account-owned document ever carried one.

1,001 docs, 0 failures

M.02SCALE BATCH

One recorded batch across both GPUs and all 50 FATURA templates (20 unseen before the run).

413 + 459 docs/hr

M.03THROUGHPUT

Two 12 GB consumer GPUs reading in parallel.

$0–0.0000304

M.04ENERGY PER DOCUMENT

Local-GPU electricity at $0.11/kWh. Cents per thousand pages.

0

M.05LEDGER EVENTS

Append-only, hash-chained; the chain verifies unbroken.

CH.01

The problem

Businesses that run on documents retype them by hand. A small importer keys in around 200 supplier invoices a month: scans and phone photos, several languages, dozens of supplier layouts. The generic document-AI tools do not fix this for her. They are cloud-only and rented. They assert an accuracy number with no method behind it, hide or charge extra for per-field confidence, and keep the data on someone else's servers. A business that wants its own fields, its own languages, and its documents kept on its own machine has nowhere to go.

CH.02

What I built

Assay turns messy documents into checked rows. It reads each document twice, independently, on local graphics hardware, once from the picture of the document and once from the recognized text, and compares the two reads. Every field gets a computed confidence grade. Fields it is sure of pass straight through. Fields that score low, or fail a check like a total that does not add up or a date that will not parse, are held back and sent to a keyboard-first review bench where a person fixes them in one keystroke. Every read, check, correction, and export is written to an append-only, hash-chained record that cannot be quietly edited. The documents never leave the machine.

CH.03

How it works

The reading runs on two 12 GB consumer GPUs (an RTX 3080 Ti and an RTX 4070) through a queue-polling worker. The web app and its thin API sit on Vercel and never call out to the PC. The worker polls for jobs. Extraction is a local Qwen3-VL model under llama.cpp, constrained to the field schema, with RapidOCR grounding the second read and supplying per-line confidence. The grade on each field is a logistic model calibrated on the ledger's own ground-truth corrections, not a raw model score. Hard gates fail closed: a field that fails grounding or a business rule cannot reach an export. One JSON schema is the single source of truth for both the web validators and the worker prompt, so the two halves cannot drift apart.

CH.04

Results

One recorded batch put 1,001 documents across both GPUs with zero failures, covering every one of the 50 FATURA templates, 20 of them never seen before the run. Field accuracy was 98.73% over 1,361 ground-truth-reconciled documents, computed from the register rather than asserted. The two cards read 413 and 459 documents an hour. Each document cost between $0.0000139 and $0.0000304 of local electricity, cents per thousand pages. The record now holds 22,744 hash-chained events and the chain verifies unbroken. Auto-accepted fields ran 99.9% accurate against 96.3% for the flagged ones, so the confidence grade earns the routing it drives.

FROM THE OPERATOR'S SCREEN

The landing autoplays the real machine reading a document, step by step, from a recorded run.
The landing autoplays the real machine reading a document, step by step, from a recorded run.
Every field carries a confidence grade; touch one and a line points to the exact spot it was read.
Every field carries a confidence grade; touch one and a line points to the exact spot it was read.
The register: an append-only, hash-chained record of every read, check, and correction. Chain unbroken.
The register: an append-only, hash-chained record of every read, check, and correction. Chain unbroken.

STACK

LANGTypeScriptPythonSQL
FXNext.jsReactllama.cppRapidOCR
INFRAVercelNeon PostgresVercel BlobLocal dual-GPU worker (RTX 3080 Ti + RTX 4070)
AIQwen3-VL-8B-Instruct (GGUF, local)Schema-constrained JSON extractionCross-read + logprob confidence, calibrated logistic model

SKILLS DEMONSTRATED

Local-GPU model serving (llama.cpp + Qwen3-VL) · Schema-constrained LLM extraction · Per-field confidence calibration from ground-truth data · Fail-closed validation and human-in-the-loop routing · Append-only, hash-chained audit ledger · Full-stack Next.js on Vercel with a polling GPU worker · Measured accuracy and cost methodology

NAVIGATE

⌘K to toggle · ESC to close