A voice-powered appointment management system for banking, built on LiveKit Cloud with Sarvam STT/TTS.
- Book, reschedule, and cancel banking appointments via voice
- Supports all Sarvam-supported Indian languages + English
- Google Calendar integration for availability
- PostgreSQL storage for appointment records
- Pluggable LLM (Gemini or Groq)
- Web and phone (SIP) connectivity
- Copy environment template and fill in your credentials:
cp .env.local.example .env.local- Install dependencies:
uv sync- Set up the database:
uv run alembic upgrade head- Download model files (VAD, turn detector, noise cancellation):
uv run src/agent.py download-files- Run the agent:
uv run src/agent.py devSet LLM_PROVIDER in .env.local to switch between Gemini and Groq:
LLM_PROVIDER=gemini(default)LLM_PROVIDER=groq
uv run pytest tests/ -vsrc/agent.py— Main voice agentsrc/config.py— Configurationsrc/prompts.py— System promptsrc/tools/— Agent tools (booking, availability, lookup, reschedule, cancel)src/services/— Google Calendar and database servicessrc/models/— Data modelssrc/llm/— Pluggable LLM providerfrontend/— Web clienttests/— Test suite