Jarvis is an experimental AI assistant that explores various approaches to artificial intelligence, natural language processing, and cognitive architectures. Built as a Telegram bot, it serves as a platform for testing different LLM models, frameworks, and cognitive architectures.
- 🤖 Advanced conversation capabilities using Azure OpenAI
- 🏠 Home Assistant integration for IoT control
- 📈 Stock analysis and visualization
- 🔍 Web search and information retrieval
- 🧠 Memory and context persistence
- 🤔 Internal thought processes and reasoning
The project contains several experimental branches, each exploring different aspects of AI:
main
: Stable release with core functionalityhome-assistant
: Integration with Home Assistant for IoT controlautogen
: Implementation using Microsoft's AutoGen frameworkautogen_memory
: Enhanced memory capabilities using AutoGencentral_thoughts
: Exploration of internal thought processeslangchain
: Integration with LangChain frameworksemantic-kernel
: Microsoft Semantic Kernel implementationtools
: Various tool integrations and utilitiesstock-images
: Stock market analysis and visualization features
- Python 3.10 or higher
- Poetry for dependency management
- Azure OpenAI API access
- Telegram Bot Token (from BotFather)
- (Optional) Home Assistant instance for IoT control
-
Clone the repository:
git clone https://github.com/yusufk/jarvis-azure.git cd jarvis-azure
-
Install dependencies using Poetry:
poetry install
-
Create a
.env
file in the project root with required environment variables:TELEGRAM_TOKEN=your_telegram_bot_token AZURE_OPENAI_API_KEY=your_azure_openai_key AZURE_OPENAI_ENDPOINT=your_azure_openai_endpoint # Optional for Home Assistant integration MCP_HOST_URL=your_home_assistant_url MCP_AUTH_TOKEN=your_home_assistant_token
-
Set up your Azure OpenAI deployments:
- Create a deployment for chat completion (e.g., GPT-4)
- Configure the deployment name in your environment variables
-
For Home Assistant integration (optional):
- Ensure your Home Assistant instance is accessible
- Generate a long-lived access token from Home Assistant
- Configure the URL and token in your environment variables
-
Start the bot:
poetry run python jarvis.py
-
Available commands in Telegram:
/start
- Initialize the bot/clear
- Clear conversation history/status
- Check bot status- Just chat normally for other interactions
- Natural conversation using Azure OpenAI's models
- Persistent memory across conversations
- Contextual understanding and response generation
- Tool integration for extended functionality
- Control smart home devices
- Query device states
- Execute automation scripts
- Monitor sensors and systems
- Real-time stock price analysis
- Historical data visualization
- Trend analysis and basic predictions
- Internal thought processes
- Self-reflection capabilities
- Memory management and context awareness
- Tool usage reasoning
Contributions are welcome! Feel free to:
- Submit bug reports or feature requests through issues
- Create pull requests for improvements
- Experiment with new branches for different approaches
This project is licensed under the MIT License - see the LICENSE file for details.