|
2 年 前 | |
---|---|---|
.github | 2 年 前 | |
config | 2 年 前 | |
gtp | 2 年 前 | |
public | 2 年 前 | |
service | 2 年 前 | |
.gitignore | 2 年 前 | |
Dockerfile | 2 年 前 | |
LICENSE | 2 年 前 | |
README.md | 2 年 前 | |
config.dev.json | 2 年 前 | |
go.mod | 2 年 前 | |
go.sum | 2 年 前 | |
main.go | 2 年 前 |
🌉 在钉钉群聊中添加ChatGPT机器人 🌉
最近ChatGPT异常火爆,本项目可以将GPT机器人集成到钉钉群聊中。
感谢:
这个项目借鉴了chatgpt-dingtalk,chatgpt-dingtalk是一个能够集成到个人微信的GPT机器人。
创建步骤参考文档:企业内部开发机器人,或者根据如下步骤进行配置。
步骤比较简单,这里就不赘述了。
创建完毕之后,点击机器人开发管理,然后配置将要部署的服务所在服务器的出口IP,以及将要给服务配置的域名。
点击版本管理与发布,然后点击上线,这个时候就能在钉钉的群里中添加这个机器人了。
你可以使用docker快速运行本项目。
第一种:基于环境变量运行
# 运行项目
$ docker run -itd --name chatgpt -p 8090:8090 -e ApiKey=xxxx -e SessionTimeout=60s --restart=always docker.mirrors.sjtug.sjtu.edu.cn/eryajf/chatgpt-dingtalk:latest
运行命令中映射的配置文件参考下边的配置文件说明。
第二种:基于配置文件挂载运行
# 复制配置文件,根据自己实际情况,调整配置里的内容
$ cp config.dev.json config.json # 其中 config.dev.json 从项目的根目录获取
# 运行项目
docker run -itd --name chatgpt -p 8090:8090 -v `pwd`/config.json:/app/config.json --restart=always docker.mirrors.sjtug.sjtu.edu.cn/eryajf/chatgpt-dingtalk:latest
其中配置文件参考下边的配置文件说明。
部署完成之后,通过Nginx代理本服务:
server {
listen 80;
server_name chat.eryajf.net;
client_header_timeout 120s;
client_body_timeout 120s;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://localhost:8090;
}
}
部署完成之后,就可以在群里艾特机器人进行体验了。
效果如下:
如果你想通过命令行直接部署,可以直接下载release中的压缩包 ,请根据自己系统以及架构选择合适的压缩包,下载之后直接解压运行。
下载之后,在本地解压,即可看到可执行程序,与配置文件:
$ tar xf chatgpt-dingtalk-v0.0.4-darwin-arm64.tar.gz
$ cd chatgpt-dingtalk-v0.0.4-darwin-arm64
$ cp config.dev.json # 根据情况调整配置文件内容
$ ./chatgpt-dingtalk # 直接运行
# 如果要守护在后台运行
$ nohup ./chatgpt-dingtalk &> run.log &
$ tail -f run.log
# 获取项目
$ git clone https://github.com/eryajf/chatgpt-dingtalk.git
# 进入项目目录
$ cd chatgpt-dingtalk
# 复制配置文件,根据个人实际情况进行配置
$ cp config.dev.json config.json
# 启动项目
$ go run main.go
{
"api_key": "xxxxxxxxx", // openai api_key
"session_timeout": 60 // 会话超时时间,默认60秒,在会话时间内所有发送给机器人的信息会作为上下文
}