Project Info
AI Assistant Hub π€
A powerful multi-modal AI assistant platform combining voice interaction and vision capabilities with persistent memory.
π Features
Voice Agent MVP (Port 8091)
- ποΈ Natural voice conversations
- π§ Persistent memory across sessions
- π£οΈ High-quality text-to-speech
- π Real-time transcription
Vision System (Port 8093)
- πΈ Image upload and analysis
- π₯ Webcam integration
- π Powered by Claude Vision
- π Detailed visual feedback
Home Server (Port 8080)
- π Unified interface
- π¦ Service health monitoring
- π Real-time status updates
- π― Easy navigation
π Quick Start
-
Clone the repository
git clone https://github.com/yourusername/ai-assistant-hub.git cd ai-assistant-hub -
Set up environment
python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows pip install -r requirements.txt -
Configure API keys
cp .env.example .env # Edit .env with your API keys -
Start services
# Terminal 1: Start Letta Server letta serve --port 8283 # Terminal 2: Start Home Server python home_server.py # Terminal 3: Start Voice Agent python main.py # Terminal 4: Start Vision System python simple_vision_server.py -
Access the application
- Open http://localhost:8080 in your browser
- Navigate to Voice or Vision services
- Start interacting!
π Documentation
π οΈ Development
Using Docker
# Build and start all services
docker-compose up --build
# Stop services
docker-compose down
Running Tests
pytest tests/
π Requirements
- Python 3.9+
- OpenAI API key
- Anthropic API key
- Letta API key
π€ Contributing
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a pull request
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Acknowledgments
- OpenAI for Whisper and TTS
- Anthropic for Claude Vision
- Letta for conversation management
- FastAPI team for the awesome framework
π€ Voice Agent MVP
A full-stack AI-powered voice conversation application with persistent memory
π Features
- ποΈ Real-time Voice Recording - Record audio directly in the browser
- π Audio File Upload - Support for MP3, WAV, WebM, and other formats
- π£οΈ Speech-to-Text - Powered by OpenAI Whisper API
- π€ AI Conversation - Intelligent responses using OpenAI GPT models
- π Text-to-Speech - Natural voice responses with multiple voice options
- π§ Persistent Memory - Conversation history using Letta memory agent
- π¬ Text Chat - Alternative text-based interaction
- π Session Management - Track conversations and user sessions
- π Real-time Health Monitoring - Component status tracking
ποΈ Architecture
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Frontend β β FastAPI β β AI Services β
β (HTML/CSS/JS) βββββΊβ Backend βββββΊβ (OpenAI/Letta)β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β β β
β β β
βΌ βΌ βΌ
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Voice Input β β SQLite DB β β Memory Agent β
β Audio Upload β β Sessions β β Conversation β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
π Quick Start
Prerequisites
- Python 3.8+
- OpenAI API Key
- Modern web browser with microphone support
Installation
- Clone the repository
git clone https://github.com/Pavanmahaveer7/voice-agent-mvp.git
cd voice-agent-mvp
- Create virtual environment
python -m venv venv
# Windows
.\venv\Scripts\activate
# macOS/Linux
source venv/bin/activate
- Install dependencies
pip install -r requirements.txt
- Set up environment variables
# Create .env file
echo "OPENAI_API_KEY=your_openai_api_key_here" > .env
- Start Letta server (in a separate terminal)
letta server --port 8283
- Run the application
python -m uvicorn main:app --host 0.0.0.0 --port 8091 --reload
- Open your browser
http://localhost:8091
π― Usage
Voice Recording
- Click "Start Recording" button
- Speak your message
- Click "Stop Recording"
- Audio is automatically transcribed and sent to the AI
File Upload
- Click the upload area or drag & drop an audio file
- Supported formats: MP3, WAV, WebM, M4A, FLAC, AAC, OGG
- Click "Send Audio" to process
Text Chat
- Type your message in the text input
- Press Enter or click the send button
- Receive both text and audio responses
Voice Settings
- Choose from 6 different AI voices (Alloy, Echo, Fable, Onyx, Nova, Shimmer)
- Toggle auto-play for audio responses
- Adjust voice settings in real-time
π§ Configuration
Environment Variables
Create a .env file in the root directory:
# Required
OPENAI_API_KEY=your_openai_api_key_here
# Optional
LETTA_SERVER_URL=http://localhost:8283
DATABASE_PATH=voice_agent_mvp.db
DEBUG=false
Audio Settings
Configure audio processing in src/config/settings.py:
ALLOWED_AUDIO_FORMATS = ['wav', 'mp3', 'm4a', 'flac', 'aac', 'webm', 'ogg']
MAX_AUDIO_SIZE_MB = 25
TTS_MODEL = "tts-1"
TTS_VOICE = "alloy"
π API Documentation
Once running, visit:
- Interactive API Docs: http://localhost:8091/docs
- ReDoc Documentation: http://localhost:8091/redoc
- Health Check: http://localhost:8091/health
Key Endpoints
GET /- Web interfacePOST /voice-chat- Process voice messagesPOST /chat- Text-based chatGET /health- System health statusGET /session/info- Session informationPOST /session/new- Create new session
π§ Memory System
The application uses Letta (formerly MemGPT) for persistent conversation memory:
- Session Persistence - Conversations saved across sessions
- User Context - Remembers user preferences and history
- Long-term Memory - Maintains context over extended conversations
- Mock Mode - Fallback when Letta server is unavailable
π Monitoring & Health
Health Check Components
- β Whisper Handler - Speech recognition
- β TTS Handler - Text-to-speech
- β Audio Utils - Audio processing
- β Conversation Handler - Memory management
- β OpenAI API - External API connectivity
- β Letta Agent - Memory agent status
Logs
Check application logs for detailed debugging:
# View real-time logs
tail -f logs/voice_agent.log
π§ͺ Testing
Run the test suite:
# Install test dependencies
pip install pytest pytest-asyncio
# Run tests
pytest tests/
# Run with coverage
pytest --cov=src tests/
π Deployment
Docker (Coming Soon)
docker build -t voice-agent-mvp .
docker run -p 8091:8091 voice-agent-mvp
Production Considerations
- Use environment variables for secrets
- Set up proper CORS origins
- Configure HTTPS
- Use production ASGI server (Gunicorn + Uvicorn)
- Set up proper logging and monitoring
π€ Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Acknowledgments
- OpenAI - Whisper and GPT APIs
- Letta Team - Memory agent framework
- FastAPI - Modern web framework
- The AI Community - Inspiration and support
π Troubleshooting
Common Issues
"Connection Failed" in interface:
- Ensure FastAPI server is running on port 8091
- Check browser console for JavaScript errors
- Verify static files are being served correctly
Letta agent errors:
- Start Letta server:
letta server --port 8283 - Check Letta server logs
- Application works in mock mode without Letta
Audio not working:
- Grant microphone permissions in browser
- Check supported audio formats
- Verify OpenAI API key is set
Dependencies issues:
- Update pip:
pip install --upgrade pip - Reinstall requirements:
pip install -r requirements.txt --force-reinstall
Getting Help
- π§ Issues: GitHub Issues
- π Documentation: API Docs
- π¬ Discussions: GitHub Discussions
Made with β€οΈ and AI | Star β this repo if you found it helpful!
Analysis
View
Metric
- 1
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- HTMLIn code
- JavaScriptIn code
- PythonIn code
- AnthropicClaimed
- Google GeminiClaimed
- OpenAIClaimed
4 of 7 appear in the indexed code. 3 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
- CursorConfig
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
657 KB
Source files
75
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
Pavanmahaveer7/berkeley-hack
88 files Β· 688 KB Β· @ a01c15a
Structure
API & routing
3 files Β· 3%Request entry points: routes, handlers and controllers.
Application logic
51 files Β· 58%Domain rules, services and shared utilities.
+2 more
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here β open the file browser to check anything the diagram implies.
Languages
- Python80%
- Markdown7%
- HTML7%
- JavaScript4%
- CSS2%
- YAML0%
- Other (1)0%
Share of indexed source by file size. Binary and vendored files are excluded.
This projectβs features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.