如何在飛書接入ChatGPT并結合內網穿透實現公網遠程訪問智能AI助手

文章目錄

  • 前言
  • 環境列表
  • 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.pswp.cn/news/719304.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/719304.shtml
英文地址,請注明出處:http://en.pswp.cn/news/719304.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL 高可用解決方案(雙主雙從)

1.環境說明 操作系統:centos7.7 主服務器:node2(192.168.1.102) 從服務器:node3(192.168.1.103) keepalived中虛擬ip(VIP):192.168.1.100 2.準備事項 主庫和從庫數據庫的版本一致把主庫的數據同步給從庫一份 #對主庫進行全局讀鎖定 FLUSH…

GEE代碼條帶問題——sentinel-1接縫處理的問題

問題 我有興趣確定 NDVI 損失最大的年份。我創建了一個函數來收集所有陸地衛星圖像并應用預處理。當我導出結果以識別 NDVI 損失最大年份時,生成的數據產品與陸地衛星場景足跡有可怕的接縫線。造成這種情況的原因是什么以及如何調整代碼? sentinel1數據…

flutter之終極報錯

看到這個報錯頭都大了 一開始在網上各種搜搜,然后有人說是flutter版本的問題,改完版本之后還是不對,又是各種搜搜搜 有人說是環境變量的問題,后來改了環境變量,媽的,竟然還不行,想砸電腦的心都…

Xcode :Could not build module ‘WebKit‘ 已驗證解決

問題&#xff1a;Could not build module WebKit 具體報錯如下&#xff1a; error: type argument nw_proxy_config_t (aka struct nw_proxy_config *) is neither an Objective-C object nor a block type property (nullable, nonatomic, copy) NSArray<nw_proxy_config_…

C++學習筆記:set和map

set和map set什么是setset的使用 關聯式容器鍵值對 map什么是mapmap的使用map的插入方式常用功能map[] 的靈活使用 set 什么是set set是STL中一個底層為二叉搜索樹來實現的容器 若要使用set需要包含頭文件 #include<set>set中的元素具有唯一性(因此可以用set去重)若用…

【java-面試題】start和run的區別

【java-面試題】start和run的區別 在run方法內部&#xff0c;只是單純的描述了該線程要執行的內容。run方法是線程的入口。 在start方法內部&#xff0c;會調用到系統api&#xff0c;從而在系統內核中創建出線程&#xff0c;創建線程后&#xff0c;再自動調用run方法。 在代碼…

掌握未來技術:一站式深度學習學習平臺體驗!

介紹&#xff1a;深度學習是機器學習的一個子領域&#xff0c;它模仿人腦的分析和學習能力&#xff0c;通過構建和訓練多層神經網絡來學習數據的內在規律和表示層次。 深度學習的核心在于能夠自動學習數據中的高層次特征&#xff0c;而無需人工進行復雜的特征工程。這種方法在圖…

大模型筆記:RAG(Retrieval Augmented Generation,檢索增強生成)

1 大模型知識更新的困境 大模型的知識更新是很困難的&#xff0c;主要原因在于&#xff1a; 訓練數據集固定,一旦訓練完成就很難再通過繼續訓練來更新其知識參數量巨大,隨時進行fine-tuning需要消耗大量的資源&#xff0c;并且需要相當長的時間LLM的知識是編碼在數百億個參數中…

格式規范性知識的探究式學習

對于格式規范性這種規定性的知識&#xff0c;可以采用“增刪改”的方式進行控究式學習。 #include<stdio.h>int main(){printf("%.1f\n", 8.0/5.0);return 0;} 這個printf語句分兩部分&#xff0c;本身的功能就是格式化輸出&#xff0c;因此參數完全是格式化…

一些C語言知識

C語言的內置類型&#xff1a; char short int long float double C99中引入了bool類型&#xff0c;用來表示真假的變量類型&#xff0c;包含true&#xff0c;false。 這個代碼的執行結果是什么&#xff1f;好好想想哦&#xff0c;坑挺多的。 #include <stdio.h>int mai…

STM32(5) GPIO(2)輸出

