部署私有 chatGPT Telegram 机器人
准备工作
- 注册 chatGPT 账户
- 注册 Telegram Bot,通过 @BotFather 创建,并获取 token
- 获取 Telegram Chat ID, 通过 @userinfobot 查询
- 获取 Access Token
- 准备反代服务,可以选择别人提供的,不是一定要自己部署
运行
克隆 chatgpt-telegram-bot
准备配置文件
local.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17{
"debug": 1,
"bot": {
"token": "telegram bot token",
"groupIds": [],
"userIds": [],
"chatCmd": "/chat"
},
"api": {
"type": "unofficial",
"unofficial": {
"accessToken": "chatGPT access token",
"apiReverseProxyUrl": "https://chat.duti.tech/api/conversation",
"model": ""
}
}
}userIds
为数字,比如114797892
,可指定多个,如果不指定,就所有人都可用,groupIds
同理,建议配置上accessToken
会有过期时间,暂时没特别好的自动更新的办法,主要是有 cloudflare 验证
修改
docker-compose.yml
,并构建镜像1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16version: '3'
services:
chatgpt:
image: chatgpt-telegram-bot
container_name: chatgpt
build: .
restart: unless-stopped
volumes:
- ./local.json:/app/config/local.json
networks:
- nginx-proxy
networks:
nginx-proxy:
external: truedocker-compose build
构建镜像运行
docker-compose up -d
运行查看 log
docker-compose logs -f --tail 100 chatgpt
如无意外的话,应该会输出类似的日志
1
2
3
4
5
6> node --experimental-loader=extensionless dist/index.js
(node:42) ExperimentalWarning: Custom ESM Loaders is an experimental feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
2/23/2023, 3:06:13 AM 🔮 ChatGPT API has started...
2/23/2023, 3:06:14 AM 🤖 Bot @xxx_bot has started...在 Telegram 中添加刚才创建的机器人,通过
/chat 聊天内容
开始,/help
会显示支持的指令
---EOF---