🤖 A Telegram bot that integrates with OpenAI's official ChatGPT APIs to provide answers, written in Python
项目详情
深入了解 chatgpt-telegram-bot 的功能与特性
ChatGPT Telegram Bot
A Telegram bot that integrates with OpenAI's officialChatGPT, DALL·E and Whisper APIs to provide answers. Ready to use with minimal configuration required.
Telegram user IDs of admins. These users have access to special admin commands, information and no budget restrictions. Admin IDs don't have to be added to ALLOWED_TELEGRAM_USER_IDS. Note: by default, no admin (-)
ALLOWED_TELEGRAM_USER_IDS
A comma-separated list of Telegram user IDs that are allowed to interact with the bot (use getidsbot to find your user ID). Note: by default, everyone is allowed (*)
Optional configuration
The following parameters are optional and can be set in the .env file:
Budgets
Parameter
Description
Default value
BUDGET_PERIOD
Determines the time frame all budgets are applied to. Available periods: daily(resets budget every day), monthly(resets budgets on the first of each month), all-time(never resets budget). See the Budget Manual for more information
monthly
USER_BUDGETS
A comma-separated list of $-amounts per user from list ALLOWED_TELEGRAM_USER_IDS to set custom usage limit of OpenAI API costs for each. For *- user lists the first USER_BUDGETS value is given to every user. Note: by default, no limits for any user (*). See the Budget Manual for more information
*
GUEST_BUDGET
$-amount as usage limit for all guest users. Guest users are users in group chats that are not in the ALLOWED_TELEGRAM_USER_IDS list. Value is ignored if no usage limits are set in user budgets (USER_BUDGETS=*). See the Budget Manual for more information
100.0
TOKEN_PRICE
$-price per 1000 tokens used to compute cost information in usage statistics. Source: https://openai.com/pricing
0.002
IMAGE_PRICES
A comma-separated list with 3 elements of prices for the different image sizes: 256x256, 512x512 and 1024x1024. Source: https://openai.com/pricing
Check out the Budget Manual for possible budget configurations.
Additional optional configuration options
Parameter
Description
Default value
ENABLE_QUOTING
Whether to enable message quoting in private chats
true
ENABLE_IMAGE_GENERATION
Whether to enable image generation via the /image command
true
ENABLE_TRANSCRIPTION
Whether to enable transcriptions of audio and video messages
true
PROXY
Proxy to be used for OpenAI and Telegram bot (e.g. http://localhost:8080)
-
OPENAI_MODEL
The OpenAI model to use for generating responses. You can find all available models here
gpt-3.5-turbo
ASSISTANT_PROMPT
A system message that sets the tone and controls the behavior of the assistant
You are a helpful assistant.
SHOW_USAGE
Whether to show OpenAI token usage information after each response
false
STREAM
Whether to stream responses. Note: incompatible, if enabled, with N_CHOICES higher than 1
true
MAX_TOKENS
Upper bound on how many tokens the ChatGPT API will return
1200 for GPT-3, 2400 for GPT-4
MAX_HISTORY_SIZE
Max number of messages to keep in memory, after which the conversation will be summarised to avoid excessive token usage
15
MAX_CONVERSATION_AGE_MINUTES
Maximum number of minutes a conversation should live since the last message, after which the conversation will be reset
180
VOICE_REPLY_WITH_TRANSCRIPT_ONLY
Whether to answer to voice messages with the transcript only or with a ChatGPT response of the transcript
false
VOICE_REPLY_PROMPTS
A semicolon separated list of phrases (i.e. Hi bot;Hello chat). If the transcript starts with any of them, it will be treated as a prompt even if VOICE_REPLY_WITH_TRANSCRIPT_ONLY is set to true
-
N_CHOICES
Number of answers to generate for each input message. Note: setting this to a number higher than 1 will not work properly if STREAM is enabled
1
TEMPERATURE
Number between 0 and 2. Higher values will make the output more random
1.0
PRESENCE_PENALTY
Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far
0.0
FREQUENCY_PENALTY
Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far
0.0
IMAGE_SIZE
The DALL·E generated image size. Allowed values: 256x256, 512x512 or 1024x1024
512x512
GROUP_TRIGGER_KEYWORD
If set, the bot in group chats will only respond to messages that start with this keyword
-
IGNORE_GROUP_TRANSCRIPTIONS
If set to true, the bot will not process transcriptions in group chats
true
BOT_LANGUAGE
Language of general bot messages. Currently available: en, de, ru, tr, it, fi, es, id, nl, zh-cn, zh-tw, vi, fa, pt-br, uk. Contribute with additional translations