Grounded · cited · permission-aware

Answers from your documents, with the source attached.

Retrieval-augmented generation is the unglamorous name for something straightforward: before the model answers, the system finds the passages in your own material that bear on the question, and requires the answer to come from those. What you get back is checkable.

The value is not that it sounds knowledgeable. It is that every claim points at a document you can open. When an answer is wrong, you can see exactly which passage misled it and fix the passage — which is a far better position than arguing with a model's memory.

Drag your cursor over the panel
indexed 0retrieved 0move to query
SourceYour documents
Every answerCited
AccessPermission-aware
UnknownsAdmitted

Three options

Ways to give a model your knowledge

There are only three, and the differences in cost, freshness and traceability are large enough that picking wrong is expensive.

Fine-tuning gets proposed far more often than it should be. It teaches a model a style or a format well and facts poorly, and every time your content changes you are back where you started.

Built in

The model's own memory

Whatever it absorbed during training. Broad, frozen at a date, impossible to attribute, and it has never seen a single internal document of yours.

Fails atAnything specific to your business, anything recent, and anything that needs a source.

Retraining

Fine-tuning

Adjusting the model's weights on your examples. Effective for teaching tone, structure and classification. Poor at teaching facts, and stale the moment a document changes.

Fails atFreshness and citation. Updating means another training run.

Retrieval

RAG

Find the relevant passages at question time and require the answer to be built from them. Update a document and the next answer reflects it immediately.

Good atFresh, attributable, permission-aware answers over content that keeps changing.

Interactive

The chunking lab

Before anything can be retrieved it has to be cut into pieces. How you cut is the single most consequential decision in the whole system, and it is the one most often made by accepting a default.

Drag the size slider and switch the strategy. Fixed-length splitting severs sentences mid-clause — amber blocks show where. A chunk that ends halfway through a condition is worse than useless: it retrieves confidently and answers with half a rule.

chunks average size

The stack

Search infrastructure, with a model at the end

Most of a knowledge system is a search problem, and search has been engineered for decades. The choices below are made per project — a few thousand documents and a hundred million behave nothing alike.

Embedding & language models

OpenAI embeddings
Anthropic Claude
Hugging Face
Ollama (self-hosted)
LangChain
Python

Vector & keyword index

PostgreSQL + pgvector
Elasticsearch
OpenSearch
Meilisearch
Apache Solr
Redis

Ingestion pipeline

Apache Airflow
Apache Kafka
PDF extraction
Markdown
MinIO object store
Docker

Where the knowledge already lives

Confluence
Notion
Google Drive
Dropbox
Jira
Zendesk

Applications

Six knowledge systems businesses build

Each one starts from the same complaint: the answer exists somewhere in our own material, and finding it takes a person who already knows where to look.

System 1 of 6
01 — Internal

The staff help desk

Policies, procedures and past resolved tickets made answerable, so new team members stop interrupting the person who has been there longest.

  • Answers cite the policy document
  • Respects who may see what
  • Logs what nobody could answer

Best first project for most teams

02 — Customer

Self-serve support

Public documentation and help articles made conversational, with a clean handover to a person the moment confidence drops.

  • Links to the article it used
  • Escalates rather than guessing
  • Reveals gaps in your docs

Deflects the repeat questions

03 — Commercial

Contract and policy lookup

Agreements, terms and coverage documents searchable by question — what notice is required, which clause governs, what is excluded.

  • Quotes the clause verbatim
  • Flags ambiguity instead of resolving it
  • Never a substitute for advice

Finds the clause, does not interpret it

04 — Product

Catalogue and spec search

Customers describing a problem rather than naming a product, matched against specifications, compatibility notes and manuals.

  • Handles descriptive queries
  • Combines keyword and meaning
  • Reflects live stock and pricing

For catalogues too large to browse

05 — Research

The reference library

Reports, studies and archives made queryable, with passages surfaced rather than documents, so nobody skims forty pages for one paragraph.

  • Returns the passage, not the file
  • Compares across sources
  • Shows when sources disagree

For archives nobody has time to read

06 — Operations

Field and technical manuals

Equipment documentation, service histories and troubleshooting guides answerable from a phone by someone standing in front of the machine.

  • Works on mobile, works offline-first
  • Model and serial aware
  • Cites the manual page

Where the answer is needed on site

Interactive

Watch a question get answered

Three questions against the same imaginary company handbook. Pick one and see what was retrieved, what scored too low to use, and how the answer is assembled from what survived.

