This is a chatbot that allows you to query given pdfs either in English(With voice support) or kiswahili.
# 🤖 Fully Featured Chatbot
> 🌍 A multilingual, voice-enabled PDF chatbot — query your documents in **English** or **Kiswahili** with real-time, streamed AI responses.
---
## ✨ Features
| | Feature | Description |
|---|---------|-------------|
| 📄 | **PDF Q&A** | Upload and query any PDF document using natural language |
| 🌍 | **Multilingual** | Full support for English and Kiswahili |
| 🎙️ | **Voice Input** | Speak your queries in English via the microphone |
| 🔊 | **Text-to-Speech** | Hear responses read aloud |
| ⚡ | **Real-time Streaming** | Token-by-token WebSocket responses for low latency |
| 🧠 | **RAG Architecture** | Answers are grounded in your document, not hallucinated |
| 💬 | **Feedback System** | Built-in feedback page to rate responses |
---
## 🗂️ Project Structure
```
📦 fully_featured_chatbot/
├── 📁 src/
│ ├── 📁 english_governance_chatbot/ # 🇬🇧 English PDF Q&A module
│ ├── 📁 kiswahili/ # 🇰🇪 Kiswahili language module
│ ├── 🐍 __init__.py
│ ├── 🌐 index.html # Main English chat interface
│ ├── 🌐 kiswahili.html # Kiswahili chat interface
│ ├── 🌐 feedback.html # User feedback page
│ ├── 🐍 query_llm.py # RAG pipeline & LLM query logic
│ ├── 🐍 speech_recognition.py # 🎙️ Speech-to-text processing
│ └── 🐍 text_to_speech.py # 🔊 Text-to-speech output
├── 🐍 llm_response_websocket.py # ⚡ WebSocket server — LLM responses
├── 🐍 speech_recognition_websocket.py # 🎙️ WebSocket server — speech input
├── 📄 requirements.txt
└── 📖 README.md
```
---
## 🚀 Getting Started
### 🧰 Prerequisites
- 🐍 Python 3.8+
- 📦 pip
### ⚙️ Installation
**1️⃣ Clone the repository**
```bash
git clone
github.com
cd fully_featured_chatbot
```
**2️⃣ Install dependencies**
```bash
pip install -r requirements.txt
```
### ▶️ Running the App
🧠 Start the LLM response WebSocket server:
```bash
python llm_respons …