“Our RAG system returns confident wrong answers”
Almost every "the chatbot is wrong" complaint is a retrieval failure wearing a generation costume. I start by measuring the two separately: take twenty to thirty real failing queries, log the top-k chunks for each, and check by hand whether the correct passage was ever retrieved. That single number splits the problem in half.
From there the work is usually chunking that severs meaning, a missing metadata filter, an embedding model mismatched to the domain, or the absence of a reranker. Then the output schema changes: a verbatim quote and a source identifier for every claim, and a real refusal path below a retrieval-score threshold.
You keep the eval set. That is the part that stops the problem coming back.
You keepA working eval set, plus the retrieval changes