Baraka is a modern, light-themed multilingual customer support assistant for Kenyan retail banking and SACCOs. It combines:
- FAQ retrieval (custom FAQs + a base banking dataset),
- automatic complaint routing to departments (ATM, Cards, Loans, Transfers, etc.),
- an Admin Console for managing FAQs and complaint tickets,
- multilingual chat with optional language locking (e.g. “reply in Kiswahili”).
Baraka is designed to avoid sensitive credential collection (no PINs, OTPs, passwords).
- Auto-detects language (when OpenAI is enabled)
- Replies in the user’s language
- You can force language in chat:
reply in Kiswahili,reply in Somali, etc.
- Customers submit complaints via the Complaint page
- Baraka routes to a department automatically using:
- keyword rules, then
- TF-IDF similarity routing
- Saves each complaint into a local SQLite database (
bankbot.db)
Baraka answers in this order:
- Custom FAQs (admin-created, per department)
- Base banking dataset (Bitext retail banking dataset from HF)
- OpenAI fallback (only if enabled and only using top retrieved context)
Admins can:
- Add / edit / delete FAQs
- View and manage complaint tickets (status, priority, internal notes)
- View chat logs (source + similarity scores)
Includes a glassy, modern, light UI with BaseWeb styling overrides (selectboxes, menus, inputs).
- Streamlit UI
- SQLite persistence
- Pandas for data handling
- scikit-learn TF-IDF retrieval + cosine similarity
- Hugging Face dataset (parquet) as base FAQ dataset
- OpenAI API for translation + fallback answering
app.py— the entire Streamlit appbankbot.db— auto-created SQLite database (users, FAQs, complaints, chat logs)
Install dependencies:
pip install streamlit openai pandas scikit-learn pyarrow huggingface-hub fsspec