Why does an assistant give wrong answers when the right document is right there?
Because the document being in your knowledge base is not the same as the relevant passage reaching the model, and that gap is where most RAG projects fail. Four causes account for nearly all of it. Chunking that splits a document mid-idea, so no single chunk contains a complete answer. Pure semantic search, which is excellent at topic similarity and unreliable at exact terms like a product code or a policy number — which is why hybrid search matters. No re-ranking, so a marginally relevant passage outranks the correct one and the model answers from the wrong context. And contradictory source material, where two documents disagree and the system has no basis for preferring the current one. Notice that none of these are model problems, which is why swapping to a more expensive model rarely fixes a bad RAG system.
What file types and sources can it read?
PDFs, Word documents, spreadsheets, HTML and Markdown, plus live sources — a database, an API, a help centre, a wiki, a shared drive. Scanned documents and images go through OCR, which we have shipped before on medical records. The realistic caveat is that extraction quality varies enormously by format: clean text extracts perfectly, while complex tables, multi-column layouts and scanned forms need specific handling and sometimes a bespoke parser. That work is scoped once we have seen samples of your actual documents rather than estimated from a description, because a folder of clean policy PDFs and a folder of scanned faxes are entirely different projects. The other decision worth making early is live versus snapshot: connecting to a source your team already maintains means the assistant stays current with no extra process.
How often does the knowledge base need updating?
Ideally never manually, which is a design decision rather than a maintenance discipline. Where we connect to a living source — your help centre, database or document store — new and changed content is re-indexed incrementally as it appears, and there is no separate process for anyone to remember. Where content only exists as files, someone has to upload revisions, and that is the setup worth avoiding if you can. What does deserve periodic attention is quality rather than freshness: reviewing the questions that produced weak retrievals, and resolving contradictions between documents. That is usually a short review in the first weeks and infrequent afterwards. The evaluation set makes it safe, since you can confirm a content change improved things before it reaches users.
Do we need a vector database?
Usually not a separate one, and this is over-sold. For the large majority of business knowledge bases, pgvector inside the PostgreSQL you are already running is entirely sufficient and considerably simpler — one database to operate, back up and secure, and your permissions live alongside your embeddings rather than in a second system that has to be kept in sync. Dedicated vector databases earn their place at genuinely large scale, or with specialised filtering requirements, and those thresholds are far higher than most vendors imply. We would rather you ran one database well than two adequately. If your situation genuinely calls for a dedicated store we will say so, but it is not the default and should not be assumed at the start of a project.
Can this run without sending our data to OpenAI or Anthropic?
Yes, with a real trade-off that should be decided deliberately rather than by default. The strictest option is an open-weight model self-hosted in your own infrastructure, so no content leaves your network at all — appropriate for genuinely sensitive material, at the cost of capability and of running GPU infrastructure. A middle path keeps retrieval and your document store entirely in your environment and sends only the retrieved passage to a commercial API, which is a much smaller data exposure than sending whole documents and is what most regulated clients settle on. Under standard API terms the major providers do not train on data submitted through the API, and providers offer regional processing where residency is the concern. We size this to your actual obligation rather than to the most cautious possible reading, because the strictest option costs real capability.