如何在群暉Docker運行本地聊天機器人并結合內網穿透發布到公網訪問

文章目錄

    • 1. 拉取相關的Docker鏡像
    • 2. 運行Ollama 鏡像
    • 3. 運行Chatbot Ollama鏡像
    • 4. 本地訪問
    • 5. 群暉安裝Cpolar
    • 6. 配置公網地址
    • 7. 公網訪問
    • 8. 固定公網地址

隨著ChatGPT 和open Sora 的熱度劇增,大語言模型時代,開啟了AI新篇章,大語言模型的應用非常廣泛,包括聊天機器人、智能客服、自動翻譯、寫作助手等。它們可以根據用戶輸入的文本生成相應的響應,提供個性化的建議和服務,目前大部分大語言模型的產品都是基于網絡線上的,如果我們本地想自己部署一個自己的大語言模型,該如何操作呢,下面介紹一款可以在自己本地部署運行的大語言模型Llama 2

Llama 2是一款開源的大語言模型,其中訓練的數據目前已經達到7B級別,在上下文長度為4K下的單輪與多輪對話中表現出色,部署運行Llama 2同時需要借助一個框架Ollama.

Ollama是一個強大的框架,設計用于在Docker容器中部署大型語言模型(LLM)。它的主要功能是簡化在Docker容器內部署和管理LLM的過程。Ollama通過提供簡單的安裝指令,使用戶能夠輕松地在本地運行大型開源語言模型.

借助Ollama 框架可以很方便運行Llama2大語言模型,同時,為了方便與模型進行交互,還需要部署一個web交互 界面Chatbot-Ollama.

Chatbot-Ollama是一個基于Ollama框架的聊天機器人前端應用。它利用Ollama框架提供的接口和功能,將大型語言模型(LLM)集成到聊天機器人中,使其能夠與用戶進行交互,并提供各種聊天機器人服務。

Chatbot-Ollama 接入本地Ollama框架運行的Llama2大語言模型,使我們可以很輕松簡便在本地創建一個聊天機器人.Chatbot-Ollama 同時也是基于docker本地部署的,本地部署,只能局限于本地訪問,無法做到提供遠程給其他人訪問,下面我們還需要安裝一個內網穿透工具cpolar,使得本地聊天機器人可以被遠程訪問.

Cpolar是一款強大的內網穿透軟件,它能夠在多個操作系統上無縫運行,包括Windows、MacOS和Linux,因此無論您使用哪種操作系統,都可以輕松將本地內網服務器的HTTP、HTTPS、TCP協議端口映射為公網地址端口,使得公網用戶可以輕松訪問您的內網服務,無需部署至公網服務器.

下面我們通過群暉Docker來演示如何結合上面介紹的技術來運行一個自己的本地聊天機器人并且發布到公網訪問.本地部署,對設備配置要求高一些,如果想要擁有比較好的體驗,可以使用高配置的服務器設備.

1. 拉取相關的Docker鏡像

運行Llama 2需要借助Ollama鏡像,對語言模型進行交互需要用到Chatbot-Ollama前端界面,所以我們需要拉取這兩個docker鏡像,本例群暉版本由于無法直接在群暉控制面板docker界面搜索下載鏡像,所以采用命令行方式進行鏡像下載,首先開啟群暉ssh連接,然后使用工具通過ssh連接上群暉,分別執行下面docker命令 拉取

*拉取Ollama鏡像命令

sudo docker  pull ollama/ollama:latest

*拉取Chatbot-Ollama鏡像命令

sudo docker  pull ghcr.io/ivanfioravanti/chatbot-ollama:main

拉取成功后,我們可以在Docker界面看到拉取的兩個鏡像,下面開始運行兩個鏡像,首先運行ollama

image-20240228134827663

2. 運行Ollama 鏡像

選中鏡像,點擊運行進入配置界面,名稱無需設置,默認即可,然后點擊下一步

image-20240228140210393

輸入外部訪問的端口,和容器內部端口一致,填寫11434即可,然后點擊下一步

image-20240228140324795

然后點擊完成即可運行ollama

image-20240228140944482

運行后,打開容器界面,可以看到運行的服務,下面開始下載運行Llama 2模型,點擊選中ollama容器,點擊操作

image-20240228141509408

然后打開終端機,進入終端命令界面

image-20240228141933061

然后選擇左邊新增一個bash命令界面

image-20240228142029589

然后在bash命令界面,執行ollama run llama2命令,接著等待下載即可,最后出現success,表示下載運行Llama 2模型成功,下載完成后可以關閉掉窗口.這樣ollama 容器啟動,并運行Llama 2模型就成功了,下面運行chatbot-ollama鏡像,配置前端交互界面

