How hemanth354/language-agnostic-chatbot works
This is a multilingual campus-support chatbot: a student query is translated to English, matched against indexed college circulars, answered with grounded generation or fallback extraction, then translated back; low-confidence questions become faculty tickets. Volunteers can upload circulars, and faculty can resolve tickets. Web, WhatsApp, and Telegram are documented entry points, with voice interaction in the web UI. The graph follows relationships visible in excerpts or the README; unsampled routes and frontend wiring are not inferred.
Main entry points: main.py FastAPI Routes · database.py SQLite Records · rag_service.py Circular Retrieval · circular_parser.py Circular Ingestion
Components 21
User Interfaces
- Web UI
templates/index.html - Voice Interaction
static/js/app.js - Circular Portal
templates/admin.html - Faculty Dashboard
templates/faculty.html - Channel Simulator
templates/simulator.html
Chat Orchestration
- FastAPI Routes
app/main.py - Language Translation
app/translation_service.py - Answer Generation
app/llm_service.py
Circular Knowledge
- Circular Retrieval
app/rag_service.py - Circular Ingestion
app/circular_parser.py - Sample Circulars
data/circulars - Chroma Index
app/rag_service.py
Faculty Resolution
- SQLite Records
app/database.py - Ticket Service
app/faculty_service.py
Messaging Channels
- WhatsApp Adapter
app/channels/whatsapp.py - Telegram Adapter
app/channels/telegram.py
Other components
- Student
- Volunteer
- Faculty
- WhatsApp API
- Telegram API
Connections 27
- Student → Web UI: uses
README.md - Web UI → FastAPI Routes: submits queries
- FastAPI Routes → Language Translation: translates query
app/main.py - FastAPI Routes → SQLite Records: loads history
app/main.py - FastAPI Routes → Circular Retrieval: searches circulars
app/main.py - FastAPI Routes → Answer Generation: generates answer
app/main.py - FastAPI Routes → Ticket Service: escalates query
app/main.py - Ticket Service → SQLite Records: creates tickets
app/faculty_service.py - Ticket Service → Language Translation: translates replies
app/faculty_service.py - FastAPI Routes → SQLite Records: stores conversation
app/main.py - Volunteer → Circular Portal: manages notices
README.md - Circular Portal → FastAPI Routes: uploads circulars
- FastAPI Routes → Circular Ingestion: ingests uploads
app/main.py - Circular Ingestion → Circular Retrieval: indexes chunks
app/circular_parser.py - Circular Ingestion → SQLite Records: creates circular
app/circular_parser.py - Sample Circulars → Circular Ingestion: seeds notices
- Circular Retrieval → Chroma Index: searches index
app/rag_service.py - Circular Retrieval → SQLite Records: reads fallback chunks
app/rag_service.py - Faculty → Faculty Dashboard: resolves tickets
README.md - Faculty Dashboard → FastAPI Routes: manages tickets
- Student → Channel Simulator: tests channels
README.md - FastAPI Routes → WhatsApp Adapter: dispatches webhook
app/main.py - WhatsApp Adapter → FastAPI Routes: sends reply
app/main.py - WhatsApp Adapter → WhatsApp API: sends messages
app/channels/whatsapp.py - FastAPI Routes → Telegram Adapter: routes webhook
app/main.py - Telegram Adapter → Telegram API: sends messages
app/channels/telegram.py - Web UI → Voice Interaction: provides voice
README.md