All services

RAG Pipelines

Search that actually understands.

Retrieval-Augmented Generation at production scale.

95%+
Retrieval accuracy
< 2s
End-to-end latency
5+
RAG systems in production
0
Ungrounded hallucinations
A corridor of compact rolling shelving in a records archive

Overview

RAG lets LLMs answer questions grounded in your documents — without hallucinating facts from training data. We build RAG pipelines for enterprise knowledge bases, classified document corpora, legal and medical libraries, and product catalogs. Retrieval accuracy is measured and benchmarked. Hallucination is not acceptable in production.

The Problem

Basic RAG implementations work in demos and break in production. Fixed chunk sizes miss context. Naive embedding similarity returns irrelevant results. Response latency is too high. The model hallucinates when retrieved context is insufficient. These problems are solvable with good engineering — but require careful benchmarking and iteration.

Our approach

We evaluate multiple chunking strategies, embedding models, and retrieval approaches (dense, sparse, hybrid) against your specific document corpus. We benchmark retrieval accuracy before connecting an LLM. We add re-ranking, query reformulation, and fallback handling for low-confidence retrievals. pgvector for on-premise vector storage. MLflow to track retrieval experiments.

Deliverables

  • Document ingestion pipeline
  • Embedding and vector storage (pgvector)
  • Retrieval benchmarking
  • Re-ranking and query optimisation
  • LLM grounding and citation
  • On-premise or cloud deployment

Tech stack

LangChainpgvectorPostgreSQLOpenAI EmbeddingsSentence TransformersFastAPIMLflowDockerPython

How it runs

What "grounded" actually means.

A retrieval pipeline is judged on four measurable things, in this order. Most of the accuracy is won or lost in the first two, long before a model is chosen.

01 · ingest

Ingest and chunk

Documents are parsed, sectioned and chunked at a size chosen by benchmark, not by default — this is where most retrieval accuracy is decided.

02 · embed

Embed and index

Chunks are embedded and written to a vector index, with the source document and page kept alongside every vector.

03 · retrieve

Retrieve and re-rank

The top-k candidates for a question are re-ranked, and the ones that do not clear the threshold are dropped rather than padded.

04 · ground

Answer, or decline

The model answers from the retrieved passages and cites them. Where the corpus does not support an answer, the correct output is that it does not.

A schematic of the retrieval pipeline. Chunk sizes, embedding models and thresholds are benchmarked per corpus — the numbers are not transferable between engagements.

In practice

The corpus decides the architecture

Retrieval inherits the sensitivity of whatever it indexes. An embedding derived from a classified document is a derivative of that document, so on a controlled corpus the index cannot be built through a hosted embedding endpoint — the vectors are generated on the same hardware that serves them. MINERVA was built that way: Llama 3 70B quantised to GGUF, retrieval on pgvector, nothing leaving the premises. The rule applied everywhere else is the same one. If the record cannot leave the country, neither can the prompt containing it, nor the vector derived from it.

Retrieval is measured before a model is attached

Retrieval is scored before an LLM is connected to anything, against a question set written by the people who will actually use the system rather than by us — the step most pipelines skip, because writing that set is slower than swapping an embedding model. Every configuration is a tracked run with its result recorded, so the shipped stack is a decision you can audit rather than a preference we defend. Generation is judged separately and afterwards, on one question: does the cited passage actually support the sentence attached to it. MINERVA reached 94% extraction accuracy on a classified corpus and cut document processing from three days to eight minutes.

Where retrieval fails, and how that is caught

The common failures are not exotic. Two revisions of the same policy sit in the index and the superseded one retrieves better. A table is split across chunks and the total goes missing. An acronym means two different things in two different directorates. A document is ingested but the rebuild has not run. Each has a guard: supersession modelled in metadata rather than inferred from filenames, a confidence floor below which the system lists the nearest documents instead of composing an answer, and a regression set re-run on every index rebuild.

Updating an index with no route in

On an air-gapped installation the index is a maintenance object, not a fixed asset. Model and index updates arrive signed, on controlled media, and no inbound network path is opened for convenience — we test with the interface physically down rather than merely firewalled. The rebuild is a documented procedure your own staff execute: ingest, verify checksums, re-run the regression set, promote. Ingestion code, embedding configuration, schema and the evaluation set are yours at handover, so the corpus can be re-indexed years later without us in the room.

Where this has run

MINERVA

Sovereign document intelligence over a classified corpus — Llama 3 70B quantised to GGUF, retrieval on pgvector, no data leaving the premises.

Brief to production in 75 days. Document processing cut from three days to eight minutes, at 94% extraction accuracy.

Artikate [iQ]

One retrieval engine over a controlled corpus, serving a classroom, an examination candidate, a corporate training function and an operational crew — pgvector and Pinecone, with Whisper ASR and neural TTS for a voice-native interface.

The operational edition is a live platform awaiting deployment approval. Between editions the corpus and the interface change; the machinery does not.

eCLERK

Natural-language document and workflow automation — dictation and paperwork turned into formatted output.

Live in production, at product acceptance.

Questions

What buyers ask about this specifically.