MemoGenius is an intelligent personal assistant that helps you manage reminders and access information through natural language conversations. The system combines a sleek React frontend with a powerful Python backend powered by Google Gemini AI, providing a seamless experience across web, Telegram interfaces, and Amazon Alexa devices.
- Multi-Platform Access: Use MemoGenius through Telegram, web interface, or Alexa devices
- Smart Conversations: Natural language processing with Google Gemini AI
- Voice Interaction: Speak with MemoGenius through Amazon Alexa
- Reminder Management: Create, edit, and get notifications for important events
- Personal Memory: Store and retrieve personal information with vector search
- Real-time Information: Search capabilities to answer questions from the web
- Multilingual Support: Interaction in both English and Italian
- Synchronized Experience: Consistent data across all platforms
MemoGenius consists of three main components:
- Frontend Client: A modern React application for web interactions
- Backend Server: A Python FastAPI service handling data persistence and AI processing
- Voice Interface: Amazon Alexa integration for voice-based interactions
graph LR
A[User] -->|Web Interface| B[React Frontend]
A -->|Telegram| C[Bot Interface]
A -->|Voice| H[Alexa Skill]
B -->|API Calls| D[FastAPI Backend]
C -->|Internal Calls| D
H -->|HTTPS Endpoint| D
D -->|AI Processing| E[Google Gemini]
D -->|Data Storage| F[SQLite]
D -->|Vector Storage| G[ChromaDB]
- Alexa Integration: Full support for voice interaction through Amazon Alexa devices
- Thread-safe Singleton Pattern: Enhanced memory management with thread-safe initialization
- Improved Function Handling: Better management of multiple AI function calls
- Internationalization: Fully bilingual codebase with English and Italian support
- Enhanced Vector Search: More accurate memory retrieval with ChromaDB
- Robust Error Handling: Better user experience with graceful error recovery
- Node.js 16+ and npm/yarn for frontend
- Python 3.8+ for backend
- Google Gemini API key
- Telegram Bot Token
- Amazon Developer Account (for Alexa integration)
-
Clone the repository:
git clone https://github.com/andrea9293/memogenius.git cd memogenius
-
Set up the backend:
cd backend pip install -r requirements.txt # Create .env file with TELEGRAM_BOT_TOKEN and GEMINI_API_KEY
-
Set up the frontend:
cd ../frontend npm install
-
Start the backend server:
cd backend python start_all.py
-
Start the frontend development server:
cd frontend npm run dev
-
Access the web interface at http://localhost:5173
-
For Alexa integration, follow the detailed guide in MEMOGENIUS_ALEXA_INTEGRATION_GUIDE.md.
-
frontend/
- React frontend application- Components, contexts, hooks, and pages for web interface
- Detailed frontend documentation
-
backend/
- Python FastAPI backend- AI processing, database models, and API endpoints
- Detailed backend documentation
- Start a chat with the MemoGenius Telegram bot
- Use the
/key
command to get your web access key - Use this key to log in to the web interface
- Set up the Alexa skill as detailed in the integration guide
- Invoke with "Alexa, open memo genius"
- Begin interacting with natural language commands
- For best results, start requests with "memo genius" followed by your query
- "Remind me to call mom tomorrow at 6 PM"
- "Remember that my WiFi password is 12345"
- "What was my WiFi password again?"
- "Alexa, open memo genius"
- "memo genius what are my reminders"
- "neko remind me to buy milk tomorrow"
- "memo genius what time is it"
- React 19 with TypeScript
- Material UI 6
- Vite for fast builds
- React Router for navigation
- FastAPI for high-performance API
- SQLite for structured data persistence
- ChromaDB for vector storage
- Google Gemini API for AI capabilities
- Python Telegram Bot for Telegram integration
- Amazon Alexa Skills Kit
- Cloudflare Tunnels for secure HTTPS endpoints
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the GNU Affero General Public License v3.0.
Copyright (c) 2025