本地运行feishu-chatgpt项目结合内网穿透实现无公网IP远程访问

文章目录

前言

本文主要介绍如何在飞书中创建chatGPT机器人并且结合内网穿透工具实现远程访问本地部署的AI智能机器人进行对话,在下面操作步骤中,使用到了Git克隆项目,需提前安装好Git,克隆的项目是Go语言项目,所以需提前安装Go语言环境。

环境列表

  • Git

  • Go1.20

1.飞书设置

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

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

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

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

2.克隆feishu-chatgpt项目

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

shell 复制代码
git clone https://github.com/Leizhenpeng/feishu-chatgpt.git

然后进入code目录

shell 复制代码
cd feishu-chatgpt/code

修改配置文件名称

shell 复制代码
mv config.example.yaml config.yaml

3.配置config.yaml文件

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

打开配置文件,我们可以看到前面两个参数对应的是飞书上面我们创建项目的APP IDApp 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中的代理,执行下面命令切换国内代理

shell 复制代码
go env -w GOPROXY=https://goproxy.cn,direct

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

shell 复制代码
go run main.go

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

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

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

5.安装cpolar内网穿透

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

访问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.创建测试企业

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

创建好后点击关联应用

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

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

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

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

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

改完后重新启动即可

10. 机器人测试

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

然后点击搜索

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

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

相关推荐
ZachOn1y3 分钟前
计算机网络:计算机网络概述 —— 描述计算机网络的参数
网络·tcp/ip·计算机网络·考研必备
#欲速则不达#5 小时前
高级I/O
c++·网络协议
中草药z6 小时前
【JavaEE】http/https 超级详解
网络·笔记·网络协议·学习·http·https·计网
物有本木7 小时前
httpsok-v1.17.0-SSL通配符证书自动续签
网络·网络协议·ssl
F_D_Z7 小时前
【解决办法】git clone报错unable to access ‘xxx‘: SSL certificate problem:
网络·git·网络协议·ssl
BUG制造机.8 小时前
TCP --- 确认应答机制以及三次握手四次挥手
网络·网络协议·tcp/ip
无聊看看天T^T8 小时前
网络基础:TCP/IP五层模型、数据在局域网传输和跨网络传输的基本流程、IP地址与MAC地址的简单解析
网络·数据结构·c++·网络协议·tcp/ip·算法
读心悦9 小时前
在 ArkTS 网络请求中,重新封装一下 http 模块
网络·网络协议·http
小灵蛇9 小时前
HTTP Cookie与Session
服务器·网络协议·http
学习前端的小z12 小时前
【AIGC】ChatGPT提示词解析:如何打造个人IP、CSDN爆款技术文案与高效教案设计
人工智能·chatgpt·aigc