Telegram 的 ChatGPT Bot
💥 更新到 v1.4 前请阅读
自 v1.4.0 起,我们调整了配置格式,不再兼容以前的版本。请查看 配置文档 获取更多详情。更新到 v1.4.0 后,您应备份旧的配置文件并创建新的配置文件。
🎉 新闻
- 微软 Azure TTS 现已支持!Bot 现在可以回复语音消息!
- ChatGPT 温度 现已支持!您可以在配置中设置温度,以自定义 ChatGPT 回复的创造力。
- 提供了更好的 日志系统,以便调试。
- 提供了更好的结构化配置。您应该查阅 配置文档 并修改配置文件。我们暂时移除了
config.py
配置脚本。 - 增加了模型选择功能。您现在可以在配置文件中选择您想要使用的模型。如果您有权限,Bot 可以由 GPT-4 提供支持。
🐱 介绍
Telegram 的 ChatGPT Bot 是由 OpenAI ChatGPT API 实现的,该 API 于 2023 年 3 月 1 日发布。Telegram 集成框架基于 python-telegram-bot。
ChatGPT Bot 可以充当您的 Telegram 联系人。您可以与它私聊,分享给联系人,并在群聊中协作。我们非常重视隐私保护,确保 Bot 无法获取群聊中的任何无关消息。
Bot 分享知识并激发新的有趣想法。许多有趣的功能,如 DALL·E 和 Whisper 都被集成在一起,使我们的 Bot 更加智能和易用。
我们希望您喜欢它!
🌟 功能
Telegram Bot 具有以下功能:
- ChatGPT,AI 顾问。您可以根据偏好自定义 Bot 的角色。
- DALL·E,图像生成 AI 模型。发送一个简短的提示给 Bot,即可获得自己的画作。
- Whisper,智能语音识别器。Bot 可以读取您的语音信息。
- Azure TTS,文本到生动语音的语音服务功能。Bot 可以回复语音消息。
- 全面的隐私保护。Bot 无法(当然我们也不会)收集群聊中的任何消息,除了用户提示。
其他功能:
- ChatGPT 角色和温度自定义。
- Telegram 的 内联模式 允许您在与联系人的聊天中私下查询 Bot,即使 Bot 不是群聊成员。
- 用户白名单,控制谁可以使用 Bot。您还可以设置
allow_all_users
为true
,允许任何用户使用 Bot。 - 设置 DALL·E 的每日请求限制。
- 为 超级用户 分配更多资源。
- 支持 Docker 部署。(此方法由社区维护。感谢 @EstrellaXD 的贡献)
👷 部署您的 Bot
准备工作
- 通过 @BotFather 创建一个 Telegram Bot 并获取令牌。
- 创建一个 OpenAI 帐户并获取 API 密钥。
- 需要一个具有 Python 3 的 Linux VM 或服务器来运行 Bot。
- 需要一个实用的互联网环境。
- (可选)FFmpeg 是 Bot 处理 Whisper 语音消息所必需的。如果您不打算使用语音消息,则无需安装,并且 必须将配置文件中的
enable_voice
设置为 False。 - (可选)如果 Bot 需要回复语音消息,则需要 Azure TTS SDK。
安装
- 从主分支 Git 克隆或下载最新发布的 源代码 文件并安装依赖项。
git clone https://github.com/flynnoct/chatgpt-telegram-bot.git
cd chatgpt-telegram-bot
pip install -r requirements.txt
- 创建一个配置文件来管理 Bot。
这个配置文件包含敏感信息,如 telegram_token 和 openai_api_key,我们只发布了对应的模板 config.json.template
。因此,您需要通过将模板中的相关字段替换为您自己的内容来创建一个新的 config.json
文件。
cp config.json.template config.json
推荐: 您应该保持 config.json.template
未修改,因为 Bot 需要从中读取默认配置值。为了向后兼容,强烈建议在更新到新版本时检查模板是否添加了新参数。
更多细节,请查看 文档。
- 使用
start_bot.sh
运行 Bot 并尝试与之对话。您也可以使用 Docker 运行 Bot。
# 首先,确保您在项目的根目录,
# 即 <您的下载位置>/chatgpt-telegram-bot
bash ./bin/start_bot.sh # 启动 Bot
# 使用 docker compose 运行 Bot
docker compose up -d
要清除 ChatGPT 对话上下文并重新启动 Bot,请运行 shell 脚本 restart_bot.sh
。要关闭 Bot,请运行 stop_bot.sh
。
bash ./bin/restart_bot.sh # 重新启动 Bot
bash ./bin/stop_bot.sh # 停止 Bot
到现在为止,您已经成功部署了 Bot。
使用
Bot 可以在 Telegram 的个人聊天和群聊中工作。
在个人聊天中,只需发送消息给 Bot,它会回复您。
在群聊中,使用 /chat
来调用 Bot。
在与联系人的个人聊天中,使用 @your_bot_name <your messages>
通过 Telegram 内联模式唤起 Bot。您和您的联系人都能在聊天中看到 Bot 的回复。
- 支持以下命令:
/start
: 启动 Bot。/role <prompt>
: 为对话设置角色。/chat
: 在群聊中调用 Bot。/dalle <prompt>
: 根据提示向 DALL·E 请求一幅画。/clear
: 清除会话上下文。/getid
: 获取您的 Telegram 用户 ID。
(可选)您可以将它们设置为 Telegram Bot 命令,详见 这里。
- 内联模式
要启用内联模式,详见 这里。
输入 /mybots
> Your_Bot_Name > Bot Settings > Inline Feedback,您必须将 Inline Feedback
设置为 100%。
故障排除
查看 文档。
🧑💻 对开发人员
为想要定制 Bot 的开发人员提供了 文档。
📚 发布说明
最新发布的版本在 这里。
发布说明在 这里。
更多有趣的新功能即将推出!
🪪 许可证
☕️ 请我喝咖啡(不是 Java)
如果您喜欢这个项目,可以请我喝杯咖啡❤️ 或者给这个仓库一个免费的星⭐️。
点击 支付宝 打开二维码。