Skip to content
Olimjon Akhmadjonov
All work

Case study

Offline document intelligence for Uzbek-language archives

A fully local RAG system for long Uzbek PDFs — Latin or Cyrillic, including scans — that answers questions with page citations and generates insights, without a byte of data leaving the machine.

Client
Confidential document workflows (R&D prototype)
Role
Research & engineering — model selection, pipeline, evaluation, UI
Timeline
Research → working prototype
Stack
PythonFastAPIDoclingTesseract OCRBGE-M3QdrantLocal LLMReactTypeScript

Problem

Uzbek is a low-resource language: documents mix Latin and Cyrillic script, apostrophes are inconsistent and many files are scans. Off-the-shelf RAG tools retrieve poorly, and cloud models were not an option for confidential documents.

Approach & architecture

  • Researched before building: eight findings documents on model choice, Uzbek language support, ingestion and retrieval, plus a live bake-off of local models.
  • Layout-aware ingestion with OCR for scans, followed by Uzbek normalisation — apostrophe repair, Unicode normalisation and Cyrillic-to-Latin transliteration.
  • Hybrid dense and sparse retrieval with rank fusion and a reranker; a topic gate refuses questions the document does not cover; follow-ups are rewritten into standalone queries.
  • Everything runs on one laptop within a planned memory budget: a quantised local LLM, the vector store in a container and a React UI with a side-by-side PDF viewer.

Result

  • Hit@10 of 0.96 on a 30-question Uzbek golden set.
  • Streaming answers with page citations, per-document summaries and insights, and a library mode that searches across all documents.

What made it robust

  • Golden and follow-up evaluation sets with stored model-comparison reports, so model changes are measured rather than guessed.
  • An implementation plan with phases, a memory budget and a risk register; phases 0–5 completed.
  • Automated tests over normalisation, retrieval and the API.

Have a similar problem?

Tell me about it — I'll reply with an honest view of scope, approach and what a first milestone could look like.

Start a project

Tell me about it — a few sentences is enough.

I reply within 1–2 business days. Prefer email? oakhmadjonov.uz@gmail.com