A FastAPI-based backend service for a personal assistant voice agent integrated with Vapi AI. This project demonstrates how to build a structured API that handles todo lists, reminders, and calendar events through voice commands processed by AI.
demo.mp4
call_demo.mp4
- 📝 Todo Management: Create, list, complete, and delete todo items
- ⏰ Reminders: Set and manage reminders with importance levels
- 📅 Calendar: Schedule and track events with start and end times
- 📞 Call Initiation: Trigger outbound calls via Vapi AI API
- 🔄 Vapi AI Integration: Process natural language commands into structured API calls
- 🔧 Clean Architecture: Follows best practices with proper separation of concerns
- Python 3.9+
- Pip package manager
- Vapi AI account and API key (for call functionality)
- Clone the repository:
git clone https://github.com/extrawest/vapi_personal_assistant_voice_agent.git
cd vapi_personal_assistant_voice_agent
- Install dependencies:
pip install -r requirements.txt
- Set up environment variables:
# Copy the example environment file
cp src/.env.example .env
# Edit the .env file with your Vapi API key
# Replace 'your_vapi_api_key_here' with your actual API key
- Run the application:
uvicorn src.main:app --reload
- Access the API documentation:
http://localhost:8000/docs
This service is designed to work with Vapi AI's voice assistant platform. The integration enables:
- Natural Language Processing: Convert voice commands to structured API calls
- Context Awareness: Maintain conversation context for follow-up commands
- Tool-Based Execution: Execute specific functions based on user intent
- Outbound Calls: Initiate calls to customers using Vapi's telephony infrastructure
- "Add a new todo to buy groceries"
- "Remind me to call mom tomorrow at 5 PM"
- "Schedule a meeting with the team on Friday from 2 to 3 PM"
- "Call customer John at +1-202-555-0123"
- FastAPI: Modern, fast web framework for building APIs
- SQLAlchemy: SQL toolkit and ORM for database operations
- Pydantic: Data validation and settings management
- Uvicorn: ASGI server for running the application
- SQLite: Lightweight disk-based database
- Requests: HTTP library for making API calls to Vapi