AfriBot-2063 is a hybrid AI-powered educational humanoid robot system designed for offline and online learning support in English and Amharic. It integrates RAG-based PDF knowledge retrieval, Ollama local LLMs, Gemini AI, speech interaction, and robotics control for TVET, engineering, and STEM education.
# AfriBot-2063 Hybrid AI Teacher System 🤖🇪🇹
> A production-ready offline + online AI education system for Ethiopian students.
> Teaches electrical machines, electronics, robotics and TVET content.
> Supports **Amharic** and **English** — works offline in rural environments.
---
## Architecture Overview
```
User Input (voice/text)
│
▼
Language Detection (Amharic / English)
│
▼
RAG Retrieval ← ChromaDB ← machines_1.pdf (282 pages, Debre Berhan Univ.)
│
▼
AI Router
├── Internet available? → Google Gemini API (best Amharic + quality)
│ └── on failure → Ollama local fallback
└── No internet? → Ollama (tinyllama / phi)
│
▼
Response (same language as input)
│
▼
TTS Output (pyttsx3 offline / gTTS online for Amharic)
```
---
## Project Structure
```
afribot_2063/
├── main.py # Entry point
├── config.py # API keys, settings
├── requirements.txt # Python dependencies
├── data/pdfs/ # PDF knowledge base
│ └── machines_1.pdf # Electrical Machines textbook (Debre Berhan Univ.)
├── db/chroma/ # Vector DB (auto-generated on first run)
├── models/
│ ├── gemini_llm.py # Google Gemini API (online)
│ ├── local_llm.py # Ollama offline AI
│ └── router.py # AI routing logic
├── rag/
│ ├── ingest.py # PDF → chunks → embeddings → ChromaDB
│ └── query.py # Retrieve relevant context
├── speech/
│ ├── stt.py # Whisper speech-to-text
│ └── tts.py # pyttsx3 / gTTS text-to-speech
├── language/
│ ├── detect.py # Amharic / English detection
│ └── translate.py # Translation helpers
├── utils/
│ ├── internet.py # Connectivity check
│ └── logger.py # Logging
├── robot/
│ ├── controller.py # AfriBot hardware abstraction
│ └── io_handler.py # Mic / speaker / display
└── tests/
├── test_rag.py
└── test_llm.py
```
---
## Quick Start
### 1. Prerequisites …