飞书ChatGPT机器人 – 打造智能问答助手实现无障碍交流

2023-07-13 19:09:32


前言

在飞书中创建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

转载自cpolar极点云文章:飞书ChatGPT机器人 – 将ChatGPT集成到飞书机器人,打造智能问答助手

更多推荐

微信小程序——事件监听

微信小程序是一种轻量级的应用程序,它在移动设备上提供了丰富的用户体验。在开发微信小程序时,事件监听是一项重要的技术,它允许开发者捕捉和处理用户的各种操作。本文将介绍微信小程序事件监听的概念、用法和一些实用示例。1.什么是事件监听?事件监听是一种编程技术,通过在应用程序中注册监听器来捕捉和处理特定事件的发生^1。在微信小

Java手写Prim算法和Prim算法应用拓展案例

Java手写Prim算法和Prim算法应用拓展案例1.算法思维导图以下是使用Mermanid代码表示的Prim算法实现原理:#mermaid-svg-W6cUKRD3qrphQAun{font-family:"trebuchetms",verdana,arial,sans-serif;font-size:16px;fi

IP代理安全吗?如何防止IP被限制访问?

你是否遇到过可以正常上网,但访问某个网站却被禁止?注册某个网站账号,却被封号?那都是因为IP出现问题!您的IP地址透露很多关于您的信息,包括您的位置和互联网活动。在本文中,我们将一起了解IP地址,网站如何利用它来跟踪您,以及与IP代理如何帮助您更好的推进业务。什么是IP地址?IP地址是互联网协议地址(InternetP

hive 中正则表表达式使用

一概念概念:正则表达式(RegularExpression),又称规则表达式,是记录文本规则的代码。通常被用来检索、替换那些符合某个模式(规则)的文本。特性:最初是由Unix中的工具软件(例如sed和grep)普及开的,现在许多程序设计语言都支持利用正则表达式。常见缩写:正则表达式在代码中,通常缩写成regex、reg

etcd实现大规模服务治理应用实战

导读:服务治理目前越来越被企业建设所重视,特别现在云原生,微服务等各种技术被更多的企业所应用,本文内容是百度小程序团队基于大模型服务治理实战经验的一些总结,同时结合当前较火的分布式开源kv产品etcd,不仅会深入剖析ectd两大核心技术Raft与boltdb的实现原理,也会披露服务治理真实实践的经验,希望帮助大家在服务

怒刷LeetCode的第8天(Java版)

目录第一题题目来源题目内容解决方法方法一:双指针和排序​编辑第二题题目来源题目内容解决方法方法一:双指针方法二:递归方法三:快慢指针方法四:栈第三题题目来源题目内容解决方法方法一:栈方法二:字符串替换方法三:链表方法四:栈和正则表达式第一题题目来源18.四数之和-力扣(LeetCode)题目内容解决方法方法一:双指针和

设计模式之抽象工厂

抽象工厂模式结构图抽象工厂模式,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类工厂方法模式,定义一个用于创建对象的接口,让子类决定实例化哪一个类。抽象工厂模式是围绕一个超级工厂创建其他工厂。该超级工程又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式产品族:一个工

常用设计模式—

一、设计模式简介23种设计模式1.1、设计模式七大原则1.开闭原则对扩展开放,对修改关闭。2.依赖倒置原则(面向接口编程)依赖关系通过接口、抽象类。3.单一职责原则一个类、接口、方法只负责一项职责或职能。4.接口隔离原则客户端不需要多余的接口,一个类对另一个类的依赖建立在最小的接口上。5.迪米特法则(最少知道原则)一个

Stream

文章目录1.概述2.创建3.使用案例使用的员工类3.1遍历/匹配(foreach/find/match)3.2筛选(filter)3.3聚合(max/min/count)3.4映射(map/flatMap)3.5归约(reduce)3.6收集(collect)3.6.1归集(toList/toSet/toMap)3.6

AI独角兽第四范式开启招股:或将成为今年港股IPO最大赢家!

国内最大的以平台为中心的决策类人工智能公司第四范式,在9月18日至9月21日招股,并计划于9月28日正式以“6682”为股票代码在香港联交所主板挂牌上市。第四范式即将成为近两年来第一家登陆港交所的AI独角兽企业,同时也将是近一年来第一家完成港股IPO的硬科技企业。和这些响亮称号相对应的火爆的认购,目前展现出来的孖展已超

git的使用

1)git的学习及总结可以用通配符添加多个文件,如gitadd*.txt;gitadd.//把当前所有文件都添加到暂存区中gitresettest.txt//取消暂存gitcommit-m"提交的信息"//这个信息会被提交到仓库中,作为版本管理的凭证//git只会提交到暂存区中的文件,而不会提交工作中的其他文件!rep

热文推荐