Skip to content
Olimjon Akhmadjonov
All work

Case study · NDA — details on request · illustrative example

Internal knowledge assistant for a logistics company

A retrieval-augmented assistant that answers staff questions from 4,000+ internal documents with citations — cutting support tickets by a third.

Client
Logistics company (Uzbekistan), 300+ employees
Role
Lead engineer — architecture, backend, LLM pipeline
Timeline
10 weeks
Stack
PythonFastAPIPostgreSQL + pgvectorAnthropic APIReactDocker

Problem

Operations staff spent hours each week searching SOPs, contracts and policy documents spread across shared drives and a legacy wiki. Answers were inconsistent, and the internal support desk was buried in repetitive questions.

The company needed a single place to ask questions in Russian and Uzbek and get reliable, sourced answers — without exposing documents outside the company network.

Approach & architecture

  • Designed an ingestion pipeline that normalises DOCX/PDF/HTML sources, chunks by document structure, and stores embeddings in PostgreSQL with pgvector — no extra infrastructure to operate.
  • Built hybrid retrieval (vector + keyword) with reranking, and a strict answer prompt that cites the exact passages used and refuses when confidence is low.
  • Shipped a small React chat UI integrated with the company's SSO, plus an admin view for re-indexing and reviewing low-rated answers.

Result

  • Support tickets on policy/procedure questions dropped ~35% within two months.
  • Median answer time under 3 seconds; 92% of sampled answers rated correct, with accurate citations.
  • Runs on a single VM inside the corporate network; documents never leave it.

What made it robust

  • Evaluation set of 180 question/answer pairs run on every change to the prompt or retriever.
  • Role-based document access enforced at retrieval time, not just in the UI.
  • Structured logs and per-question cost tracking; handover with a runbook and architecture doc.

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