ATS Global
Enterprise AI · RAG · Knowledge assistants

RAG development that answers from your documents, with citations

A language model on its own knows nothing about your policies, contracts, manuals or tickets — and will answer confidently anyway. Retrieval-augmented generation fixes that by finding the right passages first and making the model answer from them. We build RAG systems that are measured before they are trusted, respect who is allowed to see what, and run where your data is allowed to be.

Appistoki logo
Capgemini logo
Careedge Global logo
CES logo
Cignex logo
EngineersMinds logo
Fulcrum logo
IGT Solutions logo
InfoBeans logo
ITC logo
Knowarth logo
Larsen & Toubro logo
Lister logo
Ness logo
NetSol logo
PodEngine logo
Raising logo
Sharp logo
Triton logo
Wego logo
Wipro logo
Xebia logo
68 %faster knowledge retrieval with grounded assistants over document repositories
60 %fewer policy and procedure queries reaching human teams
200k+engineering documents indexed with metadata and permissions on one platform (EIL)
hrs → secdocument retrieval time once a corpus is properly indexed and searchable

What a RAG build covers

The six parts of a RAG system, and where each one goes wrong

Every RAG demo works. Every RAG system that fails in production fails at one of these six steps — usually retrieval, rarely the model. We build each one deliberately, in Python on LangGraph or plain code, and measure it on its own before measuring the whole.

Ingestion & parsing

PDFs with tables and scans, Word and Excel, Confluence, SharePoint, Liferay, ERPNext, ticketing tools and databases — parsed with layout awareness (Docling, OCR where needed), de-duplicated, tagged with metadata and synced incrementally.

Chunking & embeddings

Chunk sizes and overlaps chosen per document type, headings and tables kept whole, parent-child chunks for long documents, and embeddings from an open model on your hardware or an API model — chosen by measured retrieval quality, not habit.

Hybrid retrieval & reranking

Vector similarity plus keyword search (BM25) fused and reranked, with metadata filters, query rewriting and multi-query for vague questions — on Qdrant, pgvector, Elasticsearch or Chroma depending on scale and what you already run.

Grounded generation

Prompts that force the answer to come from the retrieved passages, cite them, and say 'not in the documents' when it isn't; streaming responses; conversation memory; Claude, GPT, Gemini or an open model on vLLM or Ollama.

Evaluation & observability

A golden question set built with your experts; context recall, faithfulness and answer relevance scored on every change; traces of every retrieval and generation in production so a wrong answer can be explained and fixed.

Permissions, privacy & guardrails

Document-level access control enforced at retrieval time from your identity provider; PII redaction; prompt-injection and topic guardrails; audit logs; and deployment in your VPC, in-region on Bedrock or Azure, or fully on-premise.

What RAG is

What retrieval-augmented generation is, and when it is the right tool

Retrieval-augmented generation is a simple idea with a lot of engineering underneath: when a user asks a question, search your own content for the passages most likely to contain the answer, hand those passages to a language model together with the question, and have the model answer from them — quoting where it got each point. The model's job shrinks from 'know everything' to 'read these pages and answer', which is a job current models do very well. The knowledge stays in your documents, updates the moment a document changes, and can be shown to the user as a citation.

RAG is the right tool when the answers must be current, traceable and permissioned — policies, product documentation, contracts, engineering standards, support histories, regulatory circulars. It is the wrong tool for teaching a model a style or a format (that is fine-tuning), for reasoning over a handful of documents that fit in the model's context window (just send them), and for questions whose answer is a calculation over structured data (that is a query, and an agent that writes queries is the better fit). Most enterprise assistants end up as RAG at the core with one or both of the others around it, and we say so in the first week rather than after building the wrong one.

The assistant on this website is RAG in its smallest honest form. It answers from our case studies, services and team pages: a scoring function retrieves the four most relevant case studies for each question, they go into the prompt, and a hosted open model answers from them with instructions not to invent prices or timelines. There is no vector database, because for a corpus of a few hundred documents a scored keyword search is faster, cheaper and easier to debug. Retrieval should fit the corpus — that principle, applied to a corpus of two hundred thousand documents, is what the rest of this page is about.

Architecture

The reference architecture we build from, and the choices inside it

