如何在飞书自建项目中接入ChatGPT打造智能问答助手并远程访问

文章目录

  • 前言
  • 环境列表
  • 1.飞书设置
  • 2.克隆feishu-chatgpt项目
  • 3.配置config.yaml文件
  • 4.运行feishu-chatgpt项目
  • 5.安装cpolar内网穿透
  • 6.固定公网地址
  • 7.机器人权限配置
  • 8.创建版本
  • 9.创建测试企业
  • 10. 机器人测试

前言

在飞书中创建chatGPT机器人并且对话,在下面操作步骤中,使用到了Git克隆项目,需提前安装好Git,克隆的项目是Go语言项目,所以需提前安装Go语言环境。

环境列表

  • Git

  • Go1.20

1.飞书设置

首次注册飞书,我们可以创建个人账号

image-20230407180923798

进入后 我们创建一个飞书企业自建项目

image-20230407181129953

然后设置机器人名称和描述,下面选择图标和颜色

image-20230406135537698

创建成功后,添加一下机器人的能力

image-20230406141237807

2.克隆feishu-chatgpt项目

feishu-chatgpt项目集成了飞书调用chatgpt的功能,这边使用windwos系统 在powershell中使用git克隆项目,选择目录,把项目克隆下来

git clone https://github.com/Leizhenpeng/feishu-chatgpt.git

image-20230406131909769

然后进入code目录

cd feishu-chatgpt/code

修改配置文件名称

mv config.example.yaml config.yaml

3.配置config.yaml文件

在我们上面clone下来的项目目录的code文件夹下,可以看到config.yaml配置文件

image-20230406171959101

打开配置文件,我们可以看到前面两个参数对应的是飞书上面我们创建项目的APP IDApp Secret

image-20230406172104162

打开飞书,复制对应的参数

image-20230406173541210

将这两个参数对应填写到配置文件中

image-20230406173650789

然后下面还有两个参数:APP_ENCRYPT_KEY以及APP_VERIFICATION_TOKEN

image-20230406173826823

同样在飞书里面,点击事件与订阅,然后我们可以看到

image-20230406173948233

第一个值未开启,我们点击刷新即可

image-20230406174034802

然后我们把两个值分别对应填写到配置文件中,记得保存

image-20230406174227254

填写好飞书的参数后,接下来设置配置文件中openAI的参数,我们需要获取openAI的KEY,可以去openAI官网自己账号获取,也可以有一些免费网站获取测试,如https://freeopenai.xyz/ 这个网站,我们可以获取一个key,获取后我们把key值填写到配置文件中,记得保存文件

image-20230406180330098
打开配置文件,我们可以看到前面两个参数对应的是飞书上面我们创建项目的APP ID和App Secret

image-20230406172104162
最后,设备需要使用代理,在最后一行配置代理,不配置的话无法访问chatgpt接口,得不到chatGPT返回的回答

image-20230425173633342

4.运行feishu-chatgpt项目

首次运行会下载相关所需的包,为了防止下载不成功,先设置一下go中的代理,执行下面命令切换国内代理

go env -w GOPROXY=https://goproxy.cn,direct

然后运行main.go文件,启动项目,

go run main.go

注意看图片上面的路径,一定是在feishu-chatgpt项目的code文件夹下操作,启动后我们可以看到端口号,端口号为:9000

image-20230406180952256

服务启动后,接下来我们需要设置飞书机器人连接我们服务的地址,要求我们设置外网地址,不能使用局域网地址。

这里我们用cpolar内网穿透工具将本地9000端口下的服务映射到公网上,它会自动生成返回相应的公网地址,就可以使用这个公网地址设置飞书机器人连接服务,不需要公网IP,不用设置路由器,也不需要公网服务器。

image-20230407123142124

5.安装cpolar内网穿透

cpolar官网:https://www.cpolar.com/

访问cpolar官网,注册一个账号,然后下载并安装windows版本的cpolar客户端。

在这里插入图片描述

cpolar内网穿透安装成功后,在浏览器上访问本地9200端口【http://localhost:9200】,使用cpolar账号登录。

20230130105810

点击左侧仪表盘的隧道管理——创建隧道,创建一个http隧道,指向9000端口,就是上面我们运行main.go的服务端口号

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:9000
  • 域名类型:免费选择随机域名
  • 地区:选择China vip

点击创建

image-20230407115232967

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网地址,然后复制地址

image-20230407120110339

然后打开飞书机器人,我们填写上面的公网地址,注意,需加上资源路径/webhook/card,然后点击验证

image-20230407123437256

点击验证后没有任何提示表示成功,我们在powershell中也可以看到打印的日志

image-20230407123544083

6.固定公网地址

由于我们刚刚创建的是免费随机临时的隧道,他生成的公网地址会在24小时内随机变化,不适合作为长期使用的链接。所以我们接下来固定这个公网地址。

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。

登录cpolar官网后台,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

在这里插入图片描述

