RAG Chatbot Development Company: How to Choose One (and When to Skip RAG)
What a RAG chatbot development company should build, what it costs to run, the 12 questions to ask before signing - and when RAG is the wrong tool.
Long Nguyen
Lập trình viên Fullstack · Kỹ sư AI · Nhà nghiên cứu
Search for a RAG chatbot development company and you get a page of agencies that all describe the same thing: upload your documents, get an AI assistant. The demo always works. The pilot usually does too, on the twenty pages they indexed. What breaks is month three, when someone asks about invoice INV-20418 and the assistant confidently answers from a superseded policy document.
This is a buyer's guide written from the build side. It covers what the deliverable actually is, the retrieval decisions that decide whether it works, what drives the monthly bill, the questions that separate a real engineering vendor from a wrapper shop — and the cases where the right vendor should talk you out of RAG entirely.
What a RAG chatbot development company actually builds
The deliverable is not a chatbot. It is a retrieval pipeline with a chat interface bolted on the end, and roughly 80% of the engineering sits upstream of the model. If a proposal only describes the chat widget, you are being quoted for the smallest part of the job.
| Stage | What it does | What happens when a vendor skips it |
|---|---|---|
| Ingestion and connectors | Pulls documents from Drive, SharePoint, Notion, a CMS, a shared drive | Manual uploads forever; the index is stale the week after launch |
| Parsing | Turns PDFs, DOCX, spreadsheets and scans into clean text with structure preserved | Tables flatten into word soup; the assistant misreads every price list |
| Chunking | Splits documents into retrievable units at sensible boundaries | Answers get cut off mid-clause, or chunks arrive without the context that identifies them |
| Indexing | Builds both vector embeddings and a lexical (BM25) index | Exact identifiers — SKUs, error codes, contract numbers — become unfindable |
| Retrieval | Hybrid search, fusion, then reranking down to what enters the prompt | The right chunk is retrieved at rank 40 and never seen by the model |
| Generation | Prompt, citation rendering, and an explicit refusal path | The assistant invents an answer rather than saying it does not know |
| Permissions | Filters candidates by the asking user's access rights, at query time | A salesperson asks a question and gets a line from the HR file |
| Evaluation | A fixed question set with known-correct sources, scored on every change | Nobody can tell whether last week's prompt tweak helped or hurt |
| Operations | Re-indexing on document change, monitoring, cost ceilings | Quality decays quietly and the first person to notice is a customer |
Ask any shortlisted vendor to walk you through all nine. The ones who have shipped this before will have opinions about chunking and permissions. The ones who have not will steer the conversation back to the model they use.
The first thing a good vendor does is try to talk you out of RAG
RAG is a workaround for one specific constraint: you have more knowledge than fits in the model's context window, and it changes. If that is not your situation, retrieval adds cost, latency and a new failure mode for no benefit. A vendor whose only product is RAG will never tell you this.
| What your data looks like | What actually fits | Why |
|---|---|---|
| Live structured records — orders, stock, prices, bookings, tickets | Function / tool calling against your database or API | The answer must be current to the second. An embedded copy of your catalogue is a snapshot that starts going stale on day one |
| A stable corpus under roughly 500 pages | Put the whole thing in the prompt, with prompt caching | No retrieval step means no retrieval failures. Anthropic puts the threshold at about 200,000 tokens |
| Large, frequently changing document sets | RAG, properly built | This is the case RAG was designed for |
| Wrong tone, wrong format, wrong behaviour | Prompt engineering first; fine-tuning only if that fails | Fine-tuning teaches style, not facts. Fine-tuning to inject knowledge is the most expensive way to get a confident wrong answer |
| A mix of the above | An agent where retrieval is one tool among several | Let the model choose between querying the database and searching documents, per question |
A concrete example from our own site: the assistant on netalith.com answers questions about services, blog posts and products, and it has no vector store at all. It calls functions that query the live database, because prices and article lists are structured data that change. Nothing can go stale and nothing can be retrieved out of date. We would have shipped a worse product by embedding all of it — and it would have cost more to run.
So the useful filter when you compare proposals is not who promises the highest accuracy. It is who asks to see a sample of your documents and the twenty questions users will actually ask, before quoting an architecture. That is what our AI development service scopes in the first conversation, and it is the step that decides whether the rest of the project is worth doing.
The retrieval stack that separates a demo from production
When a RAG chatbot gives a wrong answer, the model is almost never the cause. The correct passage was not in the context window. Three fixes address that, and the order matters more than the brand of any component.
1. Hybrid retrieval: dense plus lexical
Embeddings match meaning and fumble exactness. Ask for error code TS-999 and a pure vector search returns a pleasant essay about error codes in general. BM25, the lexical ranking function behind classic search engines, does the opposite: precise on rare tokens, blind to paraphrase. Production systems run both and fuse the results. Your users will test the system on an identifier in the first week, so this is not an optional refinement.
2. Context attached to chunks before indexing
A chunk reading the allowance increased by 15% from the start of the quarter is useless on its own — which allowance, which quarter, which policy version? The fix is to prepend a short generated description that situates the chunk in its parent document before embedding it:
Raw chunk:
"The allowance increased by 15% from the start of the quarter."
Contextualised chunk:
"From the 2026 Vietnam employee handbook, section 4.2 on remote-work
stipends, revised March 2026. The allowance increased by 15% from the
start of the quarter."It is a one-time preprocessing cost, and it is small: with prompt caching, Anthropic reports about $1.02 per million document tokens to generate that context.
3. Reranking
Retrieve broadly and cheaply, then rerank aggressively. Anthropic's published tests retrieved the top 150 candidates, reranked, and passed the top 20 into the prompt.
The numbers from Anthropic's contextual retrieval research are worth reading as an ordering of priorities. Measured as the share of relevant passages missing from the top 20 results, contextual embeddings alone cut failures by 35%; adding contextual BM25 took it to 49%; adding reranking reached 67%, moving the failure rate from 5.7% to 1.9%.
Two pieces of interpretation that the headline numbers do not carry. First, those are results on their test corpora — your mileage depends on your documents, and the only way to know is an eval set built from your own questions. Second, and more useful commercially: every one of those gains came from the retrieval layer, none from changing the model. When a vendor's answer to accuracy problems is a more expensive model, they are skipping the part that would have worked.
What a RAG chatbot costs to build, and what it costs to run
Build cost is quoted per scope and varies with the number of source systems, document formats and permission rules. The number buyers consistently fail to ask for is the second one: the monthly running cost, at their real question volume.
| Running cost driver | What moves it | Typical mistake |
|---|---|---|
| LLM tokens per answer | Retrieved context dominates. Twenty chunks of 800 tokens is roughly 16,000 input tokens per question, before the conversation history | Budgeting on question length. The question is 20 tokens; the context is three orders of magnitude bigger |
| Embedding and re-embedding | Corpus size, plus how often documents change. A re-chunking decision re-embeds everything | Treating the initial index as a one-off cost |
| Vector store | Managed service versus pgvector on the database you already run | Paying for a dedicated vector database at a corpus size where a Postgres extension would do |
| Reranking | Per-query call on every single question | Not noticing it is a per-query cost until the first full month |
| Observability and evals | Logging every retrieval and running the eval suite on changes | Dropping it to save money, then having no way to diagnose a regression |
Two practical consequences. Cost per answer is set by how much context you retrieve, which means aggressive reranking is a cost control as well as a quality fix. And a proposal with no monthly estimate attached is incomplete — ask for a cost per 1,000 questions at your expected chunk count, and ask what happens to it if the corpus triples.
Twelve questions to ask a RAG chatbot development company before you sign
These are ordered by how much signal they carry. The first four will separate the field.
- Show me an eval set from a past project. How do you score retrieval quality separately from answer quality? No eval set means no evidence, and no way to tell improvement from regression.
- What does the assistant do when the answer is not in the documents? You want a designed refusal with a handoff path, not a graceful-sounding guess.
- Does every answer carry a citation to the source document and location? Non-negotiable for internal knowledge tools. It is how staff verify, and how you debug.
- How does the index stay in sync when a document changes? Listen for webhooks, scheduled re-indexing, deletion handling. Listen for whether deleted documents actually leave the index.
- Are permissions enforced at retrieval time? Filtering candidates by the asking user's rights, not instructing the model to keep secrets in the prompt. A prompt is not an access-control layer.
- Which components can run on infrastructure we own? Ask specifically where embeddings are computed — sending a contract corpus to a third-party embedding API is a data transfer, whatever the chat model does.
- What is the monthly running cost at our volume, itemised? See the table above. A single blended figure hides which lever to pull later.
- Who owns the code, the prompts and the index? Get it in writing. Prompts and eval sets are the real intellectual property of the build.
- How do you handle tables, scanned PDFs and spreadsheets? Most real corpora are full of them, and most generic pipelines mangle them. Ask for the parsing strategy by file type.
- What is logged, where is it stored, and for how long? Conversation logs contain whatever staff paste into them.
- Can we run a bake-off on our own documents before committing? A paid pilot on your corpus beats any demo on theirs.
- What does handover look like? Could your own developer re-index, adjust a prompt and deploy without the vendor? If not, you have bought a dependency, not a system.
Compliance: what changed for chatbots on 2 August 2026
If any of your users are in the EU, this is now a procurement question rather than a future one. Under Article 50 of Regulation (EU) 2024/1689, the AI Act, systems that interact directly with people must make clear that the person is dealing with an AI. The transparency obligations applied from , and the delays agreed for high-risk systems did not move them. Penalties for transparency breaches run to EUR 15 million or 3% of worldwide annual turnover, whichever is higher.
What matters when picking a vendor:
- The disclosure duty is split. The provider that builds the system carries the design obligation under Article 50(1); as the deployer, you carry the rest. A vendor who has never heard of this is not one who will have built it in.
- The duty is retroactive to existing bots. An assistant that has been live since 2025 needs retrofitting, not grandfathering. A narrower transition window to 2 December 2026 covers only the machine-readable marking duty under Article 50(2), for generative systems already on the market before August.
- Disclosure at first interaction. A line in the privacy policy does not satisfy it; the first chat bubble does.
- GDPR is a separate obligation. You need a lawful basis for processing conversation data regardless of the AI Act notice.
- Data residency is an architecture choice, not a checkbox. If the corpus is contracts, patient records or employee files, ask about a self-hosted model for generation and a locally computed embedding model. We expect this to be the default question for regulated buyers rather than the exception.
None of this is legal advice — the point is narrower. These are questions your vendor should be answering without being prompted, and the answers shape the architecture, so they belong in the first scoping call rather than the final review.
Red flags, and what a realistic timeline looks like
Signals that a quote is not backed by delivery experience:
- A fixed price before anyone has looked at a sample of your documents.
- Accuracy claims as a percentage, with no eval set and no definition of what was measured.
- A demo on their own curated corpus, with no offer to run on yours.
- A proposal to embed your product catalogue, price list or order history.
- Fine-tuning offered as the fix for the model not knowing your business.
- No mention of permissions, or permissions described as instructions in the system prompt.
- Pricing in opaque credits with no token breakdown behind them.
- No answer to what happens when retrieval returns nothing relevant.
And a realistic shape for a first internal assistant over a single document corpus:
| Phase | Typical duration | What exists at the end |
|---|---|---|
| Document audit and feasibility | Days, not weeks | A verdict on whether RAG is even the right tool, and the 20-question eval set |
| Ingestion and baseline index | 1–2 weeks | Documents parsed and indexed; a measurable baseline score, usually a mediocre one |
| Retrieval tuning | 2–4 weeks | Chunking, hybrid retrieval and reranking tuned against the eval set |
| Interface, permissions, handover | 1–2 weeks | Widget or internal UI, access rules, documentation, your team able to operate it |
Multiply that for several source systems, multilingual corpora or per-document access rules. Anyone quoting a week for an assistant across five systems with role-based permissions is quoting for the demo.
If you are still deciding whether retrieval, tool calling or a long prompt is the right answer for your data, that is the conversation worth having before any quote means anything. Tell us what your documents look like and what people will ask, and we will tell you which of the three your case needs — including when the honest answer is that you do not need RAG at all.
CÂU HỎI THƯỜNG GẶP
Câu hỏi thường gặp
How much does it cost to hire a RAG chatbot development company?
Build cost is quoted per scope, and the honest drivers are the number of source systems, the file formats in your corpus, and whether per-user permissions are required - not the number of chat messages. The figure buyers more often forget is the monthly running cost: LLM tokens for retrieved context, embedding and re-embedding, vector store hosting, and a per-query reranking call. Ask every vendor for a cost per 1,000 questions at your expected context size, and ask what it becomes if the corpus triples.
How long does it take to build a production RAG chatbot?
For a first internal assistant over a single document corpus, a realistic shape is a few days of document audit, one to two weeks to ingest and build a baseline index, two to four weeks of retrieval tuning against an evaluation set, and one to two weeks for the interface, permissions and handover. Several source systems, multilingual documents or role-based access rules extend that considerably. A one-week quote for a multi-system build is a quote for the demo.
Should we hire a development company or use an off-the-shelf chatbot platform?
Use a platform when your corpus is a public help centre, every user may see every document, and generic answer quality is acceptable. Hire a development company when you need per-user permissions enforced at retrieval time, connectors into systems a platform does not support, answers that cite internal sources, data that cannot leave your infrastructure, or when retrieval quality on your specific documents is the whole point. The deciding factor is usually permissions and data residency, not features.
Can a RAG chatbot run entirely on our own servers?
Yes. Generation can run on a self-hosted open-weight model, the vector index can live in your own database via pgvector, and the embedding model can run locally too. The trade-off is answer quality and the operational burden of hosting a model. Ask specifically where embeddings are computed - a self-hosted chat model paired with a third-party embedding API still sends your documents off-premises.
How accurate is a RAG chatbot, really?
There is no portable accuracy number, and any vendor quoting one without naming what was measured is marketing. Accuracy has two separate components worth scoring independently: retrieval quality, which is whether the correct passage reaches the model at all, and answer quality, which is whether the model used it faithfully. Most wrong answers are retrieval failures. The only meaningful measurement comes from an evaluation set built on your own documents and your users' real questions.
Can it read our scanned PDFs, spreadsheets and tables?
It can, but only with a parsing strategy per file type, and this is where generic pipelines quietly fail. Scanned documents need OCR, spreadsheets need structure preserved rather than flattened into prose, and tables need to survive chunking as a unit. Ask any prospective vendor how they handle each of the formats actually present in your corpus, and ask to see a parsed sample of your own worst document before you sign.