image-20240228142952591

3. 運行Chatbot Ollama鏡像

選中我們下載的鏡像,點擊運行,開始進行設置

image-20240228143332721

名稱可以默認,直接點擊下一步

image-20240228143615754

設置對外端口,本例設置3001,具體可以自己自定義,這個端口也是我們瀏覽器上web訪問的端口

image-20240228143700098

然后設置一個環境變量,該變量就是連接我們上面運行Ollama框架服務的地址,我們設置本地地址:http://群暉局域網IP:11434即可,設置完成點擊下一步,然后直接點擊完成即可,chatbot Ollama鏡像就運行成功了,接下來我們進行本地訪問.

image-20240228151028916

4. 本地訪問

上面我們運行設置chatbot ollama 的對外端口是3001(具體以自己設置的為準),下面我們在瀏覽器訪問群暉3001端口,既可看到我們的web交互 界面,同時,上面顯示了使用的llama2模型,下面輸入文字即可對話,這樣一個本地部署的機器人就完成了,對話的響應速度取決于設備的配置,盡量使用高配置的服務器運行部署哦,本地完成后,我們接下來設置遠程也可以訪問,下面安裝cpolar工具,實現無公網IP也可以遠程訪問我們的聊天機器人界面!

image-20240228144800166

5. 群暉安裝Cpolar

點擊下面Cpolar群暉套件下載地址,下載相應版本的群暉Cpolar套件

https://www.cpolar.com/synology-cpolar-suite,

20221222170135

打開群暉套件中心,點擊右上角的手動安裝按鈕。

image-20240111165335915

選擇我們本地下載好的cpolar套件安裝包,然后點擊下一步

image-20240111165603922

點擊同意按鈕,然后點擊下一步

image-20240111165702028

最后點擊完成即可。

image-20240111165721365

安裝完成后,在外部瀏覽器,我們通過群暉的局域網ip地址9200端口訪問Cpolar的Web管理界面,然后輸入Cpolar郵箱賬號與密碼進行登錄

image-20230612165349594

6. 配置公網地址

點擊左側儀表盤的隧道管理——創建隧道,創建一個chatbot的公網地址隧道!

  • 隧道名稱:可自定義命名,注意不要與已有的隧道名稱重復
  • 協議:選擇http
  • 本地地址:3001 (本地訪問的端口)
  • 域名類型:免費選擇隨機域名
  • 地區:選擇China

點擊創建

image-20240228151510280

隧道創建成功后,點擊左側的狀態——在線隧道列表,查看所生成的公網訪問地址,有兩種訪問方式,一種是http 和https,下面我們使用生成的http地址訪問

image-20240228151723949

7. 公網訪問

使用上面cpolar生成的http地址,在瀏覽器訪問,同樣可以看到聊天機器人主界面,公網地址訪問成功,無需公網IP,無需云服務器,即可把我們本地聊天機器人發布到公網進行訪問!

image-20240228152929542

小結

為了更好地演示,我們在前述過程中使用了cpolar生成的隧道,其公網地址是隨機生成的。

這種隨機地址的優勢在于建立速度快,可以立即使用。然而,它的缺點是網址由隨機字符生成,不太容易記憶(例如:3ad5da5.r10.cpolar.top)。另外,這個地址在24小時內會發生隨機變化,更適合于臨時使用。

我一般會使用固定二級子域名,原因是我希望將網址發送給同事或客戶時,它是一個固定、易記的公網地址(例如:chatbot.cpolar.cn),這樣更顯正式,便于流交協作。

8. 固定公網地址

由于以上使用Cpolar所創建的隧道使用的是隨機公網地址,24小時內會隨機變化,不利于長期遠程訪問。因此我們可以為其配置二級子域名,該地址為固定地址,不會隨機變化【ps:cpolar.cn已備案】

注意需要將cpolar套餐升級至基礎套餐或以上,且每個套餐對應的帶寬不一樣。【cpolar.cn已備案】

登錄cpolar官網,點擊左側的預留,選擇保留二級子域名,設置一個二級子域名名稱,點擊保留,保留成功后復制保留的二級子域名名稱

image-20240228152456948

保留成功后復制保留成功的二級子域名的名稱

image-20240228152519922

返回登錄Cpolar web UI管理界面,點擊左側儀表盤的隧道管理——隧道列表,找到所要配置的隧道,點擊右側的編輯

image-20240228152612455

