RAG system over Central Bank of Kenya reports — retrieval evaluation portfolio project
# CBK Policy RAG
A retrieval-augmented generation system that answers questions about Kenyan
monetary policy, banking supervision, and payments — grounded in the Central
Bank of Kenya's published reports, with every answer citing the source
document and page.
**The headline is evaluation, not the chatbot.** This project demonstrates how
retrieval and answer quality are *measured* and improved: baseline → change →
metric moves.
## Status
- [x] M0 — repo skeleton, config, secrets handling
- [ ] M1 — ingest → clean → chunk → `corpus.jsonl`
- [ ] M2 — embeddings + Chroma + dense retrieval
- [ ] M3 — eval set (20–30 grounded Q/A pairs)
- [ ] M4 — eval harness (recall@k, MRR, faithfulness)
- [ ] M5 — hybrid retrieval + reranker, measured vs. baseline
- [ ] M6 — Streamlit UI + writeup
## Setup
```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # then paste your free Groq key into .env
```
## Constraints
- Zero cost — local embeddings (sentence-transformers), local vector store
(Chroma), free-tier LLM (Groq).
- CBK PDFs and derived corpus are **never** committed (provenance/copyright).
- No secrets in the repo — keys live in a gitignored `.env`.