DEV Community

Cover image for Why I Stopped Trusting My LLM's "Knowledge" (and Started Using RAG)
Diginatives LLC
Diginatives LLC

Posted on

Why I Stopped Trusting My LLM's "Knowledge" (and Started Using RAG)

Quick story. A few months back I was testing a chatbot prototype and asked it something about a product update. It answered instantly, confidently, in perfect grammar. And it was completely wrong the update it described didn't exist yet, or maybe existed differently, I honestly forget. What stuck with me was how sure it sounded while being wrong.

That's the moment RAG stopped being a buzzword to me and started being a "yeah okay I actually need this."

The Problem in One Sentence

LLMs know what they were trained on. That's it. Nothing after, nothing internal to your company, nothing that changed last week. They'll still answer though confidently because guessing fluently is kind of their whole thing.

What RAG Actually Does, No Fluff

Instead of asking the model to answer from memory, you:

  1. Take the user's question
  2. Search your own data (docs, PDFs, tickets, whatever) for relevant chunks usually via vector similarity
  3. Hand those chunks to the model along with the question
  4. Let it generate an answer grounded in what you just gave it

That's it. That's the whole trick. It's less "smarter AI" and more "AI that's finally allowed to check its notes before answering."

Things Nobody Tells You Until You Build One

A few lessons that took me longer to learn than they should have:

  • Chunking is annoying and it matters way more than you'd think. Cut a document at the wrong spot and you strip out the context that made the chunk useful. I learned this after wondering why my retrieval kept pulling "technically related but useless" snippets.
  • More context isn't always better. I assumed stuffing in more retrieved chunks would help. Nope. Irrelevant chunks can actively confuse the model worse answers than giving it nothing.
  • Keyword search still matters. Pure vector/semantic search is great until someone searches for an exact error code or product ID and the "semantically similar" results miss it entirely. Hybrid search (keyword + vector) fixed more issues for me than tuning the embedding model did.
  • Stale data breaks RAG the same way it breaks everything else. If your index isn't refreshing, you've basically recreated the original problem with a fancier name.

Is It Worth the Setup?

Honestly? If your app touches anything that changes pricing, policies, internal docs, product specs yes. The alternative is an AI that sounds right and occasionally isn't, which is a genuinely bad combination for anything customer-facing.

If you're building something that only ever needs generic, timeless knowledge (explain what a for-loop is, whatever), you probably don't need RAG. But the second your app needs to know your data, and needs that data to stay current, this stops being optional.

Anyway curious if others here have run into the same chunking headaches. Feels like everyone converges on the same three or four lessons the hard way.

Top comments (0)