修改隧道信息,將保留成功的二級子域名配置到隧道中

  • 域名類型:選擇二級子域名
  • Sub Domain:填寫保留成功的二級子域名

點擊更新(注意,點擊一次更新即可,不需要重復提交)

image-20240228152638853

更新完成后,打開在線隧道列表,此時可以看到公網地址已經發生變化,地址名稱也變成了固定的二級子域名的名稱域名

image-20240228152714604

最后,我們使用固定的公網http地址訪問,可以看到同樣訪問成功,這樣一個固定且永久不變的公網地址就設置好了!

image-20240228152806444

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/714159.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/714159.shtml
英文地址,請注明出處:http://en.pswp.cn/news/714159.shtml

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

相關文章

C# Socket通信從入門到精通(21)——TCP發送文件與接收文件 C#代碼實現

1、前言 我們在開發上位機軟件的過程中經常需要發送文件,本文就是介紹如何利用tcp客戶端發送文件、tcp服務器端接收文件,而且本文介紹的方法可以自動發送一個文件夾下的所有子目錄以及所有文件,經驗來自于實際項目,具備非常有價值的參考意義! 2、發送文件以及C#代碼 被發…

LeetCode第48天 買賣股票的最佳時機 買賣股票的最佳時機II 動態規劃

121. 買賣股票的最佳時機 class Solution { public:int maxProfit(vector<int>& prices) {// int res 0 ;// int low INT_MAX;// for (int i 0; i < prices.size(); i) {// low min(low, prices[i]);// res max(res, prices[i]-low);// }// return r…

低密度奇偶校驗碼LDPC(八)——QC-LDPC譯碼器FPGA設計概要

往期博文 低密度奇偶校驗碼LDPC&#xff08;一&#xff09;——概述_什么是gallager構造-CSDN博客 低密度奇偶校驗碼LDPC&#xff08;二&#xff09;——LDPC編碼方法-CSDN博客 低密度奇偶校驗碼LDPC&#xff08;三&#xff09;——QC-LDPC碼概述-CSDN博客 低密度奇偶校驗碼…

Linux系統--------內核參數調優、一鍵安裝nginx、tomcat調優

一、內核參數調優 默認的Linux內核參數考慮的是最通用場景&#xff0c;不符合用于支持高并發訪問的Web服務器的定義&#xff0c;根據業務特點來進行調整&#xff0c;當Nginx作為靜態web內容服務器、反向代理或者提供壓縮服務器的服務器時&#xff0c;內核參數的調整都是不同的…

Spring面試系列-02

1. Spring 中自動裝配有那些局限性? 自動裝配的局限性 重寫:仍需用<constructor-arg>和<property>配置來定義依賴,意味著總要重寫自動裝配。 基本數據類型:不能自動裝配簡單的屬性,例如基本數據類型、String字符串、和類。 模糊特性:自動裝配不如顯式裝配…

Vue點擊復制到剪切板

一、Vue2寫法 安裝 &#xff08;官網地址&#xff09; npm install --save vue-clipboard2 使用 //main.js import VueClipboard from vue-clipboard2 Vue.use(VueClipboard)//頁面使用 <button type"button"v-clipboard:copy"message"v-clipboard:su…

Mac電腦軟件開發的優缺點

Mac電腦軟件開發的優缺點 在軟件開發領域&#xff0c;Mac電腦一直以其獨特的優勢占有一席之地。然而&#xff0c;就像任何工具或平臺一樣&#xff0c;Mac電腦在軟件開發方面也存在其優點和缺點。本文將探討在Mac上進行軟件開發的利弊&#xff0c;幫助您了解是否應將Mac作為您的…

node.js 用 xml2js.Parser 讀 Freeplane.mm文件,生成測試用例.csv文件

Freeplane 是一款基于 Java 的開源軟件&#xff0c;繼承 Freemind 的思維導圖工具軟件&#xff0c;它擴展了知識管理功能&#xff0c;在 Freemind 上增加了一些額外的功能&#xff0c;比如數學公式、節點屬性面板等。 編寫 mm_xml2js_csv.js 如下 // 用 xml2js.Parser 讀 F…

Android 通過Intent打開第三方App

Android 使用 Intent 打開第三方應用或調用制定 Activity Intent intent new Intent(); intent.setClassName("package name", "activity name"); // 內部調用 intent.setComponent(new ComponentName("package name", "activity name&qu…

javaWebssh票據管理系統myeclipse開發mysql數據庫MVC模式java編程計算機網頁設計

一、源碼特點 java ssh票據管理系統是一套完善的web設計系統&#xff08;系統采用ssh框架進行設計開發&#xff09;&#xff0c;對理解JSP java編程開發語言有幫助&#xff0c;系統具有完整的源代碼和數據庫&#xff0c;系統主要采用B/S模 式開發。開發環境為TOMCAT7.0,My…

C++ 快速排序快速選擇

目錄 1、75. 顏色分類 2、912. 排序數組 3、 215. 數組中的第K個最大元素 4、LCR 159. 庫存管理 III 1、75. 顏色分類 思路&#xff1a;利用快速排序思路&#xff0c;使用三指針分塊進行優化。 [0,left]——小于key[left1,right-1]——等于key[right,nums.size()]——大于k…

博途PLC 面向對象系列之“輸送帶控制功能塊“(SCL代碼)

這篇是面向對象系列之"輸送帶功能塊"的封裝,面向對象是系列文章,相關鏈接如下: 1、面向對象系列之找"對象" https://rxxw-control.blog.csdn.net/article/details/136150027https://rxxw-control.blog.csdn.net/article/details/1361500272、面向對象…

LeetCode 刷題 [C++] 第215題.數組中的第K個最大元素

題目描述 給定整數數組 nums 和整數 k&#xff0c;請返回數組中第 k 個最大的元素。 請注意&#xff0c;你需要找的是數組排序后的第 k 個最大的元素&#xff0c;而不是第 k 個不同的元素。 你必須設計并實現時間復雜度為 O(n) 的算法解決此問題。 題目分析 根據題意分析&…

MYSQL 刪除命令 delete、truncate 、drop

目錄 一、delete 二、truncate 三、drop 四、delete&#xff0c;drop&#xff0c;truncate的區別 一、delete 作用&#xff1a;僅僅刪除表數據&#xff0c;表結構保留&#xff0c;數據能回滾 命令格式 #刪除全部數據 delete from 表名;#刪除表中id為1的數據&#xff0c;…

CleanMyMac X2024一款專為Mac用戶設計的優化工具

親愛的用戶們&#xff0c;我們都知道電腦在長時間使用后會變得越來越慢&#xff0c;垃圾文件和無用的應用程序會占用我們的硬盤空間&#xff0c;讓我們的電腦變得像蝸牛一樣慢。但是&#xff0c;現在有一個解決方案可以讓你的電腦重獲新生&#xff0c;那就是CleanMyMac X&#…

oracle鎖表

select alter system kill session ||sess.sid||,||sess.serial#||; bb,sess.sid,sess.serial#, lo.oracle_username,--登錄賬號lo.os_user_name,--登錄電腦ao.object_name,--被鎖表名lo.locked_mode --鎖住級別from v$locked_object lo,dba_objects ao,v$session sess where a…

第七十一天 漏洞發現-Web框架中間件聯動GobyAfrogXrayAwvsVulmap

第71天 漏洞發現-Web框架中間件&聯動&Goby&Afrog&Xray&Awvs&Vulmap 知識點&#xff1a; 1、Bup簡單介紹&使用說明 2、Xray簡單介紹&使用說明 3、AWWS簡單介紹&使用說明 4、Goby簡單介紹&使用說明 5、Afrog簡單介紹&使用說明 6、…

泰迪智能科技企業數據挖掘平臺使用場景

企業數據挖掘平臺助力企業數據挖掘&#xff0c;數據挖掘平臺也在多個領域發揮著重要的作用。 企業數據挖掘平臺具有數據抓取、數據清洗、數據分析、機器學習等多項功能&#xff0c;廣泛應用于企業的各個領域&#xff0c;包括&#xff1a;金融行業、醫療行業、交通領域、教育、制…

學習linux從0到工程師(命令)-4

基本命令 uname -m 顯示機器的處理器架構 uname -r 顯示正在使用的內核版本 dmidecode -q 顯示硬件系統部件 (SMBIOS / DMI) hdparm -i /dev/hda 羅列一個磁盤的架構特性 hdparm -tT /dev/sda 在磁盤上執行測試性讀取操作系統信息 arch 顯示機器的處理器架構 uname -m 顯示機器…

在OceanBase使用中,如何優化因Join估算不準導致執行計劃選錯的問題

作者&#xff1a;胡呈清&#xff0c;愛可生公司旗下的DBA團隊成員&#xff0c;擅長故障分析和性能優化。愛可生開源社區出品&#xff0c;原創內容未經授權不得隨意使用&#xff0c;轉載請聯系小編并注明來源。本文約 1600 字&#xff0c;預計閱讀需要 15 分鐘。 數據庫版本&…