Skip to content

Latest commit

 

History

History
104 lines (66 loc) · 4.69 KB

README-zh.md

File metadata and controls

104 lines (66 loc) · 4.69 KB

ChatGPT Telegram Bot

python-version python-telegram-bot-version db openai-version license bot

English | 中文

一个拥有丝滑AI体验的Telegram Bot

⚡Feature

[✓] 同时支持Azure OpenAI和原生OpenAI接口

[✓] 实时(流式)返回AI响应的答案,体验更快捷、更丝滑

[✓] 预设15种Bot身份,可快速切换

[✓] 支持自定义Bot身份,满足个性化需求

[✓] 支持上下文件内容一键清空,随时重开会话

[✓] Telegram Bot 原生按钮支持,直观快捷实现需要功能

[✓] 用户等级划分,不同等级享有不同单次会话Token数量、上下文数量和会话频率

[✓] 支持中/英双语切换

[✓] More ...

👨‍💻TODO

[x] 允许用户在Bot中使用自己的OpenAI Key,以获得更多自由

[x] 完善ErrorHandler

[x] 容器化

🤖快速体验

Telegram Bot: RoboAceBot

🛠️部署

安装依赖

pip install -r requirements.txt

配置数据库

安装数据库

你可以使用下面的命令快速创建本地MySQL数据库

dcker-compose up -d -f db/docker-dompose.yaml

初始化数据库

mysql -uusername -p -e "source db/database.sql"

添加配置

需要的所有配置都在config.yaml中,文件格式内容,请参考config.yaml.example

Parameter Optional Description
BOT.TOKEN No @botFather创建bot并获取Token
DEVELOPER_CHAT_ID No bot出错时,接收信息的TG帐号ID, ID可以从@get_id_bot 获取
MYSQL No MySQL连接相关的参数
TIME_SPAN No 计算rate limit所用的时间窗口大小,单位:分钟
RATE_LIMIT No key为用户等级,value为TIME_SPAN时间内可以聊天的最大数量
CONTEXT_COUNT No key为用户等级,value为每次聊天所包含的上下文数量
MAX_TOKEN No key为用户等级, value为每次聊天AI返回节点的最大Token数
AI.TYPE Yes 使用的是AI类型,有openaiazure两个选项,默认为openai
AI.BASE Yes 从 Azure 门户检查资源时,可在“密钥和终结点”部分中找到此值。 或者,可以在“Azure OpenAI Studio”>“操场”>“代码视图”中找到该值, 仅当AI.TYPEzaure里需要设置
AI.ENGINE Yes Azure OpenAI的Deployment名, 仅当AI.TYPEzaure里需要设置
AI.VERSION Yes Azure OpenAI的版本号, 仅当AI.TYPEzaure里需要设置

如果你使用的是Azure的OpenAI,你可在这个链接里获取所需的所有内容:

开始通过 Azure OpenAI 服务使用 ChatGPT 和 GPT-4

🚀启动

python main.py | tee >> debug.log

❤️写在最后

希望本项目在给你丝滑AI体验的同时,能帮助更多人接触并开始创建和使用自己的Telegram Bot