# Telegram Inference Bot with Daemon and Apprentice System This project implements a Telegram bot system with two instances: a daemon bot and an apprentice bot. The daemon bot handles the main workload, while the apprentice bot can be updated and take over when needed. ## Features - Daemon bot for handling main workload - Apprentice bot for updates and handovers - Automatic updates for the apprentice bot when new pull requests are merged - Inter-bot communication - Support for both OpenAI and Anthropic AI models - Tool integration for extended functionality ## Setup 1. Clone the repository: ``` git clone https://github.com/your_username/your_repo_name.git cd your_repo_name ``` 2. Install the required dependencies: ``` pip install -r requirements.txt ``` 3. Copy the `.env.example` file to `.env` and fill in your actual values: ``` cp .env.example .env ``` 4. Edit the `.env` file with your specific tokens and settings. 5. Run the bot: ``` python telegram_inference_bot.py ``` ## Environment Variables Make sure to set the following environment variables in your `.env` file: - `TELEGRAM_BOT_TOKEN`: Token for the daemon bot - `TELEGRAM_APPRENTICE_BOT_TOKEN`: Token for the apprentice bot - `OPENAI_API_KEY`: Your OpenAI API key - `ANTHROPIC_API_KEY`: Your Anthropic API key - `GITHUB_REPO_OWNER`: Your GitHub username or organization - `GITHUB_REPO_NAME`: Your repository name - `GITHUB_ACCESS_TOKEN`: Your GitHub personal access token - `DAEMON_CHAT_ID`: Chat ID for the daemon bot - `APPRENTICE_CHAT_ID`: Chat ID for the apprentice bot ## Usage - Start the bot by running `python telegram_inference_bot.py` - Use `/start` to begin interacting with either bot - Use `/handover` in the daemon bot to initiate a handover to the apprentice bot - The apprentice bot will automatically check for updates every 15 minutes ## Commands - `/start`: Start interacting with the bot - `/clear`: Clear conversation history - `/switch`: Switch between GPT models (GPT-4 and GPT-4 Mini) - `/toggle`: Toggle between OpenAI and Anthropic providers - `/status`: Check the current model and provider - `/handover`: (Daemon bot only) Initiate handover to apprentice bot - `/update`: (Apprentice bot only) Manually trigger an update ## Contributing Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests. ## License This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.