What it solves
Vector-only search can miss exact terminology. Keyword-only search is brittle when the question is phrased differently from the document.
01 · QueryOne question enters the retrieval path.
02 · SemanticEmbeddings find related concepts.
03 · LexicalBM25 keeps exact language visible.
04 · FuseRRF combines ranked evidence.
How Mneme handles it
Sentence-transformers and ChromaDB provide semantic search. BM25 provides lexical search. Reciprocal Rank Fusion brings the lists together before deduplication and dynamic Top-K selection.
What you can inspect
- Which source files contributed to an answer.
- Source paths, chunk IDs, and PDF page anchors.
- The retrieval mode used by the TUI session.
Result before terminology
The user-facing result is “find meaning and exact language together.” The implementation details support that result.
Try it
python -m src.rag --files /path/to/docs --collection my_docs