Skip to content

zzh1996/chatgpt-telegram-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

chatgpt-telegram-bot

Demo

Branches

  • master - The OpenAI GPT models. Stable version.
  • dev - The OpenAI GPT models. Development version.
  • system-prompt - The OpenAI GPT models. Allows users to specify a system prompt arbitrarily.
  • gemini - The Google Gemini models.
  • claude - The Anthropic Claude models.
  • glm - The Zhipu AI GLM-4 models.
  • gpts - Allows customization of different prefixes corresponding to different system prompts, similar to ChatGPT's GPTs functionality.
  • plugins - Utilizes the Function calling feature of GPT-4 to support Google and Bing searches, web browsing, YouTube subtitle downloads, Wolfram Alpha, and a calculator plugin.

Features

  1. Real-time output streaming - Receive AI model outputs while they are being generated using the message editing feature of Telegram.
  2. Model switching - Easily change between models (e.g., GPT-4 and GPT-3.5-Turbo) using distinct message prefixes.
  3. Concurrent requests - The bot can process multiple user queries simultaneously.
  4. Long message support - For outputs exceeding Telegram's single message limit, the bot replies using multiple messages.
  5. Automatic retry - The bot retries automatically in case of OpenAI API or Telegram API errors.
  6. Persistent and forkable chat history - Chat logs are stored in a database, allowing users to reply to historical messages anytime.
  7. Message queueing - Replies to generating messages are added to a processing queue.
  8. Whitelist management - Bot administrators can enable or disable the bot in specific groups.
  9. Multimodal Support - Supports images and text files as input.
  10. Rich Text Rendering - The bot's output can be displayed as rich text in Telegram, such as code blocks and bold text.

Usage

  1. Obtain an OpenAI API key from https://platform.openai.com/account/api-keys
  2. Create a Telegram bot by using BotFather via https://t.me/BotFather
  3. Get api_id and api_hash from https://my.telegram.org/apps
  4. Set OpenAI API key and Telegram Bot Token and Telegram API ID and Hash in the docker-compose.yml file.
  5. In the main.py file, specify the Telegram admin user ID (you can send /ping to your bot to obtain your user ID) and the prompt text.
  6. If you want to use the bot in a group, you must disable privacy mode in the bot settings.
  7. Run docker-compose up --build -d
  8. You can interact with your bot by initiating a new conversation with a message that starts with $. For example, you can type $Hello. By default, the bot uses the GPT-4 model. To switch to the GPT-3.5-Turbo model, simply start the message with $$.
  9. To continue a conversation thread, reply to a previous message sent by the bot.
  10. You can reply multiple times to the same message to "fork" the thread.
  11. In a group, only the bot admin can use the /add_whitelist command to whitelist the group. To remove the group from the whitelist, the admin can use the /del_whitelist command.
  12. Finally, in a private chat with the bot, you can use the /get_whitelist command to get a list of all whitelisted groups.

By following these steps, you can effectively use the ChatGPT Telegram bot for your needs.

Note: the above instructions are written by ChatGPT.