保留成功后复制保留的二级子域名地址

在这里插入图片描述

访问本地9200端口【127.0.0.1:9200】,登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20230407124139973

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新

image-20230407124213948

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了保留的二级子域名名称,将其复制下来

image-20230407124241508

然后我们打开飞书机器人,把随机地址换成我们固定的公网地址,然后点击保存

image-20230407124400820

然后打开下面的事件订阅,同样把公网地址设置进去,后面的资源路径改为/webhook/event,然后点击保存

image-20230407124654752

7.机器人权限配置

打开权限管理,筛选权限,输入im:message

image-20230407130500759

然后批量开通如下权限

  • 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(获取与更新群组信息)

img

搜索im:resource,开通这个权限

image-20230407130914494

然后再次输入im:chat,开通如下两个权限

image-20230407131056766

然后添加事件,添加如下三个事件

image-20230407132604092

8.创建版本

点击上面创建版本,填写版本信息和更新说明

image-20230407132849387

然后点击下面保存

image-20230407132927560

保存成功后申请线上发布

image-20230407133004450

9.创建测试企业

点击旁边的测试企业和人员,我们创建一个测试企业

20230411111702

创建好后点击关联应用

image-20230407134212805

然后我们切换账号,切换成我们上面创建的测试企业账号

image-20230407134317946

切换后可以看到我们创建的机器人项目,点击进去

image-20230407134357061

我们可以看到状态已经发布状态

image-20230407134536411

然后我们还要继续设置最后一步,打开凭证与基础信息,查看APPIDAPP Secret这两个值
image-20230407175040631

然后把上面的两个值在我们配置文件中替换掉,配置文件使用的是飞书个人账号的值,现在创建了测试企业号,需改为测试企业号的APPIDAPP Secret

image-20230407175654420

改完后重新启动即可

image-20230407175840024

10. 机器人测试

下载飞书,打开飞书,登陆的时候选择我们上面创建的测试企业账号
image-20230407180058150

然后点击搜索

image-20230407180157387

输入chat,即可看到我们自己设置的机器人,点击

image-20230407180234639

然后即可进行对话,机器人回复有点慢,因为是海外接口

image-20230407180602770

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/347291.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中没有递归的二进制搜索–迭代算法

本周的任务是用Java实现二进制搜索 ,您需要编写迭代和递归二进制搜索算法 。 在计算机科学中,二进制搜索或半间隔搜索是一种分而治之的算法,用于定位项目在排序数组中的位置。 二进制搜索通过将输入值与数组的中间元素进行比较来工作。 比较确…

第十三届蓝桥杯A组省赛填空程序真题集

文章目录试题 A: 裁纸刀(填空)试题 B: 寻找整数(填空)试题 C: 求和试题 D: GCD试题 E: 蜂巢试题 F: 全排列的价值试题 G: 青蛙过河试题 H: 因数平方和试题 I: 最优清零方案试题 J: 推导部分和试题 A: 裁纸刀(填空) 本题总分:5 分 【问题描述…

拉格朗日乘子法

拉格朗日乘子法 (Lagrange multipliers)是⼀种寻找多元函数在⼀组约束下的极值的⽅法。 通过引⼊拉格朗⽇乘⼦,可将有 d 个变量与 k 个约束条件的最优化问题转化为具有 d k 个变量的⽆约束优化问题求解。 本⽂希望通过⼀个直观简单的例⼦尽⼒解释拉格朗⽇乘⼦法和…

双闭环直流调速系统matlab/simulink仿真

