飞书如何接入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.飞书设置
首次注册飞书,我们可以创建个人账号

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

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

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

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官网:cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站
访问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,即可看到我们自己设置的机器人,点击

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

总结
关于飞书如何接入ChatGPT,打造个人智能问答助手的讲解,懒大王就先分享到这里了,如果你认为这篇文章对你有帮助,请给懒大王点个赞点个关注吧,如果发现什么问题,欢迎评论区留言!!💕💕 💕
相关文章:
飞书如何接入ChatGPT-打造个人智能问答助手实现无障碍交流
目录 前言 环境列表 1.飞书设置 2.克隆feishu-chatgpt项目 3.配置config.yaml文件 4.运行feishu-chatgpt项目 5.安装cpolar内网穿透 6.固定公网地址 7.机器人权限配置 8.创建版本 9.创建测试企业 10. 机器人测试 总结 前言 在飞书中创建chatGPT机器人并且对话&am…...
Proteus仿真--基于1602LCD的秒表设计
本文介绍基于1602LCD的秒表设计(完整仿真源文件及代码见文末链接) 仿真图如下 本设计中80C51单片机作为主控,用1602LCD作为显示模块,共有2个按键,K1按键用于秒表计时启停控制,K2用于清零显示内容 仿真运…...
香港站群服务器中1C/2C/4C/8C 的概念及区别
在选择香港站群服务器时,经常会看到1C、2C、4C和8C等不同的IP段。这些IP段代表了不同的子网掩码长度,也反映了服务器的IP地址数量和丰富性。 让我们来了解一下什么是IP段。IP段是指一组连续的IP地址,其中每个地址的前三个数字相同&…...
搭建SRS视频服务器
去官方网站下载FFmpeg6.1 https://ffmpeg.org/download.html拷贝到CentOS7.9中的/opt目录下,解压并重命名 tar -xvf ffmpeg-6.1.tar.xz 解压后编译安装 ./configure make make install从github下载SRS4.0release 解压后 如果ffmpeg的路径不在/usr/local/bin/ffmpe…...
【C++初阶】STL详解(八)List的模拟实现
本专栏内容为:C学习专栏,分为初阶和进阶两部分。 通过本专栏的深入学习,你可以了解并掌握C。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C 🚚代码仓库:小小unicorn的代码仓库&…...
Day02嵌入式---按键控灯
一、简单介绍 按键控制灯开关是一种常见的嵌入式系统示例项目,它通常用于演示嵌入式系统的基本控制能力。该项目由一个或多个LED和一个按键组成。通过按下按键,可以控制LED的开关状态,从而实现灯的亮灭控制。 二、查看功能手册 2.1 查看硬件…...
Centos设置nginx开机自启动设置
Centos设置nginx开机自启动设置 要设置CentOS中的Nginx开机自启动,可以按照以下步骤进行操作: 首先,登录到CentOS服务器上,并以root用户或具有sudo权限的用户身份执行以下命令来安装Nginx(如果尚未安装)&a…...
拼接合并yuv序列转成mp4
ffmpeg需要用支持libx264的版本,如果需要,可以从这个网站下载编译支持libx264\x265的ffmpeg https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-6.1-essentials_build.7z #-*- coding:utf-8-*- import osif __name__ "__main__":# 1 输入…...
访谈 破风之人毛京波,选择难而正确的路
“无论是在燃油时代还是电动时代,我们所做的一切,只为回归纯粹的驾驶乐趣。”履新路特斯中国总裁整整一年的毛京波,从不放过任何一个展示路特斯品牌驾驭精神的机会。 11月17日,广州车展开幕首日,位于5.2馆的路特斯“冠…...
java实现一个简单的监听器
在 Java 中,我们可以通过实现监听器(Listener)模式来处理事件和回调。监听器模式是一种常见的设计模式,用于实现对象间的松耦合通信。本文将介绍如何在 Java 中实现一个简单的监听器。 步骤 以下是实现一个监听器的基本步骤&…...
用HALCON标定助手对相机进行标定
任务要求: 已知相机镜头焦距f为8mm,相机单个CCD像素在水平和竖直两个方向上的尺寸均为3.75微米,相机为普通透光镜头和面阵相机,对相机进行标定,测量相机的内外参数。 操作步骤: 1. 在HALCON中运行gen_ca…...
5 个适用于 Windows 的顶级免费数据恢复软件
对于计算机来说,最重要的是用户数据。除了您的数据之外,有关计算机的其他所有内容都是可替换的。这三个是数据丢失的最常见原因: 文件/文件夹删除丢失分区分区损坏 文件/文件夹删除 文件/文件夹删除是最常见的数据丢失类型。大多数时候&am…...
MySQL 批量插入记录报 Error 1390 (HY000)
文章目录 1.背景2.问题3.分批插入4.一次最多能插入多少条记录?5.什么是 Prepared Statement?参考文献 1.背景 Golang 后台服务使用 GORM 实现与 MySQL 的交互,在实现一个通过 Excel 导入数据的接口时,使用 Save 方法一次性插入大…...
线程池(用于处理Runnable任务或Callable任务)
一,线程池 二, 如何创建线程池 案例: //1,通过ThreadPoolExecuter创建一个线程池对象ExecutorService pool new ThreadPoolExecutor(3,5,8,TimeUnit.SECONDS,new LinkedBlockingQueue<>(4),Executors.defaultThreadFactory(),new Thr…...
MATLAB在信号系统中的应用
1.产生一个幅度为1, 基频为2Hz,占空比为50%的周期方波.要求画出图形。 在MATLAB中,函数square(w0*t, DUTY)产生基本频率为w0 (周期T2*pi/w0)、占空比DUTY (τ/T)*100的周期矩形波(方波),默认情况下占空比DUTY50。占空…...
Jenkins与Docker的自动化CI/CD流水线实践
Pipeline 有诸多优点,例如: 项目发布可视化,明确阶段,方便处理问题 一个Jenkins File文件管理整个项目生命周期 Jenkins File可以放到项目代码中版本管理 Jenkins管理界面 操作实例:Pipeline的简单使用 这里是比较…...
企业数字化转型的作用是什么?_光点科技
在当今快速变化的商业环境中,数字化转型已成为企业发展的重要策略。企业数字化转型指的是利用数字技术改造传统业务模式和管理方式,以提升效率、增强竞争力和创造新的增长机会。 提升运营效率:数字化转型通过引入自动化工具和智能系统&#x…...
css加载会造成阻塞吗??
前言 前几天面试问到了这个问题,当时这个答得不敢确定哈哈,虽然一面还是过了 现在再分析下这个,总结下,等下次遇到就能自信得回答,666 准备工作 为了完成本次测试,先来科普一下,如何利用chr…...
Java中的jvm——面试题+答案(JVM的高级概念和调优技巧,包括垃圾回收、内存分析、优化技术等)——第16期
涉及Java虚拟机(JVM)高级概念和调优技巧的面试题以及简要答案: 什么是JVM调优?有哪些常见的JVM调优参数? 答案: JVM调优是通过调整JVM的参数和配置,以提高Java应用程序的性能和稳定性。常见的JV…...
***Linux下Mysql的安装
以下是在Linux系统下安装MySQL的步骤: 1.访问MySQL官网下载页面(https://dev.mysql.com/downloads/mysql/),选择适合您Linux系统的版本进行下载。 2.下载完成后,解压缩文件并将其移动到/usr/local目录下:…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?
FTP(File Transfer Protocol)本身是一个基于 TCP 的协议,理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况,主要原因包括: ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...
Qt的学习(一)
1.什么是Qt Qt特指用来进行桌面应用开发(电脑上写的程序)涉及到的一套技术Qt无法开发网页前端,也不能开发移动应用。 客户端开发的重要任务:编写和用户交互的界面。一般来说和用户交互的界面,有两种典型风格&…...
DAY 45 超大力王爱学Python
来自超大力王的友情提示:在用tensordoard的时候一定一定要用绝对位置,例如:tensorboard --logdir"D:\代码\archive (1)\runs\cifar10_mlp_experiment_2" 不然读取不了数据 知识点回顾: tensorboard的发展历史和原理tens…...
Python环境安装与虚拟环境配置详解
本文档旨在为Python开发者提供一站式的环境安装与虚拟环境配置指南,适用于Windows、macOS和Linux系统。无论你是初学者还是有经验的开发者,都能在此找到适合自己的环境搭建方法和常见问题的解决方案。 快速开始 一分钟快速安装与虚拟环境配置 # macOS/…...
Redis上篇--知识点总结
Redis上篇–解析 本文大部分知识整理自网上,在正文结束后都会附上参考地址。如果想要深入或者详细学习可以通过文末链接跳转学习。 1. 基本介绍 Redis 是一个开源的、高性能的 内存键值数据库,Redis 的键值对中的 key 就是字符串对象,而 val…...
