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

文章目录

    • 前言
    • 环境列表
    • 1.飞书设置
    • 2.克隆feishu-chatgpt项目
    • 3.配置config.yaml文件
    • 4.运行feishu-chatgpt项目
    • 5.安装cpolar内网穿透
    • 6.固定公网地址
    • 7.机器人权限配置
    • 8.创建版本
    • 9.创建测试企业
    • 10. 机器人测试

前言

本文主要介绍如何在飞书中创建chatGPT机器人并且结合内网穿透工具实现远程访问本地部署的AI智能机器人进行对话,在下面操作步骤中,使用到了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.mzph.cn/pingmian/24004.shtml

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

相关文章

怎么发送超大文件?困扰已久的邮件大附件发送问题解决了

邮件是日常中使用最多的文件流转工具,特别是对于企业内部的员工间、及企业与企业间的业务开展,数据和文件的发送、业务留痕大多都基于邮箱展开。 邮箱的普遍使用给用户基于邮箱进行业务沟通提供了前提,其中,Outlook邮箱是使用最广…

JVM学习-JVM运行时参数

JVM参数选项 标准参数选项 特点 稳定,后续版本不会变化以【-】开头 各种选项 运行java或者java -help可以看到所有的标准选项 补充内容 -server:64位机器上只支持Server模式的JVM,适用于需要大内存的应用程序,默认用并行垃圾回…

18 - 各赛事的用户注册率(高频 SQL 50 题基础版)

18 - 各赛事的用户注册率 -- 注册率注册用户数/所有用户数 selectr.contest_id,round(100*count(*)/(select count(*) from Users),2) percentage from Register r group by r.contest_id order bypercentage desc,r.contest_id ASC;

Phpstorm使用xdebug断点调试

一、目标 1、在浏览器地址栏里操作页面访问接口时,可以在项目代码对应入口处断点拦截调试; 2、在postman调用接口时,可以在项目代码对应入口处断点拦截调试; phpstorm版本:PhpStorm 2024.1.2 二、具体操作 1、安装…

Python离线查询IP地址对应的国家和城市

使用场景: 在没网的情况下使用python代码实现对ip地址进行查询国家和地市 代码实现: 需要安装 pip install geoip2 库 import geoip2.databasedef get_location_by_ip(ip_address, db_path):reader geoip2.database.Reader(db_path)try:response r…

什么是输入偏置电流?

输入偏置电流(input bias current):运放同相与反相端流入和流出的电流。理想的运放同相和反相端的阻抗是无穷大的,所以是无法流进和流出电流。 第一种定义:同相与反相端电流和的平均值 以AD8031运放举例,…

HCIP与CCNP,中级认证里哪个更香?

如果你是网络领域的从业者,一定听说过HCIP(华为认证网络工程师)和CCNP(思科认证网络专业人员)这两个中级认证。 那么,在这两者之间,你更倾向于选择哪一个呢? 今天就对这两个认证进…

wine和crossover哪个好 使用crossover有什么优势

如果你是Mac或Linux用户,你可能会遇到这样的情况:你想要运行一些Windows上的应用程序或游戏,但是你的操作系统并不支持它们。这时候,你有几种选择:一是安装双系统,也就是在你的电脑上同时安装Windows或Linu…

教师常用小程序分享

和大家分享几款超级实用的教学小程序,不仅能够提高我们的办公效率,还能让我们的教学生活变得更加轻松有趣。 腾讯文档:云端协作的利器 教学协作是必不可少的。腾讯文档小程序,就是云端协作的利器。支持多人在线编辑文档&#xff…

《中国科技成果》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问:《中国科技成果》是不是核心期刊? 答:不是,是万方、维普收录的正规学术期刊 问:《中国科技成果》是什么级别的? 答:国家级。主管单位:中华人民共和国科学技术部 …

积极乐观的心态对学习和研究机器人相关技术非常重要

微案例 把难换成有趣,动力就会足一些。 或者把难换成“有挑战”等。 负面情绪描述: 学习和研究机器人很难。 中性情绪描述: 学习和研究机器人有挑战。 正面情绪描述: 学习和研究机器人很有趣。 机器人专业不合格且失败讲师如何让…

解决Windows Hosts 文件因为权限无法修改的问题

如何修改 Windows Hosts 文件并添加域名映射 在日常工作中,可能需要修改 Windows 的 hosts 文件,以将特定的域名映射到指定的 IP 地址。本文介绍三种方法来完成这一任务:直接手动编辑 hosts 文件,使用批处理文件自动完成任务&…

4秒惊艳!Stable Cascade AI绘画神器,设计师和普通用户的无限创意新选择

近日,一款AI绘画模型Stable Cascade发布。 只需输入一段描述文字,即可在4秒钟内获得令人惊艳的图像。 无论你是设计师、艺术家,还是普通用户,都能轻松上手,释放无限创意。 Stable Cascade不仅在使用上极具便捷性&am…

品致分档高频电流探头交直流电流探头的功能和应用领域

品致分档高频电流探头可以精确测量最大直流 DC-12MHz,具有高带宽,高精度的测量特点,且支持量程档位切换,满足用户一机多用的需求。探头自带归零和消磁功能,在包容用户的使用环境下,精度也高达 1%。标准的BN…

APP兼容性测试都需要考虑哪些场景?

APP测试的时候都需要验证兼容性。那兼容性测试需要考虑哪些场景? 进行APP的兼容性测试时,需要考虑以下一些常见的测试场景: 1. 操作系统兼容性:测试应用程序在不同操作系统上的兼容性,如iOS、Android、Windows等。确…

阿里云ECS实例镜像本地取证

更新时间:2024年03月21日10:09:37 1. 说明 很多非法案件中,服务器是直接搭建在阿里云上的,比如我们在拿到OSSKey之后(技术方法、其它方法等),可以将涉案服务器镜像导出,在本地进行取证分析。 …

接口的应用、 适配器设计模式

接口的应用 适配器设计模式 Inter package com.itheima.a09;public interface Inter {public abstract void show1();public abstract void show2();public abstract void show3();public abstract void show4();}InterAdapter package com.itheima.a09; //抽象 public abs…

前端自测 - 那些经典的bug

前言 我一直坚持的一个观点,就是不以bug数论成败,但是这个需要加一个前提,就是不能出现那些低级的bug,更不能反复的出现。 由此整理了一系列我认为比较经典常见的前端bug,都是在项目中多次遇到过的,用于前…

如何学习大模型

学习大模型(例如GPT-3、BERT等)需要一定的数学和编程基础,以及对人工智能、机器学习、自然语言处理等领域的了解。以下是一个学习大模型的基本路线: 基础知识储备: 数学基础:掌握线性代数、概率论与数理统…

史上最全,呕心沥血总结oracle推进SCN方法(五)

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG数据库运维(如安装迁移,性能优化、故障应急处理等) 公众号:老苏畅谈运维 欢迎关注本人公众号,更多精彩与您分享。前面介…