前些天发现了十分不错的人工智能学习电子书,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看。(点击跳转人工智能学习资料) 微信公众号:创享日记(或csds992022&…

采样与保持仿真实验(计控实验一simulink)

一、实验目的与要求 1、了解数/模转换器的零阶保持器作用。 2、验证零阶保持器在控制系统中的作用。 3、验证采样周期对系统稳定性的影响。 4、学习控制系统计算机辅助设计软件MATLAB及其仿真环境SIMULINK的使用。 二、仿真软硬件环境 PC机,MATLAB R2012b。 三、…

微分与平滑仿真实验(计控实验二simulink)

一、实验目的与要求 1、了解微分对采样噪音的灵敏响应。 2、了解平滑算法抑制噪音的作用。 3、进一步学习MATLAB及其仿真环境SIMULINK的使用。 二、仿真软硬件环境 PC机,MATLAB R2012b。 三、实验原理 如图微分加在正反馈输入端,计算机用D(Z)式进行…

积分分离PID控制仿真实验(计控实验三simulink)

一、实验目的与要求 1、学会PID三个系数的选取。 2、了解积分分离值的模拟实验选取。 3、掌握SIMULINK的仿真方法。 二、仿真软硬件环境 PC机,MATLAB R2012b。 三、实验原理 如图,R为输入,C为输出。计算机不断采入误差E,进行…

数电实验三-点亮四个数码管(Multisim和Basys3)

特别说明:该系列内容均是本人实验记录,无盗取侵权之嫌,仅供参考,请多动手实践。 一、实验目的 详见报告 二、实验仪器 详见报告 三、实验内容详解 以16位拨码开关和3个按钮为输入,四个七段式数码管为输出&#xff0…

wso2 esb_使用WSO2 ESB构建制造服务总线(MSB)

wso2 esb在进入本主题之前,我想介绍一些制造业中常用的术语。 制造执行系统(MES)一词是AMR Research在1990年提出的,从先进的制造计算机信息系统的发展到现在,MES概念已经发展了近三十年。 以下是制造执行系统协会&am…

数电实验四-触发器(Multisim和Basys3)

特别说明:该系列内容均是本人实验记录,无盗取侵权之嫌,仅供参考,请多动手实践! 一、实验目的 详见报告 二、实验仪器 1.数字电路实验箱 2.器材 三、实验内容详解 1.基本RS触发器逻辑功能的测试 基本RS触发器由两个与…

基于MATLAB的简易音乐数字均衡器设计(不采用MATLAB内置函数实现)

音乐数字均衡器 MATLAB GUI界面 不同MP3播放器的均衡器设置不尽相同,以两个韩系高端品牌iRiver和iAUDIO为例,两者的EQ均衡器同分为5个频段,但是频段的划分并不一样。iRiver的产品EQ分为五段:50Hz档、200Hz档、1KHz档、3KHz档和14KHz档,每段可以进行10级调节:-15dB、-12d…

微信小程序消息推送通知模板id生成获取

前些天发现了十分不错的人工智能学习电子书,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看。(点击跳转人工智能学习资料) 1、首先在微信公众平台登录对应的微信小程序。然后点击功能…

Windows10+VS2017下GSL1.8_x86和sundials2.5.0配置及GITHUB项目schneider_et_al_2016_animaldiversity编译运行

一、GSL库下载 GSL简介及下载地址:GSL - GNU Scientific Library GSL FTP下载地址:GSL FTP GSL for Windows地址:Gsl for Windows 文件主要有: 以上链接中关于GSL1.8版本的所有文件,均已下载好且打包如下,可直接下载,本文主要分享编译链接过程中遇到的问题,避免看到这…

数电实验五-秒表初步(Multisim和Basys3)

特别说明:该系列内容均是本人实验记录,无盗取侵权之嫌,仅供参考,请多动手实践。 一、实验目的 详见报告 二、实验环境 详见报告 三、实验内容详解 基础要求:以Basys3板载的100MHz时钟为输入,4位7段式数码…

数电实验六-秒表进阶(Multisim和Basys3)

特别说明:该系列内容均是本人实验记录,无盗取侵权之嫌,仅供参考,请多动手实践。 一、实验目的 详见报告 二、实验环境 详见报告 三、实验内容详解 基础要求:在实验五的基础上,用 BTNC 按键控制秒表的工作…

云原生架构总览,发展定义架构及趋势

随着云计算发展的成熟和企业需求的推动,云原生技术和理念得到了用户的广泛接受,云原生应用场景不断丰富,云原生正在成为云上的必然趋势。 文章目录一、云原生技术发展二、云原生的定义三、云原生应用四、云原生架构原则及常用模式五、云原生未…

最小拍有纹波系统仿真实验(计控实验四simulink)

一、实验目的与要求 1、掌握最小拍有纹波系统的计算机控制脉冲传函D(z)的设计方法。    2、了解该系统对三种典型输入的适应性。 3、掌握SIMULINK的仿真方法。 二、仿真软硬件环境 PC机,MATLAB R2012b。 三、实验原理 如图 R为…

C语言实用算法系列之memcpy、memmove函数原理与实现

直接看代码 #include<stdio.h> #include<string.h> /*返回指向pDest的指针*/ void* MemCopy(void* pDest, const void* pSrc, int nCount) {char* p (char*)pDest;char* p1 (char*)pSrc;while (nCount--)*p *p1;return pDest; } /*返回指向pDest的指针&#xf…

最小拍无纹波系统仿真实验(计控实验五simulink)

一、实验目的与要求 1、掌握最小拍无纹波系统的计算机控制脉冲传函D(z)的设计方法。 2、掌握SIMULINK的仿真方法。 二、仿真软硬件环境 PC机&#xff0c;MATLAB R2012b。 三、实验原理 如图 R为输入&#xff0c;C为输出。计算机定时采样&#xff0c;计算误差E&#xff0c;按D…

Oracle ADF和Oracle Jet一起工作。 建筑模式

在本文中&#xff0c;我将考虑在Oracle ADF和Oracle Jet的组合之上实现应用程序的各种体系结构模式。 练习ADF的组织可能会考虑将Oracle Jet合并到现有项目中&#xff0c;以刷新外观并使其具有现代感和响应能力&#xff0c;并以新方式实施新功能。 它可能会考虑将Oracle Jet用于…