The pipeline is the same in every RAG system we build: connectors pull documents from their sources and keep them in sync; a parser turns each into clean text with structure and metadata; a chunker splits it into passages sized for retrieval; an embedding model turns each passage into a vector; an index stores vectors and keywords side by side; at query time a retriever fetches candidates, a reranker orders them, and a generator writes the answer with citations; and an evaluation harness scores every stage. What differs is each choice inside it, and those are made on your data during the pilot, not copied from a tutorial.

Some of the choices that matter most: whether to keep tables and headings whole or split them (keep them, almost always); whether embeddings run on an open model in your environment or on an API (a data-residency decision first, a quality decision second); whether the index is Qdrant, pgvector on the PostgreSQL you already run, Elasticsearch if you already have it, or Chroma for a small deployment; whether a reranker is worth its latency (for most enterprise corpora, yes); and which model generates — Claude, GPT and Gemini through their APIs or in-region on Bedrock and Azure, or Llama, Qwen and Mistral on vLLM or Ollama when nothing may leave the building.

  • Connectors — SharePoint, Confluence, Google Drive, S3, Liferay, ERPNext, Jira/ServiceNow, SQL databases, web crawls; incremental sync with deletions honoured
  • Parsing — Docling for layout-aware PDF and Office parsing, OCR for scans, table extraction, language detection
  • Indexing — hybrid vector + BM25, metadata filters, per-document ACLs stored with the chunks
  • Retrieval — query rewriting, multi-query, reranking, parent-chunk expansion, source diversity
  • Generation — grounded prompting, citations, refusal when unsupported, streaming, conversation memory
  • Operations — evaluation harness, tracing, feedback capture, cost and latency dashboards, re-indexing jobs

Retrieval quality

Why retrieval decides the quality, and how we measure it

When a RAG assistant gives a wrong answer, the model is usually blameless: the right passage was never retrieved, or it was retrieved along with six irrelevant ones and lost in the middle. So we treat retrieval as the product. Before the model is even connected we build a golden set with your subject-matter experts — a few hundred real questions with the documents and passages that answer them — and score retrieval on it: is the right passage in the top five, the top ten, at all? Every change to chunking, embeddings, filters or reranking is measured against that set, and the numbers go in the weekly report.

Only then do we measure the whole system: faithfulness (is every claim in the answer supported by a retrieved passage?), answer relevance (does it actually answer the question?) and context precision (how much of what was retrieved was needed?). We use an LLM judge for scale and human review for the cases that matter — regulatory answers, anything customer-facing — and we keep the golden set alive after go-live, adding the questions users actually ask and the ones the assistant got wrong. A RAG system without an evaluation set is a demo; the set is what turns it into something a compliance team will sign off.

In production, every question, retrieved passage, prompt and answer is traced, so when a user reports a bad answer we can see in seconds whether it was a parsing gap, a retrieval miss, a permission filter or the model — and fix that, not guess.

Permissions & privacy

Answering only from what this user is allowed to see, where the data is allowed to be

The first question a bank, hospital or government department asks about a RAG assistant is not accuracy but leakage: will it quote an HR document to someone who cannot open it? The answer has to be enforced at retrieval, not by asking the model to be discreet. We store each document's access list with its chunks, resolve the user's groups from your identity provider (Entra ID, Okta, Keycloak, LDAP) at query time, and filter the index before the model sees anything. Permission changes at the source propagate on the next sync, and the audit log records which passages were shown to whom.

Where the system runs is the second question. Our default for regulated clients is a deployment inside your cloud account or data centre — embeddings and the vector index on your infrastructure, and generation either on an open model served by vLLM or Ollama on your GPUs, or through an in-region managed endpoint such as Amazon Bedrock or Azure OpenAI with no training on your data. For Indian clients that keeps the corpus inside the country and inside the controls you already have for the Digital Personal Data Protection Act and sector regulators; for our GCC clients it keeps it in-Kingdom or in-country. PII redaction before indexing, prompt-injection guardrails on user input and on retrieved content, and topic restrictions on output are configured per deployment, not bolted on later.

Much of this work is the same data and permissions engineering we have done on document platforms for years. Engineers India Limited's 200,000-document engineering repository, with metadata classification, role-based access aligned to project hierarchies and Elasticsearch search that turned hours of retrieval into seconds, is exactly the kind of corpus a RAG assistant sits on top of — and the metadata and access model are most of the work.

Timeline & cost

How long a RAG project takes, and what drives the cost

