# 🇪🇹 Amharic QA Chatbot
An AI chatbot that answers questions in **Amharic** about Ethiopian history, universities, government services, agriculture, health, and more.
Built with: Hugging Face Transformers · FastAPI · Streamlit · SQLite
---
## Quick Start
### Step 1 — Install dependencies (one time only)
```cmd
venv\Scripts\pip.exe install -r requirements.txt
```
Or with npm style:
```cmd
npm run install
```
---
### Step 2 — Start everything
**Option A — Double-click (easiest)**
Double-click **`start.bat`** in the project folder.
It opens two terminal windows and launches both servers automatically.
**Option B — npm style commands**
```cmd
npm start
```
or
```cmd
npm run dev
```
**Option C — Run each server manually**
Terminal 1 (API):
```cmd
npm run api
```
Terminal 2 (UI):
```cmd
npm run ui
```
---
### Step 3 — Open in browser
| What | URL |
|------|-----|
| đź’¬ Chat UI |
localhost |
| đź“– API Docs |
localhost |
---
## All Commands
| Command | What it does |
|---------|-------------|
| `npm start` | Starts API + UI together |
| `npm run dev` | Same as start |
| `npm run api` | Starts FastAPI backend only (port 8000) |
| `npm run ui` | Starts Streamlit frontend only (port 8501) |
| `npm run install` | Installs Python dependencies |
Or use the `.bat` shortcuts:
| File | What it does |
|------|-------------|
| `start.bat` | Starts both API and UI |
| `run_api.bat` | Starts API only |
| `run_ui.bat` | Starts UI only |
---
## Project Structure
```
Amahric chatbot/
├── app/
│ ├── database.py # SQLite — chats, feedback, qa_pairs
│ ├── embadding.py # Sentence embedding engine (multilingual)
│ ├── inference.py # Cosine similarity QA logic
│ └── main.py # FastAPI routes
├── data/
│ └── qa_dataset.csv # Amharic Q&A knowledge base (60+ pairs)
├── .streamlit/
│ └── config.toml # Streamlit server config
├── streamlit_app.py # Chat UI
├── start.bat # Start everything (doubl …