AI-powered real-time video call tutor microservice for Ethiopian university students preparing for CS exit exams. Built with LangGraph, LiveKit, pgvector, and hexagonal architecture.
# TeleExam AI — Video Call Tutor
A real-time AI tutoring backend for Ethiopian computer science exit-exam preparation. The project combines FastAPI, WebSockets, Postgres with pgvector, Redis caching, LangGraph orchestration, and LiveKit media sessions to deliver a tutoring experience where each student turn is classified, enriched with curriculum retrieval, and answered with an AI tutor response.
> [!NOTE]
> This repository contains the backend service and AI orchestration layer. It does not include a frontend client or mobile app.
---
## Badges
-blue?style=for-the-badge)
---
## Table of Contents
- Project Title
- Badges
- Features
- Architecture
- Tech Stack
- Project Structure
- Installation
- Environment Variables
- Running the Project
- API Documentation
- Database
- AI Components
- Configuration
- Security
- Testing
- Deployment
- Development Workflow
- Performance Considerations
- Troubleshooting
- Roadmap
- Contributing
- License
- Acknowledgements
---
## Features
- Real-time tutoring session lifecycle with Postgres-backed session tracking
- FastAPI HTTP API for session start/end and learner profiles
- WebSocket-based live interaction at `/vcall/ws/{session_id}`
- LangGraph-based intent routing for:
- concept search
- YouTube lookup
- YouTube summary
- exam-question RAG
- memory/profile lookup
- general tutoring
- Redis caching for intent classification, conversation state, RAG hits, and learner profiles
- Curriculum ingestion pipeline that reads local text materials and stores embeddings in Postgres via pgvector
- Vector similarity search over curriculum chunks using cosine distance
- Learner profiling with weak topics, average score, and exam count
- Built-in admin ingestion endpoint for curriculum loading
- LiveKit room creation and participant token issuance
- Extensible provider architecture via ports and adapters for LLM, STT, TTS, embeddings, search, and media
---
## Architecture
This project follows a layered, adapter-based archit …