As a guide from our engagements: a two-week discovery produces the use case, the source inventory, the golden question set and a costed plan; a pilot on one corpus and one user group takes four to six weeks and ends with measured retrieval and answer quality you can compare against the bar you set; and production — all sources, permissions, integration into the channel users live in (a portal, Teams, Slack, your app), monitoring and hand-over — is typically three to four months from kick-off. Adding sources or user groups afterwards is incremental work, because the pipeline is built for it.

Five things set the cost. The number and messiness of the sources — a clean SharePoint is one thing, twenty years of scanned PDFs another; the permission model, because per-document ACLs from three identity sources are real work; the quality bar and the languages it must hold in, which decide how much evaluation and tuning is needed; the hosting choice, where API models are cheap to start and self-hosted GPUs are cheaper at volume and mandatory for some data; and the integration surface — a chat box is quick, a copilot inside an existing workflow is not. Running costs are mostly model tokens or GPU hours plus the index, and we give you a per-question estimate during the pilot so the business case is arithmetic rather than hope.

Discovery is a fixed fee, the pilot is a fixed price, and production is a fixed price for the agreed scope with change control. We do not publish a rate card because a RAG system without a source inventory is a guess; tell us what you want it to answer and from what, and we will send a bracket within a week.

Where it lands

What enterprises actually use RAG for

Policy and compliance assistants for banks and insurers — RBI and IRDAI circulars, internal policies and product manuals — that answer branch and operations staff with the clause cited, so the human check is a glance rather than a search. Engineering and standards repositories, where the question is 'which revision of which specification applies to this project' and the answer must be exact. Manufacturing SOPs, quality manuals and maintenance histories on the shop floor, in the language the operators speak. Clinical protocols and formularies for healthcare staff. Support and service desks that answer from resolved tickets and product documentation before a human picks up. And HR and IT self-service inside an intranet, which is where most organisations sensibly start.

In each case the assistant is a front end on the systems you already have — often a Liferay portal or an ERPNext instance we built or maintain — and the best deployments put the answer where the work happens rather than in a separate chat window. When the questions start to need action rather than answers — raise the ticket, draft the reply, run the report — the same retrieval layer becomes the knowledge behind an agent, which is the next page in our enterprise AI practice.

Start with the two-week discovery

You leave with a source inventory, a golden question set built with your experts, a hosting recommendation and a costed pilot plan — whether or not you go ahead with us.

Book a RAG discovery call

Our technology stack

What a production RAG system runs on

Python with LangGraph or plain code for the pipeline, Docling for parsing, Qdrant, pgvector or Elasticsearch for the index, and the model that fits your data-residency rules — API, in-region managed, or self-hosted on vLLM or Ollama.

Python logoPythonLangChain logoLangChainLangGraph logoLangGraphDocling logoDoclingQdrant logoQdrantpgvector logopgvectorElasticsearch logoElasticsearchChroma logoChromaClaude logoClaudeOpenAI logoOpenAIAmazon Bedrock logoAmazon BedrockAzure AI logoAzure AIvLLM logovLLMOllama logoOllama

How we deliver

From a question set to an assistant your compliance team signs off

Five phases, each ending in a number: a golden set, measured retrieval, measured answers, a permissioned production system, and a monthly quality report.

STEP 01

Discover

Use case, source inventory, permission model, golden question set with your experts, hosting decision and a costed plan — two weeks, fixed fee.

STEP 02

Ingest & index

Connectors, parsing and chunking tuned per document type; hybrid index with metadata and ACLs; retrieval scored on the golden set.

STEP 03

Generate & evaluate

Grounded prompting with citations; faithfulness and relevance measured; a pilot group using it on real questions for four to six weeks.

STEP 04

Harden & integrate

Permissions from your identity provider, guardrails, PII handling, audit logs; delivery inside the portal, Teams, Slack or app your users already open.

STEP 05

Operate

Tracing, feedback capture, re-indexing and the golden set kept alive; a monthly quality and cost report under a support retainer.

Case studies

The document, search and analytics platforms our AI work builds on

Document repositories with metadata and permissions, Elasticsearch-backed search and risk-analytics systems — the data and access engineering a retrieval-augmented assistant depends on.

All case studies
Engineering Consulting & Project Management

Engineers India Limited

Engineering Knowledge Repository & Project Document Management. ATS implemented a Liferay DXP-based Document Management System (DMS) with metadata-driven classification, version control, Elasticsearch-powered search, and role-based access control aligned to project hierarchies.

