AI Automation

RAG Development Services: AI Answers From Your Own Documents

Retrieval-augmented generation means the model answers from your documents rather than from memory. Done properly it cites its sources, says when it does not know, and never shows someone a document they are not allowed to read.

Discuss your project

What we build

Internal knowledge assistants

Staff ask a question in plain language and get an answer drawn from your policies, procedures, and wikis, with links to the paragraphs it came from. Replaces searching four systems and asking a colleague.

Support agent assistants

An agent handling a ticket gets the relevant passage from your documentation and from similar resolved cases, without leaving the helpdesk.

Customer-facing answer systems

Grounded in your public documentation only. The boundary between public and internal content is enforced at retrieval, not by instructing the model to be careful.

Technical and engineering search

Across runbooks, architecture decisions, incident write-ups, and code comments — the institutional memory that otherwise leaves when people do.

Contract and policy interrogation

Questions across a corpus of agreements. Useful precisely because it cites clauses, so a person can verify the answer against the source.

Structured data questions

Where the answer lives in a database rather than a document, the system generates a query, runs it read-only, and shows the query alongside the answer.

Sources we connect

Incremental sync rather than a one-off import, so answers reflect the current document and not the version indexed at launch.

  • Confluence and Jira, including page restrictions and space permissions.
  • SharePoint and OneDrive, respecting site and library permissions.
  • Notion, Google Drive and Docs, Dropbox, and Box.
  • Slack and Microsoft Teams message history, where you decide channel by channel what is in scope.
  • Your helpdesk's own knowledge base and resolved tickets.
  • File shares, including the folder of PDFs nobody has reorganised since 2019.
  • Your own databases and applications, for the questions documents cannot answer.
  • Public documentation sites, crawled on a schedule.

Access control, which most implementations get wrong

The failure mode of a careless RAG system is specific and serious: documents from several sources are embedded into one index, permissions are lost at ingestion, and the assistant cheerfully quotes the salary review or the redundancy plan to whoever asks the right question. The content was always restricted. The search over it was not.

We carry each document's permissions into the index as metadata and filter at retrieval time, against the identity of the person asking. A passage the user cannot read is not retrieved, so it cannot be quoted, summarised, or paraphrased. The model is never given content the asker is not entitled to, which is the only defensible design — instructing a model not to reveal something it has been shown is not access control.

Permissions change, so the sync keeps them current: a document reclassified or a user removed from a group takes effect on the next sync, and we set that interval against how sensitive the corpus is. We also log every query and every document retrieved, which is usually a requirement for internal audit and is invariably the first thing a security review asks for.

How it works

  1. 01

    Ingest and chunk

    Documents are split into passages that preserve meaning — by section and heading rather than every fixed number of characters, which is what cuts a table in half or separates a clause from its condition. Chunking quality determines answer quality more than model choice does.

  2. 02

    Index

    Embeddings in a vector store, usually alongside conventional keyword search. Hybrid retrieval beats either alone, because semantic search is weak on exact identifiers — a part number or an error code — and keyword search is weak on paraphrase.

  3. 03

    Retrieve and rerank

    A question pulls candidate passages, filtered by the asker's permissions, then reranked so the best few are what the model sees. Giving a model twenty mediocre passages produces a worse answer than giving it three good ones.

  4. 04

    Generate with citations

    The answer is constructed only from retrieved passages, each statement linked to its source. A user can click through and check, which is what makes the output trustworthy rather than merely fluent.

  5. 05

    Refuse when the corpus is silent

    If retrieval finds nothing relevant, the system says it does not know and points to how to ask a human. This is a deliberate design decision and the single most important one for whether people keep using it.

RAG or fine-tuning

These solve different problems and are frequently confused. The short version: RAG changes what the model knows, fine-tuning changes how it behaves.

RAGFine-tuning
Best forFacts from your documentsTone, format, a specialised task
New or changed documentsAvailable on the next syncNeeds retraining
CitationsYes, inherent to the designNo, the knowledge is diffuse
Respects per-user permissionsYes, filtered at retrievalNo, baked into weights
Upfront costModerateHigher
Cost per questionHigher, retrieval plus a longer promptLower
Removing a document's influenceDelete it from the indexRetrain from scratch

For "answer from our documents", RAG is almost always correct, and fine-tuning for that purpose is a common and expensive mistake. The two combine well: RAG for the facts, a light fine-tune for consistent house style.

Common questions

Tell us what you need

Describe the problem and we will come back with scope, timeline, and a rate. No obligation to proceed.

Get in touch