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


    前言

    本文主要介绍如何在飞书中创建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

  • 相关阅读:
    基于Java+SpringBoot+Vue摄影分享网站的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】
    [附源码]Python计算机毕业设计Django医院门诊管理信息系统
    Android12之DRM基本接口实现(二)
    54. 螺旋矩阵 & 59. 螺旋矩阵 II ●●
    如何使用自定义Promptbooks优化您的安全工作流程
    信息收集——fuzz反爬虫延迟代理池
    Nacos配置管理
    第二次面试 9.15
    海外工具站 2022 复盘:50+ 条所见所思所感
    vue 完整学习笔记(一)
  • 原文地址:https://blog.csdn.net/qq_63320529/article/details/139528810