Prompt
Why are my retrieved passages so irrelevant in my chatbot?
Latest observation
Oct 10, 2026
OpenAI APIWeb search: off
Irrelevant retrieved passages in a chatbot usually come from one or more of these issues:
-
Bad chunking
- Chunks are too large, too small, or split in awkward places.
- The answer may be split across chunks, so retrieval gets partial context.
- Fix: chunk by structure when possible, and tune chunk size/overlap.
-
Weak embeddings
- The embedding model may not represent your domain well.
- Generic embeddings can struggle with specialized vocabulary.
- Fix: try a stronger embedding model or one better suited to your content.
-
Poor indexing strategy
- Pure vector search may miss exact keywords, names, IDs, or acronyms.
- Fix: use hybrid retrieval: vector + keyword/BM25.
-
Query mismatch
- User questions may be short, vague, or use different wording than your docs.
- Fix: rewrite/expand queries before retrieval, or use query decomposition.
-
No reranking
- Top-k vector hits are often only “roughly related.”
- Fix: add a reranker to sort candidate passages by actual relevance.
-
Too much noisy content
- Tables, headers, footers, navigation text, boilerplate, or duplicated passages can dominate results.
- Fix: clean the source text and remove repeated junk.
-
Metadata not used
- If you have document type, date, product, section, or language metadata, ignoring it reduces precision.
- Fix: filter retrieval by metadata when appropriate.
-
Embedding/indexing bugs
- Wrong normalization, indexing the wrong field, stale index, or mismatched embedding models between indexing and query time.
- Fix: verify the exact same embedding pipeline is used consistently.
-
Top-k too small or too large
- Too small: misses relevant context.
- Too large: includes lots of irrelevant context that confuses the model.
- Fix: tune
kand possibly use reranking.
-
The corpus simply lacks the answer
- Retrieval can only find what exists.
- Fix: check whether the right information is actually in your documents.
Quick debugging checklist
- Inspect the top 10 retrieved chunks manually for a few queries.
- Test whether exact keywords from the question appear in the retrieved text.
- Compare vector-only retrieval vs hybrid retrieval.
- Add a reranker and see if quality improves.
- Try different chunk sizes and overlaps.
- Check whether the embedding model and indexing pipeline match.
- Remove boilerplate and duplicated text.
If you want, I can help you diagnose it systematically if you share:
- your chunk size/overlap,
- embedding model,
- retriever type,
- whether you use reranking,
- and an example query with the top retrieved passages.