前言
在飞书中创建chatGPT机器人并且对话,在下面操作步骤中,使用到了Git克隆项目,需提前安装好Git,克隆的项目是Go语言项目,所以需提前安装Go语言环境。
环境列表
- Git
- Go1.20
1.飞书设置
首次注册飞书,我们可以创建个人账号
进入后 我们创建一个飞书企业自建项目
然后设置机器人名称和描述,下面选择图标和颜色
创建成功后,添加一下机器人的能力
2.克隆feishu-chatgpt项目
feishu-chatgpt项目集成了飞书调用chatgpt的功能,这边使用windwos系统 在powershell中使用git克隆项目,选择目录,把项目克隆下来
git clone https://github.com/Leizhenpeng/feishu-chatgpt.git
然后进入code目录
cd feishu-chatgpt/code
修改配置文件名称
mv config.example.yaml config.yaml
3.配置config.yaml文件
在我们上面clone下来的项目目录的code文件夹下,可以看到config.yaml配置文件
打开配置文件,我们可以看到前面两个参数对应的是飞书上面我们创建项目的APP ID和App Secret
打开飞书,复制对应的参数
将这两个参数对应填写到配置文件中
然后下面还有两个参数:APP_ENCRYPT_KEY以及APP_VERIFICATION_TOKEN
同样在飞书里面,点击事件与订阅,然后我们可以看到
第一个值未开启,我们点击刷新即可
然后我们把两个值分别对应填写到配置文件中,记得保存
填写好飞书的参数后,接下来设置配置文件中openAI的参数,我们需要获取openAI的KEY,可以去openAI官网自己账号获取,也可以有一些免费网站获取测试,如https://freeopenai.xyz/ 这个网站,我们可以获取一个key,获取后我们把key值填写到配置文件中,记得保存文件
打开配置文件,我们可以看到前面两个参数对应的是飞书上面我们创建项目的APP ID和App Secret
最后,设备需要使用代理,在最后一行配置代理,不配置的话无法访问chatgpt接口,得不到chatGPT返回的回答
4.运行feishu-chatgpt项目
首次运行会下载相关所需的包,为了防止下载不成功,先设置一下go中的代理,执行下面命令切换国内代理
go env -w GOPROXY=https://goproxy.cn,direct
然后运行main.go文件,启动项目,
go run main.go
注意看图片上面的路径,一定是在feishu-chatgpt项目的code文件夹下操作,启动后我们可以看到端口号,端口号为:9000
服务启动后,接下来我们需要设置飞书机器人连接我们服务的地址,要求我们设置外网地址,不能使用局域网地址。
这里我们用cpolar内网穿透工具将本地9000端口下的服务映射到公网上,它会自动生成返回相应的公网地址,就可以使用这个公网地址设置飞书机器人连接服务,不需要公网IP,不用设置路由器,也不需要公网服务器。
5.安装cpolar内网穿透
cpolar官网:https://www.cpolar.com/
访问cpolar官网,注册一个账号,然后下载并安装windows版本的cpolar客户端。
cpolar内网穿透安装成功后,在浏览器上访问本地9200端口【http://localhost:9200】,使用cpolar账号登录。
点击左侧仪表盘的隧道管理——创建隧道,创建一个http隧道,指向9000端口,就是上面我们运行main.go的服务端口号
- 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
- 协议:选择http
- 本地地址:9000
- 域名类型:免费选择随机域名
- 地区:选择China vip
点击创建
隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网地址,然后复制地址
然后打开飞书机器人,我们填写上面的公网地址,注意,需加上资源路径/webhook/card,然后点击验证
点击验证后没有任何提示表示成功,我们在powershell中也可以看到打印的日志
6.固定公网地址
由于我们刚刚创建的是免费随机临时的隧道,他生成的公网地址会在24小时内随机变化,不适合作为长期使用的链接。所以我们接下来固定这个公网地址。
注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。
登录cpolar官网后台,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称
保留成功后复制保留的二级子域名地址
访问本地9200端口【127.0.0.1:9200】,登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑
修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
点击更新
更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了保留的二级子域名名称,将其复制下来
然后我们打开飞书机器人,把随机地址换成我们固定的公网地址,然后点击保存
然后打开下面的事件订阅,同样把公网地址设置进去,后面的资源路径改为/webhook/event,然后点击保存
7.机器人权限配置
打开权限管理,筛选权限,输入im:message
然后批量开通如下权限
im:resource(获取与上传图片或文件资源)
m:message
im:message.group_at_msg(获取群组中所有消息)
im:messagegroup_at_msg:readonly(接收群聊中@机器人消息事件)
im:message.p2p_msg(获取用户发给机器人的单聊消息)
im:messagep2p_msg:readonly(读取用户发给机器人的单聊消息)
im:message:send_as_bot(获取用户在群组中@机器人的消息)
im:chat:readonly(获取群组信息)
im:chat(获取与更新群组信息)
搜索im:resource,开通这个权限
然后再次输入im:chat,开通如下两个权限
然后添加事件,添加如下三个事件
8.创建版本
点击上面创建版本,填写版本信息和更新说明
然后点击下面保存
保存成功后申请线上发布
9.创建测试企业
点击旁边的测试企业和人员,我们创建一个测试企业
创建好后点击关联应用
然后我们切换账号,切换成我们上面创建的测试企业账号
切换后可以看到我们创建的机器人项目,点击进去
我们可以看到状态已经发布状态
然后我们还要继续设置最后一步,打开凭证与基础信息,查看APPID和APP Secret这两个值
然后把上面的两个值在我们配置文件中替换掉,配置文件使用的是飞书个人账号的值,现在创建了测试企业号,需改为测试企业号的APPID和APP Secret
改完后重新启动即可
10. 机器人测试
下载飞书,打开飞书,登陆的时候选择我们上面创建的测试企业账号
然后点击搜索
输入chat,即可看到我们自己设置的机器人,点击
然后即可进行对话,机器人回复有点慢,因为是海外接口