admin a5a99b0692 Merge pull request #193 from bucolucas/fix-search-code-type-error
Fix: Type error in tool argument handling for Anthropic
2025-06-02 15:57:28 -05:00
2025-06-02 15:23:20 -05:00
2024-08-18 18:00:22 -05:00
2024-08-20 13:11:24 -05:00
2024-08-17 11:01:59 -05:00
2025-06-02 13:23:02 -05:00
2024-08-17 11:01:59 -05:00
2024-08-17 11:01:59 -05:00
2025-06-02 15:23:20 -05:00

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. The system supports both OpenAI (ChatGPT) and Anthropic (Claude) AI models.

Features

  • Daemon bot for handling main workload
  • Apprentice bot for updates and handovers
  • Support for both OpenAI (ChatGPT) and Anthropic (Claude) AI models
  • Dynamic tool integration for extended functionality
  • Conversation history management
  • Model switching capability (for ChatGPT implementation)
  • Error handling and logging

Bot Implementations

ChatGPT Bot (OpenAI)

  • Uses OpenAI's GPT models (gpt-4o-mini and gpt-4o)
  • Supports model switching between gpt-4o-mini (16,384 tokens) and gpt-4o (4,096 tokens)
  • Implements tool calls using OpenAI's function calling feature

Claude Bot (Anthropic)

  • Uses Anthropic's Claude model (claude-3-5-sonnet-20240620)
  • Implements tool calls using Anthropic's tool use feature
  • Uses a maximum of 8,192 tokens per response

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
  • SYSTEM_PROMPT_PATH: Path to the system prompt file

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 (feature to be implemented)

Commands

  • /start: Start interacting with the bot
  • /clear: Clear conversation history
  • /switch: (ChatGPT bot only) Switch between GPT models (gpt-4o-mini and gpt-4o)
  • /status: Check the current model and provider
  • /handover: (Daemon bot only) Initiate handover to apprentice bot (to be implemented)
  • /update: (Apprentice bot only) Manually trigger an update (to be implemented)
  • /abort: Abort current processing (to be implemented)

Contributing

Please read 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 file for details.

Future Improvements

  • Implement handover functionality between daemon and apprentice bots
  • Add automatic update checking for the apprentice bot
  • Unify features across both bot implementations
  • Enhance error handling and logging
  • Move hardcoded values to configuration files
  • Implement comprehensive unit testing
S
Description
No description provided
Readme 529 KiB
Languages
Python 100%