Mambo — a whole-of-government citizen AI assistant for Zimbabwe. POTRAZ AI for Impact Challenge (AI4I 2026), Track 3 (Development).
# Mambo 🇿🇼
**A whole-of-government-ready, plain-language citizen information assistant for Zimbabwe public services.**
Ask a question in everyday words and get a clear answer drawn from the allow-listed
public-service corpus — with the source always cited. Submitted to the POTRAZ
**AI for Impact Challenge (AI4I 2026), Track 3 — Development**.
> *Mambo* means "king" in Shona; here it is framed as the **king of information**:
> it routes a question to the right covered source, answers from retrieved
> public-service documents, names the source, and hands you to the right office
> when the corpus doesn't cover it.
## Where things are
```
mambo/ ← the product (everything below is in here)
├── ingestion/ discover · OCR · chunk · embed (batch)
├── rag/ route · retrieve · generate · trust (FastAPI)
├── webchat/ Next.js 14 streaming chat (mobile-first)
├── registry/ ministry registry + allow-list + service journeys
├── shared/ config · db · embeddings · schema
├── tests/ pytest suite (80 pass, 1 integration skipped by default) + eval fixtures
├── scripts/ validate_corpus · evaluate_mambo · check_citation_links · render_proposal
└── submission/ Track 3 proposal PDF + full evidence pack (appendices)
```
Start with **`mambo/FOUNDATION.md`** (architecture & decisions),
**`mambo/README.md`** (quick start), and the
**proposal PDF**.
## What makes it trustworthy
- **Allow-listed-source-only** — retrieval from a curated corpus of ministry,
agency, and public legal sources; the web verifier is off by default.
- **Cited** — every factual claim carries an inline `[n]` citation to its source.
- **Honest evidence status** — every answer is badged *answered / partial /
unsupported / declined*; it never guesses.
- **Abstains** from medical diagnosis, legal advice, personal-data lookups, political
opinion, and prompt injection — with a referral to the …