← Jessica Xu

Q&A RAG pipeline

Generative AI module, UCL · 2026

A question answering system over League of Legends data. Questions about the game divide fairly cleanly into two kinds: ones answered by prose that has to be retrieved and read, and ones answered by a number that has to be looked up. Retrieval alone handles the first badly and the second worse, so the system routes each query to whichever backend suits it, a vector store or a relational database.

It reached 93.4% end-to-end accuracy across 630 test queries, against a 22% baseline. Most of that gap is the routing rather than the retrieval: sending statistical questions to SQL instead of asking a language model to recall figures from retrieved text removes an entire class of confident wrong answers.

Built with ChromaDB for the vector store, SQLite for structured match and champion data, OpenAI text-embedding-3-large for embeddings, and Gemini for generation. Submitted with an assessed ten minute presentation.

Python · ChromaDB · SQLite · OpenAI text-embedding-3-large · Gemini