Honorable Mention: This project is based on Ava WhatsApp Agent Course by Neural Maze. We've extended it with additional features like multi-provider support for image generation and analysis.
Ava is a versatile AI companion agent that can interact through chat, generate images, and convert speech to text and back. This project is built on a flexible architecture that supports multiple AI providers including OpenAI, Groq, Ollama, Together AI, and ElevenLabs.
- 💬 Natural Conversation: Have natural, context-aware conversations with your AI companion
- 🖼️ Image Generation: Generate images based on your descriptions, with support for Together AI or OpenAI DALL-E
- 🔍 Image Analysis: Analyze images with detailed descriptions using Groq or OpenAI
- 🗣️ Voice Interaction: Talk to your AI with text-to-speech (TTS) and speech-to-text (STT)
- 🧠 Memory System: Both short-term and long-term memory with vector database support
- 🔄 Multi-Provider Support: Switch between different LLM providers (OpenAI, Groq, Ollama)
- 📱 WhatsApp Integration: Chat with your AI companion directly through WhatsApp
- 💻 Web Interface: Interact through a browser-based Chainlit interface
Ava is designed with a modular architecture that allows for flexible configuration and deployment:
-
User Interfaces:
- WhatsApp for mobile messaging
- Chainlit for web-based interaction
-
Core Processing:
- LangGraph-powered workflow engine
- Context injection for personalized responses
- Memory management system
-
AI Services:
- Text Generation: OpenAI, Groq, or Ollama
- Image Generation: Together AI or OpenAI DALL-E
- Image Analysis: Groq Llama or OpenAI GPT-4 Vision
- Speech Processing: OpenAI or Groq for STT, OpenAI or ElevenLabs for TTS
-
Storage:
- Vector Database (Weaviate or Qdrant) for long-term memory
- Session-based short-term memory
- LLM: OpenAI, Groq, Ollama
- Speech-to-Text: OpenAI, Groq
- Text-to-Speech: OpenAI, ElevenLabs
- Image-to-Text: OpenAI, Groq
- Text-to-Image: OpenAI (DALL-E), Together AI
See GETTING_STARTED.md for detailed installation and configuration instructions.
- Clone this repository
- Copy
.env.exampleto.envand add your API keys - Choose your vector database (Qdrant or Weaviate)
- Run the application with Docker Compose:
# For Qdrant
make ava-run-qdrant
# For Weaviate
make ava-run-weaviate- Local: Run on your machine using Docker
- Cloud: Deploy to Google Cloud Run
- Self-hosted Ollama: Deploy Ollama models on vast.ai
This project is licensed under the MIT License - see the LICENSE file for details.
This project is an extension of the Ava WhatsApp Agent Course by Neural Maze, a comprehensive course that teaches how to build a WhatsApp agent from scratch. We've built upon their excellent foundation to add multi-provider support and extended capabilities.
