RAG chatbot — Ghana elections & 2025 budget. Custom retrieval, hybrid search, Streamlit UI.
# Manual RAG Chatbot — Ghana Election & Budget Assistant
- **Student:** Yaw Acheampong Ahenkora Gyamera
- **Index:** 10022200141
- **Deployed:**
rag-ghana-chatbot.streamlit…
---
## Overview
A fully manual Retrieval-Augmented Generation (RAG) chatbot that answers questions grounded in two Ghanaian datasets:
- **Ghana Presidential Election Results (1992–2020)** — regional-level CSV
- **Ghana 2025 Budget Statement** — full 252-page PDF
**No LangChain, LlamaIndex, or pre-built RAG frameworks were used.**
Every component — chunking, embedding, vector storage, retrieval, and prompt construction — is implemented from scratch in Python.
---
## Data Sources
**Ghana Presidential Election Results (1992–2020)**
Regional vote totals for all major presidential candidates across eight general elections. Covers parties including NDC, NPP, PNC, and CPP at the regional granularity. Does not contain constituency-level breakdowns or 2024 results.
**Ghana 2025 Budget Statement**
The full 252-page budget statement released by the Ministry of Finance, covering macroeconomic targets, sector-by-sector expenditure allocations, revenue measures, and fiscal policy narratives for the 2025 financial year.
---
## Project Structure
```
.
├── src/ # Core RAG modules (chunker, embedder, retriever, pipeline…)
├── scripts/ # Build index + experiment runners
├── experiments/ # Logged outputs from all experiments (Parts A–G)
├── docs/ # Architecture, design decisions, report
├── diagrams/ # Architecture diagram (PNG + drawio)
├── app/ # Streamlit UI
└── data/
├── raw/ # Source CSV + PDF (not committed)
└── processed/ # Cached embeddings + chunk index (committed)
```
---
## Setup
```bash
# 1. Create and activate a virtual environment
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# 2. Install dependencies
pip install -r requirements.txt
# 3. Set your OpenAI API k …