Skip to content
All work
Law enforcementDemonstrated2026

Offline answers from 800 documents, in three languages

An air-gapped retrieval system that answers officers' questions from 800+ English, Hindi and Marathi documents, traces every answer to its source, and never touches the internet.

Standing Orderपरिपत्रकआदेशOffline index800+ documents, 3 languages

The situation

A police force holds thousands of pages of orders, circulars and procedures across three languages. Finding the clause that applies usually means asking someone who happens to remember it — and none of this material can be sent to a cloud API.

Constraints we designed around

  • Documents mix English, Hindi and Marathi, often within the same file.
  • Data cannot leave the premises, so every model has to run locally.
  • An officer needs the source passage, not a confident paraphrase.

What we built

Hybrid retrieval

Keyword search (BM25) and semantic search (BGE-M3 embeddings in Qdrant) run side by side, so exact section numbers and loosely worded questions both land on the right passage.

Reranking before generation

A cross-encoder reranker reorders candidates before anything reaches the model. This step is where most of the accuracy comes from.

A local language model

An open-weight Qwen2.5 model writes the answer on a single GPU and cites the passages it used, in the language the question was asked in.

One-command deployment

FastAPI backend, React interface and every model ship as one Docker Compose stack that starts on a machine with no network connection.

Deployment

Fully air-gapped. One GPU server (L40S class). No outbound network calls.

Outcomes

documents in a single index
800+
documents in a single index
languages, mixed freely
3
languages, mixed freely
calls to external services
0
calls to external services

Demonstrated to the department; now being developed into a full application.

Stack

  • BM25S
  • Qdrant
  • BGE-M3
  • BGE-Reranker-v2-m3
  • Qwen2.5
  • LangChain
  • FastAPI
  • React
  • Docker Compose

Next case study

Broker WhatsApp chatter, turned into a clean listings table

Bring us thetwo-day process.

In one call we'll tell you whether AI can do it reliably, how we would test that, and what a first version would take. No slideware.