A suite of AI-powered administrative tools designed to automate email management and phone interactions using state-of-the-art Generative AI models.
email/: AI-powered email assistant that fetches unread emails and generates professional replies.phone/: Real-time AI voice agent for handling phone calls via Twilio and Deepgram.img/: Project assets and images.
The email assistant automates the process of checking and responding to emails from Gmail and Outlook.
- Multi-Platform Support: Works with both Gmail (IMAP) and Outlook (Microsoft Graph API).
- Gemini Integration: Uses Google's Gemini 2.0 Pro model to generate polite, professional, and concise replies.
- Thinking Capabilities: Leverages Gemini's thinking configuration for more reasoned responses.
- Interactive Instruction: Allows users to provide custom instructions for specific email replies.
- Navigate to the
email/folder. - Create a
.envfile with the following variables:EMAIL=your-email@gmail.com GMAIL_PASSWORD=your-app-password GEMINI_API_KEY=your-gemini-api-key # For Outlook (Optional) CLIENT_ID=your-client-id TENANT_ID=your-tenant-id CLIENT_SECRET=your-client-secret
- Run the assistant:
python main.py
The phone agent provides a voice-based interface for administrative tasks, integrating real-time speech-to-text and text-to-speech.
- Real-time Interaction: Low-latency voice communication using Deepgram's Converse API.
- Twilio Integration: Receives and handles calls via Twilio Media Streams.
- Function Calling: Capable of executing predefined Python functions during a call (see
phone/inside.py). - Barge-in Support: Handles user interruptions gracefully.
- Navigate to the
phone/folder. - Create a
.envfile:DEEPGRAM_API_KEY=your-deepgram-api-key
- Configure
config.jsonwith your agent details. - Start the WebSocket server:
python main.py
- Configure your Twilio number to point to the server's WebSocket URL.
Ensure you have the following installed:
- Python 3.10+
- Dependencies listed in
requirements.txt
pip install -r requirements.txtFeel free to open issues or submit pull requests to improve the administrative tools.