Join the Telegram Group chat to share your user experience or report Bugs.
✅ 支持 ChatGPT API 和 GPT4 API
✅ 支持联网搜索🔍
✅ 支持基于嵌入向量数据库的文档问答
✅ 异步处理消息,多线程回答问题,支持对话隔离,不同用户不同对话
✅ 支持精准的消息 Markdown 渲染,用的是我的另一个项目
✅ 支持 ChatGPT 流式输出,实现打字机效果
✅ 增加一键 Replit 部署,真正的零成本,傻瓜式部署,支持 kuma 防睡眠
✅ 全平台,随时随地,只要有 telegram 就可以打破知识壁垒
✅ 支持 docker,Zeabur,Replit,fly.io 部署
设置好域名和环境变量后,重新部署即可。
导入 Github 仓库后,设置运行命令
pip install -r requirements.txt > /dev/null && python3 main.py
在左边栏 Tools 里面选择 Secrets,添加机器人需要的环境变量,一共四个:
- BOT_TOKEN: 你需要在 BotFather 创建一个 bot 以获取 BOT_TOKEN
- WEB_HOOK: 在 Replit 会自动分配一个域名给你,填入
https://appname.username.repl.co
- API: openai 的 api key。
- API4: openai gpt4 的 api key。
- API_URL: 调用 api 的地址,默认是:https://api.openai.com/v1/chat/completions
- GPT_ENGINE:模型名字,默认是
gpt-3.5-turbo
- NICK: 可选,默认为空,NICK 是机器人的名字。当用户输入消息以 NICK 开头,机器人才会回答,否则机器人会回答任何消息。尤其在群聊里,没有 NICK,机器人会对所有消息进行回复。
- PASS_HISTORY: 可选,默认为真,表示机器人会记住对话历史,下次回复时会考虑上下文。如果设置为假,机器人会忘记对话历史,只考虑当前对话。
点击屏幕上方的 run,即可运行机器人。记得打开 Always On。
官方文档:https://fly.io/docs/
使用 Docker 镜像部署 fly.io 应用
flyctl launch --image yym68686/chatgpt:1.0
输入应用的名字,若提示初始化 Postgresql 或 Redis,一律选择否。
按照提示部署。在官网控制面板会提供一个二级域名,可以使用这个二级域名访问到服务。
设置环境变量
flyctl secrets set WEB_HOOK=https://flyio-app-name.fly.dev/
flyctl secrets set BOT_TOKEN=bottoken
flyctl secrets set API=
flyctl secrets set COOKIES=
# 可选
flyctl secrets set NICK=javis
查看所有环境变量
flyctl secrets list
移除环境变量
flyctl secrets unset MY_SECRET DATABASE_URL
ssh 连接 fly.io 容器
# 生成密钥
flyctl ssh issue --agent
# ssh 连接
flyctl ssh establish
查看 webhook url 是否正确
https://api.telegram.org/bot<token>/getWebhookInfo
启动容器
docker run -p 80:8080 -dit \
-e BOT_TOKEN="telegram bot token" \
-e WEB_HOOK="https://your_host.com/" \
-e API="" \
-e API_URL= \
yym68686/chatgpt:1.0
或者你想使用 Docker Compose,下面是 docker-compose.yml 示例:
version: "3.5"
services:
chatgptbot:
container_name: chatgptbot
image: yym68686/chatgpt:1.0
environment:
- BOT_TOKEN=
- WEB_HOOK=
- API=
- API_URL=
ports:
- 80:8080
后台运行 Docker Compose 容器
docker-compose up -d
仓库打包 Docker 镜像,推送到 Docker Hub
docker build --no-cache -t chatgpt:1.0 -f Dockerfile.build --platform linux/amd64 .
docker tag chatgpt:1.0 yym68686/chatgpt:1.0
docker push yym68686/chatgpt:1.0
参考项目:
https://core.telegram.org/bots/api
https://github.com/acheong08/ChatGPT
https://github.com/franalgaba/chatgpt-telegram-bot-serverless
消息的 markdown 渲染用的是我的另一个项目:https://github.com/yym68686/md2tgmd