chatGPT 钉钉群聊交互版

项目地址:github.com/eryajf/chatgpt-dingtalk

前言

最近chatGPT异常火爆,本项目可以将GPT机器人集成到钉钉群聊中。

感谢:这个项目借鉴了wechatbot,wechatbot是一个能够集成到个人微信的GPT机器人。

功能简介

  • 支持在钉钉群聊中添加机器人,通过@机器人进行聊天交互。

  • 提问增加上下文(可能不太理想),更接近官网效果。

使用前提

  • 有openai账号,并且创建好api_key,注册相关事项可以参考此文章 。访问这里,申请个人秘钥。

  • 在钉钉开发者后台创建机器人,配置应用程序回调。

使用教程

第一步,先创建机器人

创建步骤参考文档:企业内部开发机器人,或者根据如下步骤进行配置。

  1. 创建机器人。

image_20221209_163616

步骤比较简单,这里就不赘述了。

  1. 配置机器人回调接口。

image_20221209_163652

创建完毕之后,点击机器人开发管理,然后配置将要部署的服务所在服务器的出口IP,以及将要给服务配置的域名。

  1. 发布机器人。

image_20221209_163709

点击版本管理与发布,然后点击上线,这个时候就能在钉钉的群里中添加这个机器人了。

  1. 群聊添加机器人。

image_20221209_163724

第二步,部署应用

你可以使用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 ./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;

}

}

部署完成之后,就可以在群里艾特机器人进行体验了。

效果如下:

image_20221209_163739

本地开发


# 获取项目

$ 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秒,在会话时间内所有发送给机器人的信息会作为上下文

}
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 5

没有外网的我眼泪流下来。

1年前 评论
Flex

点个赞 正好想用go写一个钉钉机器人玩玩 建议增加一个配置选项,支持socks5代理。

1年前 评论
eryajf (楼主) 1年前

大佬已经改过了代码,使用docker部署的时候,要注意参数已经变了,ApiKey改成大写APIKEY,SessionTimeout=600

1年前 评论
eryajf (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!