The third question is the important one. Nothing in the source material answers it, and the correct behaviour is to say so rather than to produce something plausible. A system that cannot decline is a system you cannot trust on the questions that matter.

Retrieved passages
Grounded answer

Honesty

Why retrieval systems disappoint

When one of these underperforms, the cause is almost never the model. It is one of the following, and all of them are addressable.

01

The chunking was arbitrary

Split by character count with no regard for structure, so half the pieces begin mid-thought and end mid-condition. The lab above shows what that looks like.

02

No reranking step

Vector similarity is a coarse first pass. Without a second model reordering the shortlist, the genuinely best passage frequently sits fourth.

03

Meaning search only

Embeddings are poor with part numbers, names and codes. Serious systems run keyword search alongside and merge the results.

04

The index went stale

Documents changed and nothing re-indexed them, so the system answers confidently from a version that was replaced months ago.

05

Tables and PDFs mangled

Scanned documents, multi-column layouts and tables need real extraction work. Naive text pulling turns a pricing table into unusable soup.

06

Your vocabulary is missing

Internal acronyms and product nicknames that appear nowhere in the documents. Queries need expanding before they are matched.

07

Permissions bolted on late

Access filtering has to happen during retrieval, not after. Retrofitting it is difficult and the failure mode is showing someone a document they should not see.

08

No threshold to decline

If nothing relevant is found, the system must say so. Without a floor on relevance it will answer from weak matches and sound certain doing it.

09

The content is the problem

Sometimes the documentation genuinely does not contain the answer, is contradictory, or was never written. No retrieval system fixes that.

Scope

What a knowledge system build includes

Roughly two thirds of the work happens before a model is called at all.

01

Content audit

Finding where the knowledge actually lives, what is current, what contradicts what, and what will need writing before anything can answer from it.

02

Extraction

Getting clean text out of PDFs, wikis, ticket systems and shared drives — including the awkward ones with tables, scans and multiple columns.

03

Chunking strategy

Boundaries that follow the structure of your documents, tuned against real questions rather than accepted from a default.

04

Hybrid index

Vector and keyword search together, with a reranking pass, because neither approach alone is good enough on real business content.

05

Permission model

Access checks applied during retrieval so results are filtered before they are ever assembled into an answer.

06

Grounding and citation

Answers constrained to the retrieved passages, with citations verified to point at material that was genuinely used.

07

Refresh pipeline

Re-indexing when documents change, on a schedule or by event, with visibility into what is current and what has drifted.

08

Evaluation set

Real questions with known good passages, so retrieval quality is a measurement rather than an impression.

09

The gap report

Logging what people asked that nothing could answer. This is frequently the most valuable output of the whole project.

Questions

RAG and knowledge systems, answered

What does RAG actually stand for?

Retrieval-augmented generation. The system retrieves relevant passages from your content first, then asks the model to generate an answer using only those passages.

The name is unhelpful. The idea is simple: look it up before answering, and show your working.

How is this different from search?

Search returns documents and leaves the reading to you. This returns an answer assembled from the relevant passages, with links to them.

Underneath, it is search — which is why the quality of the retrieval matters far more than which model writes the final sentence.

How many documents do we need?

Fewer than most people expect. A few hundred pages of genuinely useful, current material outperforms tens of thousands of pages of duplicated drafts.

Quality and currency beat volume comfortably. If three versions of a policy exist and nobody knows which is live, that is the first problem to solve.

What if the answer isn't in our documents?

It should say so. A relevance threshold means weak matches produce "I could not find this" rather than an invented answer, and the question gets logged.

That log is genuinely valuable. It tells you exactly which documentation is missing, ranked by how often people need it.

Can it respect who is allowed to see what?

Yes, and it must. Permission filtering is applied during retrieval, so a passage someone cannot access is never a candidate for their answer in the first place.

Getting this right is design work, not a setting, and it needs to be in the plan from the start.

What happens when our documents change?

A refresh pipeline re-indexes changed material — on a schedule, or triggered when something is edited. The next question reflects the new version.

This is the main practical advantage over fine-tuning, where a change means another training run.

Will it work with our PDFs and our wiki?

Usually. PDFs, wikis, shared drives, ticket systems and databases are all normal sources. Scanned documents and heavy tables need more extraction work, which we assess early because it changes the estimate.

If a source has no API, there is almost always an export route.

How do you know it is any good?

By measuring it. We build a set of real questions with the passages that should be found, then track how often the right passage appears in the results and how often answers stay faithful to them.

Without that set, every change is a guess and "it feels better" is the only available verdict.