grounded-rag
Citation-grounded question answering, grown into a four-corpus Pokemon expert: Smogon usage statistics, PokeAPI data, Bulbapedia prose, and Smogon strategy analyses (~25k chunks, all local). Questions route through hybrid retrieval (vector + IDF-selected keyword search, reciprocal rank fusion) with a cross-encoder reranker that also scores the "I don't know" refusal gate, or to deterministic tools backed by the poke-engine battle engine: type matchups with conditional immunities, true damage calcs with battle state (boosts, items, weather, Tera, real Smogon sets), and tiered "what would it take to OHKO, or to survive?" escalation searches. Answers cross-reference themselves (a damage calc into Bronzong warns that Levitate appears on 95% of its observed sets) and cite full provenance, down to sources the answer itself introduces. Built eval-first: 108 gold questions at 100% retrieval, faithfulness, and refusal, cross-checked against 237 frozen paraphrases with zero ungrounded entity mentions across every generated answer, so each corpus-growth regression is caught by the harness and pinned by its own gold question.
Python
FastAPI
React / TS
Postgres + pgvector
Ollama
Cross-encoder
Docker / k8s