1.點亮LED 1.1 推挽接法和開漏接法 要想點亮LED&#xff0c;有兩種接法 推挽接法&#xff1a; 向寄存器寫1&#xff0c;引腳輸出高電平&#xff0c;LED點亮&#xff1b;向寄存器寫0&#xff0c;引腳輸出低電平&#xff0c;LED熄滅。 開漏接法&#xff1a; 向寄存器寫0&…

Kubernetes operator 前置知識篇

云原生學習路線導航頁&#xff08;持續更新中&#xff09; 本文是 Kubernetes operator學習 系列的前置知識篇&#xff0c;幫助大家對 Operator 進行初步了解Kubernetes operator學習系列 快捷鏈接 Kubernetes operator 前置知識篇Kubernetes operator&#xff08;一&#xff0…

《精益DevOps》:填補IT服務交付的認知差距,實現高效可靠的客戶期望滿足

寫在前面 在當今的商業環境中&#xff0c;IT服務交付已經成為企業成功的關鍵因素之一。然而&#xff0c;實現高效、可靠、安全且符合客戶期望的IT服務交付卻是一項艱巨的任務。這要求服務提供商不僅具備先進的技術能力&#xff0c;還需要擁有出色的組織協作、流程管理和態勢感…

UniApp項目處理小程序分包

目前 uniApp也成為一種 App端開發的大趨勢 因為在目前跨端 uniApp可以說相當優秀 可以同時兼容 H5 PC 小程序 APP 的技術 目前市場屈指可數 那么 說到微信小程序 自然就要處理分包 因為微信小程序對應用大小限制非常銘感 限制在2MB 超過之后就會無法真機調試與打包 不過需要注…

快速排序C語言代碼實現(2)

#include<stdio.h> void quick_sort(int arr[], int left, int right) {if (left < right) {int i left, j right, pivot arr[i];while (i < j) {while (i<j&&arr[j]>pivot) {//此時判斷使用i<j的目的是為了最終的目標位置是ij時的位置j--;}if…

vue項目中使用antvX6新手教程,附demo案例講解(可拖拽流程圖、網絡拓撲圖)

前言&#xff1a; 之前分別做了vue2和vue3項目里的網絡拓撲圖功能&#xff0c;發現對antv X6的講解博客比較少&#xff0c;最近終于得閑碼一篇了&#xff01; 需求&#xff1a; 用戶可以自己拖拽節點&#xff0c;節點之間可以隨意連線&#xff0c;保存拓撲圖數據后傳給后端&…

cPanel面板安裝付費的SSL證書

前不久遇到購買Hostease服務器的客戶反饋需要安裝SSL證書。因為安裝 SSL 證書不僅可以保護用戶數據安全&#xff0c;增加用戶信任度&#xff0c;提升搜索引擎排名&#xff0c;還有助于符合法規和標準&#xff0c;防止網絡攻擊。 安裝SSL證書可以通過如下步驟: 1. 選擇 SSL 證書…

數學建模【多元線性回歸模型】

一、多元線性回歸模型簡介 回歸分析是數據分析中最基礎也是最重要的分析工具&#xff0c;絕大多數的數據分析問題&#xff0c;都可以使用回歸的思想來解決。回歸分析的任務就是&#xff0c;通過研究自變量X和因變量Y的相關關系&#xff0c;嘗試去解釋Y的形成機制&#xff0c;進…

Linux配置網卡功能

提示:工具下載鏈接在文章最后 目錄 一.network功能介紹二.配置network功能2.1 network_ip配置檢查 2.2 network_br配置2.2.1 配置的網橋原先不存在檢查2.2.2 配置的網橋已存在-修改網橋IP檢查2.2.3 配置的網橋已存在-只添加網卡到網橋里檢查 2.3 network_bond配置檢查 2.4 netw…

Access AR Foundation 5.1 in Unity 2022

如果已經下載安裝了ARF但版本是5.0.7 可以通過下面的方式修改 修改后面的數字會自動更新 更新完成后查看版本 官方文檔 Access AR Foundation 5.1 in Unity 2021 | AR Foundation | 5.1.2