【ChatGPT】ChatGPT+飞书,打造智能问答助手

news2024/9/21 18:47:24

  Yan-英杰的主页

悟已往之不谏 知来者之可追  

C++程序员,2024届电子信息研究生


目录

前言

环境列表

视频教程

1.飞书设置

2.克隆feishu-chatgpt项目

3.配置config.yaml文件

4.运行feishu-chatgpt项目

5.安装cpolar内网穿透

6.固定公网地址

7.机器人权限配置

8.创建版本

9.创建测试企业

10. 机器人测试


@[TOC]

转载自远控源码文章:飞书接入ChatGPT - 将ChatGPT集成到飞书机器人,直接拉满效率 【飞书ChatGPT机器人】

前言

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

环境列表

  • Git

  • Go1.20

视频教程

【飞书接入ChatGPT】将ChatGPT集成到飞书机器人

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官网:cpolar - 安全的内网穿透工具

访问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

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

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

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

相关文章

Unity本地化:添加多语言支持

文档:Quick Start Guide | Localization | 1.2.1 (unity3d.com) /**************************************************** 文件:LocaleSelector.cs 作者:Edision 日期:#CreateTime# 功能:语言本地化 *…

vue脚手架(vue-cli)详细安装过程

CLI,俗称脚手架。全称是Command Line Interface。 vue-cli 是vue官方发布的开发vue项目的脚手架。 vue脚手架用于自动生成vue和webpack的项目模板,是一个快速构建vue项目的工具,可以自动安装vue所需要的插件,避免手动安装各种插件…

camunda执行监听器和任务监听器有什么区别

Camunda的执行监听器和任务监听器是用于添加自定义逻辑的监听器,它们的区别在于作用对象和触发事件的不同。 执行监听器是与BPMN流程中的各种流程元素(例如开始事件、用户任务、服务任务、网关等)相关联的。执行监听器可以在流程元素执行前、…

德邦快递:逆境之下,让数字化辅助业务的利润增长

#01行业背景 2022年,我国快递业务量完成 1105.8 亿件,业务量连续 9 年位居世界第一,仅用七年时间,中国的快递行业就完成了从百亿到千亿的十倍增长。我国快递物流行业正从蓝海进入红海,在下半场激烈竞争中破局的关键在…

线上问题-CPU使用频率飙升

描述 中午收到群内人员反馈环境访问速度慢。登录验证码打不开等问题。通过查看日志发现是kafka出现问题,无法处理消息。联系运维解决。在排查的过程中使用mobaXterm连接服务器。左下角看到CPU使用频率非常高。于是记录一下通过CPU查看程序占用情况分析问题。 过程 …

各大厂与卡顿和ANR的战斗记录篇

作者:Drummor 1.1 认识ANR 1.1.1 系统如何处理ANR 设计原理和影响因素篇,主要对以下关键问题展开 ANR触发的条件以及根本原因发生ANR之后,系统处理ANR的流程。应用层如何判定ANR:对ANR的感知,通过监听SIGQUIT信号。…

直播合辑 | 微软ATP与您相约100场公益演讲

(本文阅读时间:5 分钟) Public100已历经了近一年的春夏秋冬,截止目前我们一共举办33场公益直播,由微软及合作伙伴中从事 AI 相关工作的工程师、产品经理、市场总监、运营经理等各类专家和学者,分享自己在学…

IPC机制之管道

每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走…

一行代码绘制高分SCI火山图

一、概述 在近半年中,我读了很多的高分SCI文章,很多文章中都有多种不同的火山图,包括「普通的火山图、渐变火山图、以及包含GO通路信息的火山图」! 经过一段时间的文献阅读和资料查询,终于找到了一个好用而且简单的包…

烽火HG680KA-Hi3798MV300-当贝纯净桌面-卡刷固件包

烽火HG680KA-Hi3798MV300-当贝纯净桌面-卡刷固件包-内有教程 特点: 1、适用于对应型号的电视盒子刷机; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、修改dns,三网通用; 4、大量精简内置的没用的软件&#xff…

乳杆菌属Lactobacillus——维持肠道和阴道健康不可忽缺的角色

谷禾健康 乳杆菌属(Lactobacillus)是厚壁菌门乳杆菌科下的一类革兰氏阳性菌,最早于19世纪在酸奶中发现。 乳杆菌在自然界中分布很广,在植物体表、乳制品、肉制品、葡萄酒、发酵面团、污水以及人畜粪便中,均可分离到。在…

dubbo高级特性分析

1.dubbo多协议支持 某些场景下,可能接口是使用的老的协议去发布的,此时希望接口能够以一种新的协议去发布,老的服务按照老的协议去调用,新的服务按照新的协议去调用 而dubbo服务就可以支持发布多种协议,如 dubbo / he…

c++入门第一篇

C 1 C是编译语言1.1 windows平台运行c1.2 linux平台运行c1.3 Clion和MinGW-w64(编译器)安装教程1.4 clion的使用教程1.5 c开发工具1.6 c发展应用领域1.7 c学习路线1.8 c学习资料1.9 编程界的四大派系 2 基本语法2.1 c程序各部分介绍2.2 编写C程序2.3 c第…

zeppos 开发工具模拟器 simulator 无法显示app

zeppos 开发工具模拟器 simulator 无法显示app 目录问题描述:simulator的 Apps 不显示 hello-world 工程解决方案 目录 问题描述:simulator的 Apps 不显示 hello-world 工程 已确认部分: 1.网卡驱动安装成功 2.simulator version:1.1.9 3.d…

【LinuxShell】Shell编程之数组

文章目录 一、数组二、数组的定义方式三、数组的相关概述1.数组包括的数据类型2.获取数组长度3.获取数组数据列表4.获取数据下标列表5.获取某下标赋值6.如何判断数组是否缺少元素 四、数组的操作1.数组遍历2.数组切片3.数组替换4.数组删除5.数组追加元素 五、函数与数组的使用1…

致力于中小企业JavaEE企业级快速开发平台、后台框架平台

一、开源项目简介 J2eeFAST 是一个 Java EE 企业级快速开发平台, 致力于打造中小企业最好用的开源免费的后台框架平台 。系统基于(Spring Boot、Spring MVC、Apache Shiro、MyBatis-Plus、Freemarker、Bootstrap、AdminLTE)经典技术开发&…

zigbee抓包器使用

软件名称:Ubiqua Protocol Analyzer 主要操作流程: 1. 添加物理抓包器 2. 抓包 3. 过滤

注入攻击(一)--------SQL注入(结合BUUCTF sqli-labs)

目录 写在前面一、暴力破解Basic-3-Brute 11.解题思路2.Burp Suite工具使用简介 二、基于GET的SQL注入Pre.使用校园网做题时可能遇到的小问题 2.1 Basic-4-SQL course 1(sql注入)1.解题思路 2.2 Basic-8-sqli-labs(sql注入的各种攻击形式&…

iostat

目录 iostat 查看读写速度和占用CPU时间比率 一、包名 二、常用命令 三、模拟磁盘读写 iptop 看哪个进程使用存储多 iostat 查看读写速度和占用CPU时间比率 一、包名 sysstat (和sar同一个包) 二、常用命令 iostat 1 每一秒…

js执行思维导图

备注: js执行: 执行分为两部分:预执行和执行 预执行:创建好执行上下文 执行:执行栈中执行 js引擎: 读取并执行js 各个浏览器的引擎如下 …