Janus
Live · leagueoflegends.polaris-ai.org
A grounded question-answering engine for League of Legends. Ask it about champions, items, matchups, or the current meta. It answers from real data, cites what it used, and says when it doesn’t know instead of guessing.
I implemented the retrieval stack directly rather than relying on a RAG framework, making its routing, retrieval behavior, and evaluation explicit and independently measurable. Three retrieval strategies sit behind a single router, each matched to the type of data it handles: a version-pinned corpus for game mechanics, typed SQL tables for exact numbers, and a live API for statistics that change daily.
The generator is only allowed to speak from what retrieval found.
Python · FastAPI · Postgres + pgvector · React · Docker · Caddy · MCP
- Retrieval hit@1
- 66.7% → 74.5%
- Mean faithfulness score
- 5.00 / 5
- Curated eval questions
- 40
- Embedding models benchmarked
- 5
- Retrieval strategies
- 3
Corpus-composition filtering improved retrieval hit@1 from 66.7% to 74.5%. Five embedding models were benchmarked separately against the same golden set. Faithfulness was scored by an LLM judge from a different model family than the generator over the double-reviewed 40-question evaluation set. Retrieval defaults change only with measured evidence.