如何在飞书创建企业ChatGPT智能问答助手应用并实现公网远程访问(1)

文章目录

  • 前言
  • 环境列表
  • 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.rhkb.cn/news/244507.html

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

相关文章

Java 数据结构集合

文章目录 Java 数据结构1. 基本数据结构1.1 数组 (Array)1.2 链表 (Linked List)1.3 栈 (Stack)1.4 队列 (Queue)双向队列优先级队列 2. 树形数据结构2.1 二叉树 (Binary Tree)2.2 堆 (Heap) 3. 散列数据结构3.1 哈希表 (Hash Map)3.2 LinkedHashMap3.3 TreeMapConcurrentHashM…

【python文件】生成的csv文件没两行数据之间有一个空行

问题描述 用python代码将数据写入csv文件,但生成的csv文件没两行数据之间有一个空行,如下图所示: 解决办法 在open函数中添加newline,如以下代码所示,即可解决这一问题。 with open(r"C:\Users\xxx\Desktop\DR…

Linux的奇妙冒险———vim的用法和本地配置

vim的用法和本地配置 一.vim的组成和功能。1.什么是vim2.vim的多种模式 二.文本编辑(普通模式)的快捷使用1.快速复制,粘贴,剪切。2.撤销,返回上一步操作3.光标的控制4.文本快捷变换5.批量化操作和注释 三.底行模式四.v…

【征服Redis12】redis的主从复制问题

从现在开始,我们来讨论redis集群的问题,在前面我们介绍了RDB和AOF两种同步机制,那你是否考虑过这两个机制有什么用呢?其中的一个重要作用就是为了集群同步设计的。 Redis是一个高性能的键值存储系统,广泛应用于Web应用…

服务器感染了.wis[[Rast@airmail.cc]].wis勒索病毒,如何确保数据文件完整恢复?

导言: 在当今数字化的时代,恶意软件攻击已经变得越来越复杂和狡猾,[[MyFilewaifu.club]].wis [[backupwaifu.club]].wis[[Rastairmail.cc]].wis勒索病毒是其中的一种新威胁。本文91数据恢复将深入介绍[[MyFilewaifu.club]].wis [[backupwaif…

Dify学习笔记-基础介绍(一)

1、简介 Dify AI是一款强大的LLMOps(Language Model Operations)平台,专为用户提供便捷的人工智能应用程序开发体验。 该平台支持GPT系列模型和其他模型,适用于各种团队,无论是用于内部还是外部的AI应用程序开发。 它…

基于springboot+vue的美容院管理系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 研究背景…

JAVA用Zxing生成的二维码扫码桩识别出现\000026

使用Zxing生成的二维码,扫码桩扫描偶先扫描出\000026 文章目录 [TOC](文章目录) 前言一、出现原因分析二、解决方式三、iso ECI 字符集编码说明 前言 Hutool QrCodeUtil(底层Zxing) 生成二维码扫码桩扫描二维码 出现类似:"\…

react18介绍

改进已有属性,如自动批量处理【setState】、改进Suspense、组件返回undefined不再报错等 支持Concurrent模式,带来新的API,如useTransition、useDeferredValue等 如何升级React 18 npm install reactlatest react-domlatestnpm install ty…

python pip安装包时,出现 WARNING: Ignoring invalid distributio xxxx,解决办法

pip安装包时,出现 WARNING: Ignoring invalid distributio xxxx,解决办法 遇到的问题,如图 这个问题其实就是python环境下的包无效了,找到WARNING: Ignoring invalid distributio xxxx后面对应的路径,删除对应的~XXXX…

Android开发--状态栏布局隐藏的方法

1.问题如下,安卓布局很不协调 2.先将ActionBar设置为NoActionBar 先打开styles.xml 3.使用工具类 package com.afison.newfault.utils;import android.annotation.TargetApi; import android.app.Activity; import android.content.Context; import android.graph…

TortoiseSVN源码安装与迁移全攻略

一、前言 随着版本控制系统的普及,越来越多的开发者和团队开始使用SVN(Subversion)来管理代码。本文将详细介绍TortoiseSVN的源码安装及迁移过程,帮助您轻松掌握这一版本控制工具。 二、TortoiseSVN源码安装 依赖环境安装&…

Window安装Python和开发Pycharm

准备: 1:安装Python环境 https://www.python.org/downloads/windows/ 2: 下载Pycharm https://www.jetbrains.com/pycharm/download/other.html

快速排序

快速排序 概况步骤代码示例输出结果 要想学习快速排序,前提必须了解 递归算法 概况 快速排序是一种高效的排序算法,它采用了分治的策略。 基本思想是选择一个基准数,通过一趟排序将待排序序列划分成两个子序列,其中一个子序列的…

乔迁新居发言

亲爱的家人们,大家好! 非常感谢大家在百忙之中抽出宝贵的时间来到这里为我们的新居增添福气。我代表我和田小帆对大家的到来表示热烈的欢迎和衷心的感谢。 在这个特殊的时刻,我对我们小家庭建设过程中帮助我们的所有亲人、朋友和同学们表示由…

大模型实战营Day6 笔记

本期主题为: 为何测评,因场景众多,需要统一的标准: 评测的意义: 传统NLP的一些评测需要: 到了大模型时代,需要评测的就更多了: 客观评测: 有些主观题可以用模型评价…

Shell脚本的条件语句-------if语句与case语句

目录 一、if语句 1、bash的配置文件 2、单分支结构 3、双分支结构 4、多分支结构 ①单分支应用举例:写一个脚本检查80端口是否开启,如果开启则反馈http正在运行,否则启动httpd服务 ②多分支应用例子:90-100 是优秀 70-89…

FlinkAPI开发之状态管理

案例用到的测试数据请参考文章: Flink自定义Source模拟数据流 原文链接:https://blog.csdn.net/m0_52606060/article/details/135436048 Flink中的状态 概述 有状态的算子 状态的分类 托管状态(Managed State)和原始状态&…

springboot123基于springboot框架的网上商城系统的设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的基于springboot框架的网上商城系统的设计与实现 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看…

centos7.9安装redmine5.1.1

前提: 安装mysql并新建数据库--教程太多了此步骤省略; 用sqlyog连上mysql创建数据库redmine; 1.下载redmine-5.1.1.tar.gz,上传到/usr/local/software目录下; 2.解压 cd /usr/local/software tar -zxvf redmine-5.…