RAG SystemsStatus: Case StudyYear: 2026
DocuMind
Document extraction where every value points to the region of the page it came from.
- Python
- FastAPI
- Celery
A look inside
4 screens from the real build. Select any to see it full size.
Overview
A document AI pipeline that parses pages into verified blocks, extracts fields against your own schema, and cites every value back to the exact region of the page.
Extraction models return confident values with no way to see where they came from, so reviewers end up re-reading the whole document.
What I built
Built the pipeline end to end: parsing and verification, schema-based extraction, the review flow, and the Next.js interface.
What it does
- Layout parsing with page coordinates
- Block verification
- Schema-based field extraction
- Human review with region citations
- Visual retrieval with ColQwen2
System and architecture
DocuMind parses each page into layout blocks, checks each block against the original, extracts fields against a user-defined JSON schema, and links every value to its source region for human review.
FastAPI accepts documents and Celery workers process them. Docling turns each page into blocks with coordinates, and a verifier re-renders every block and compares it with the original crop using SSIM, layout overlap and CLIP similarity. Fields are extracted against a JSON schema with validators, each linked to its source block. ColQwen2 page embeddings in Qdrant handle visual retrieval across documents.
- Interface
- API & services
- Retrieval & data
- AI & models
- Block-level verification against the source page
- Schema-based extraction with validators and source links
- Reviewer decisions stored apart from model output
Technology
Themes
Challenges and trade-offs
- Making confidence honest: uncalibrated scores are labelled as uncalibrated.
- Keeping reviewer corrections separate from the original machine output.
Outcome
Docling · Block verifier · Schema extraction · Region citations
- Every extracted value can be traced to a region of the page.
- Blocks that don't match the source are flagged for review instead of passed through.
Learnings
- A citation is only useful if it points to a region a person can check.
- Comparing output against the source catches errors an extractor will not admit.
See it for yourself.
Links open in a new tab.