All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Adaptive query routing that sends conversational and arithmetic queries to direct or tool modes instead of always retrieving.
- Hybrid retrieval with BM25 lexical search plus vector search, fused using Reciprocal Rank Fusion.
- Maximal Marginal Relevance re-ranking to reduce near-duplicate chunks in the final context window.
- Citation-aware answer generation with grounding verification for dangling citations, uncited factual claims, and claims unsupported by their cited chunks.
trustworthyanswer metadata and a structured grounding report so callers can decide how to handle weakly supported answers.- Explicit tool registry with built-in arithmetic calculator and current UTC time tools.
- Provider abstraction for chat completion, including deterministic fake and OpenAI-backed providers.
- Embedding abstraction with deterministic local hashing embeddings and optional OpenAI embeddings.
- SQLite-backed document store with chunk persistence, stored embeddings, and a rebuilt in-memory BM25 index.
- Paragraph- and sentence-aware chunking with overlap for boundary-spanning facts.
- FastAPI app exposing health, document management, search, ask, and streaming ask endpoints.
- MCP server factory exposing ask, search, add-document, and list-documents tools through the optional MCP dependency.
- Credential-free test and demo path using
FakeProviderandHashingEmbedder.