Liferay DXP 7.4Spring BootOracle DBReact

Read case study

Financial Services / Credit Rating

CareEdge Analytics & Advisory

Early Warning System (EWS) for Banking Risk Analytics. ATS Global Techsoft designed and deployed a mission-critical Early Warning System (EWS) on a modern Angular + Spring Boot architecture.

JavaSpring BootAngularReact

Read case study

Public Sector Banking

Bank of Baroda — EWS Migration

Early Warning System Migration & Enhancement for Public Sector Bank. ATS led the complete migration to a Spring Boot + Angular architecture on Liferay DXP 7.4, introducing Angular portlets for dynamic UI, a multi-level maker-checker approval workflow, and predictive analytics modules for real-time financial risk flagging.

Java 11Spring BootAngularLiferay DXP 7.4

Read case study

Central Banking / Financial Regulation

EWS-Plus — Royal Monetary Authority of Bhutan

National Banking Sector Early Warning System for Fraud & Financial Stability Monitoring. ATS built a comprehensive Liferay DXP 7.4 EWS platform featuring Liferay REST service modules for data ingestion, a multi-level Kaleo workflow for indicator data review (maker-checker), custom Elasticsearch integration for real-time indexed search and alerting, an automated notification system (in-app and email), and dynamic Excel reporting.

Liferay DXP 7.4 (Q4 2023)Java 1.8Spring BootGradle

Read case study

IT Services & Consulting

Wipro Limited

Enterprise Digital Experience Platform & Employee Self-Service Portal. ATS Global Techsoft architected and implemented a comprehensive Liferay DXP-based enterprise portal, integrating HR systems, ITSM workflows, and internal communications into a single pane of glass.

Liferay DXP 7.4Spring BootReactOracle DB

Read case study

Government / Cultural Heritage

National Library & Archives (NA) — UAE

National Archives Citizen Access Portal with Secure Onboarding & Request Management. ATS built a secure, two-portal architecture (public-facing External Portal and staff-facing Internal Portal) on Liferay DXP 7.3.

Liferay DXP 7.3JavaMicrosoft SQL ServerSpring MVC

Read case study

FAQs

RAG development — questions we are asked first

What is the difference between RAG and fine-tuning?+

RAG retrieves passages from your documents at question time and has the model answer from them, so knowledge stays current, cited and permissioned. Fine-tuning changes the model's weights to teach it a style, a format or a narrow skill — it is poor at storing facts and cannot cite them. Most enterprise assistants need RAG; a few need a small fine-tune on top for tone or output structure.

How do you stop the assistant making things up?+

By making retrieval good enough that the right passage is nearly always present, prompting the model to answer only from the passages and cite them, instructing it to say when the documents do not cover the question, and measuring faithfulness on a golden question set on every change. In production every answer is traced back to its passages, so a wrong answer can be diagnosed rather than argued about.

Can it run without sending our data to OpenAI or any outside service?+

Yes. Embeddings, the index and generation can all run inside your cloud account or data centre — open models such as Llama, Qwen and Mistral served by vLLM or Ollama on your GPUs. Where a managed model is acceptable, Amazon Bedrock and Azure OpenAI offer in-region endpoints that do not train on your data. The hosting decision is made in discovery against your regulator's requirements.

Which sources can it connect to?+

SharePoint, Confluence, Google Drive, S3 and file shares, Liferay and other portals, ERPNext and other ERPs, Jira and ServiceNow, SQL databases, email archives and websites — through connectors that sync incrementally and honour deletions. Scanned PDFs are handled with OCR and layout-aware parsing so tables and headings survive.

How does it handle permissions?+

Each document's access list is stored with its chunks; at question time the user's groups are resolved from your identity provider and the index is filtered before anything reaches the model. Permission changes at the source propagate on the next sync, and an audit log records which passages were shown to whom. The model is never the enforcement point.

How long does a RAG project take and what does it cost?+

Two weeks of discovery, a four-to-six-week pilot on one corpus, and typically three to four months to a permissioned production system across all sources. Cost is driven by the number and state of the sources, the permission model, the quality bar and languages, the hosting choice and how deeply it integrates into existing tools. Discovery and the pilot are fixed-fee; production is a fixed price for the agreed scope.

Let’s work together

Tell us what it should answer, and from what

Send the questions your teams ask most, the systems the answers live in and where the data is allowed to run — we will come back within a week with a discovery proposal and a bracket for the pilot.