使用 Ollama 和 Open WebUI 自托管 LLM 聊天機器人(無需 GPU)

cover_image
?點擊這里?:🚀原文鏈接:(更好排版、視頻播放、社群交流、最新AI開源項目、AI工具分享都在這個公眾號!)

使用 Ollama 和 Open WebUI 自托管 LLM 聊天機器人(無需 GPU)

🌟 Open WebUI 是一個可擴展、功能豐富且用戶友好的 自托管 WebUI ,旨在完全離線運行。 它支持各種 LLM 運行器,包括
Ollama 和 OpenAI 兼容 API。

Github:https://github.com/open-webui/open-webui/

Hello,大家好,我是Aitrainee,今天介紹 ** Open WebUI ** (以前稱為 Ollama WebUI),以及
測試Ollama后端API 是否成功運行的兩種方式(Postman)。

Open WebUI 的主要功能 ?

  • ? 🚀 輕松設置 :使用 Docker 或 Kubernetes(kubectl、kustomize 或 helm)進行無縫安裝,支持 :ollama:cuda 標簽的鏡像。

  • ? 🤝 Ollama/OpenAI API 集成 :輕松集成兼容 OpenAI 的 API,以實現多功能對話和 Ollama 模型。自定義 OpenAI API URL 以鏈接到 LMStudio、GroqCloud、Mistral、OpenRouter 等

  • ? 🧩 Pipelines,Open WebUI 插件支持 :使用 Pipelines 插件框架 將自定義邏輯和 Python 庫無縫集成到 Open WebUI 中。啟動您的 Pipelines 實例,將 OpenAI URL 設置為 Pipelines URL,并探索無限可能。 示例 包括 功能調用 、用戶 訪問限制 、使用 Langfuse 等工具的 使用監控 、使用 LibreTranslate 的 實時翻譯 以支持多語言、 有害信息過濾 等等。

  • ? 📱 響應式設計 :在臺式電腦、筆記本電腦和移動設備上享受無縫體驗。

  • ? 📱 移動設備的漸進式 Web 應用 (PWA):通過我們的 PWA,在移動設備上享受本地應用般的體驗,提供本地主機的離線訪問和無縫用戶界面。

  • ? ??🔢 全面的 Markdown 和 LaTeX 支持 :通過綜合的 Markdown 和 LaTeX 功能提升您的 LLM 體驗,實現豐富的互動。

  • ? 🛠? 模型構建器 :通過 Web UI 輕松創建 Ollama 模型。創建和添加自定義角色/代理,定制聊天元素,并通過 Open WebUI 社區 集成輕松導入模型。

  • ? 📚 本地 RAG 集成 :通過突破性的檢索增強生成 (RAG) 支持,深入探索聊天互動的未來。此功能將文檔互動無縫集成到您的聊天體驗中。您可以將文檔直接加載到聊天中,或將文件添加到您的文檔庫中,在查詢前通過 # 命令輕松訪問它們。

  • ? 🔍 RAG 的 Web 搜索 :使用 SearXNGGoogle PSEBrave Searchserpstackserper 等提供商進行 Web 搜索,并將結果直接注入您的聊天體驗中。

  • ? 🌐 Web 瀏覽功能 :使用 # 命令后跟 URL,將網站無縫集成到您的聊天體驗中。此功能允許您將 Web 內容直接納入對話中,增強互動的豐富性和深度。

  • ? 🎨 圖像生成集成 :通過使用 AUTOMATIC1111 API 或 ComfyUI(本地)和 OpenAI 的 DALL-E(外部)等選項,無縫集成圖像生成功能,為您的聊天體驗增添動態視覺內容。

  • ? ?? 多模型對話 :輕松與多個模型同時互動,利用它們的獨特優勢以獲得最佳響應。通過并行利用多種模型來增強您的體驗。

  • ? 🔐 基于角色的訪問控制 (RBAC):確保安全訪問,只有授權人員才能訪問您的 Ollama,管理員專享模型創建/拉取權限。

  • ? 🌐🌍 多語言支持 :通過我們的國際化 (i18n) 支持,以您偏好的語言體驗 Open WebUI。加入我們,擴展我們支持的語言!我們正在積極尋找貢獻者!

  • ? 🌟 持續更新 :我們致力于通過定期更新、修復和新功能不斷改進 Open WebUI。

![](https://res.wx.qq.com/t/wx_fed/we-

emoji/res/v1.3.10/assets/Expression/Expression_96@2x.png) 跟著我快速開始

1. 安裝完Docker(公眾號菜單有一鍵環境配置腳本,LLM API開源項目也有)

2. 如果您的 計算機上有 Ollama, 運行以下指令

安裝ollama: 全民AI時代:手把手教你用 Ollama & AnythingLLM搭建AI知識庫,無需編程,跟著做就行!

(不安裝ollama或者不使用docker的話,文章的后面會有所有的部署方式)

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

這里顯示的是windows系統docker desktop的部署: 打開這個端口

來到前端頁面就部署成功了,左上角選擇模型(記得將歐拉瑪后端啟動)

▲ ollama后端啟動

Ollama后端API測試

這個 open web
ui是相當于一個前端項目,它后端調用的是ollama開放的api,這里我們來測試一下ollama的后端api是否是成功的,以便支持你的api調用操作

方式一:終端curl( REST API)

Ollama 提供用于運行和管理模型的 REST API。

生成響應

curl http://localhost:11434/api/generate -d '{  "model": "llama3",  "prompt": "為什么天空是藍色的?"  
}'

與模型聊天

curl http://localhost:11434/api/chat -d '{  "model": "llama3",  "messages": [  { "role": "user", "content": "為什么天空是藍色的?" }  ]  
}'

REST API(Representational State Transfer Application Programming
Interface)是一種基于HTTP協議的應用程序接口,它遵循REST架構風格。

REST API 使得不同系統之間能夠通過標準的HTTP請求(如GET、POST、PUT、DELETE等)進行通信和數據交換。

方式二: ** Postman測試 **

設置 Postman 請求

  1. 1. 打開 Postman : 確保你已經安裝并打開了 Postman。

  2. 2. 創建新請求 :

* ?  點擊 "New" 按鈕。 * ?  選擇 "HTTP Request"。 
  1. 3. 設置請求方法和 URL :
* ?  將請求方法設置為 ` POST ` 。 * ?  輸入 URL ` http://localhost:11434/api/generate ` 。 
  1. 4. 設置請求頭 : 在 “Headers” 選項卡中添加一個新鍵值對:
* ?  ` Content-Type ` : ` application/json `
  1. 5. 設置請求體 :
* ?  切換到 "Body" 選項卡。 * ?  選擇 "raw"。 * ?  確保選擇 "JSON" 格式。 * ?  在文本框中輸入以下 JSON 數據: {  "model": "gemma:7b",  "prompt": "Why is the sky blue?"  }
  1. 6. 發送請求 :
* ?  點擊 "Send" 按鈕發送請求。 * ? 本地請求API:比如:http://  **localhost** :11434/api/generate,記得先安裝  Postman Agent(你sent之后它會提示你安裝的) * ![](https://img-blog.csdnimg.cn/img_convert/e105f3117225e456c82532d4e6e12750.jpeg)   

驗證響應

  1. 1. 查看響應 :
* ?  請求發送后,查看響應的狀態碼應該是 ` 200 OK ` ,表示請求成功。 * ?  響應體應該包含 JSON 數據,你會看到類似于你之前提供的逐步生成的響應。 
* ![](https://img-blog.csdnimg.cn/img_convert/eb0f516cb6cbedf1d98e42166ad1256b.png)   *   
  1. 2. **檢查done 字段 ** :
* ?  在 Postman 的 "Tests" 選項卡中,你可以編寫 JavaScript 測試代碼來自動驗證 ` done ` 字段的值。 * ?  以下是一個示例測試代碼: pm.test("Check if response is complete", function () {  var jsonData = pm.response.json();  pm.expect(jsonData.done).to.eql(true);  });
  1. 3. **持續發送請求直到donetrue ** :
* ?  你可能需要多次發送請求來檢查是否 ` done ` 字段變為 ` true ` 。 * ?  你可以在 Postman 中設置一個循環或手動重復發送請求來檢查。 *   * ![](https://img-blog.csdnimg.cn/img_convert/e65dd8400af3b0c7864186048a1b76de.png)

下面提供官方的 文檔介紹、相關資源、部署教程 等,進一步支撐你的行動,以提升本文的幫助力。

如何安裝 🚀

使用默認配置安裝

  • ? 如果 Ollama 在您的計算機上 ,請使用此命令:

    docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
    
  • ? 如果 Ollama 在另一臺服務器上 ,請使用此命令:要連接到另一臺服務器上的 Ollama,請將 OLLAMA_BASE_URL 更改為服務器的 URL:

    docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:maindocker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda
    
    • ? 要使用 Nvidia GPU 支持運行 Open WebUI ,請使用此命令:

僅使用 OpenAI API 安裝

  • ? 如果您僅使用 OpenAI API ,請使用此命令:

    docker run -d -p 3000:8080 -e OPENAI_API_KEY=your_secret_key -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
    

安裝帶有捆綁 Ollama 支持的 Open WebUI

此安裝方法使用單個容器鏡像將 Open WebUI 與 Ollama 捆綁在

一起,允許通過單個命令進行簡化設置。根據您的硬件設置選擇適當的命令:

  • ? 支持 GPU :通過運行以下命令利用 GPU 資源:

    docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
    
  • ? 僅限 CPU :如果您不使用 GPU,請使用此命令:

    docker run -d -p 3000:8080 -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
    

兩個命令都可以實現 Open WebUI 和 Ollama 的內置簡化安裝,確保您可以迅速啟動和運行。

安裝后,您可以訪問 http://localhost:3000 的 Open WebUI。享受吧!😄

保持 Docker 安裝最新

如果您想將本地 Docker 安裝更新到最新版本,可以使用 Watchtower :

docker run --rm --volume /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower --run-once open-webui

在命令的最后部分,如果容器名稱不同,請將 open-webui 替換為您的容器名稱。

知音難求,自我修煉亦艱

抓住前沿技術的機遇,與我們一起成為創新的超級個體

(把握AIGC時代的個人力量)

**
**

** 點這里 👇 關注我,記得標星哦~ **

一鍵三連「分享」、「點贊」和「在看」

科技前沿進展日日相見 ~

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

預覽時標簽不可點

微信掃一掃
關注該公眾號

輕觸閱讀原文

AI進修生



收藏

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

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

相關文章

二叉查找樹詳解

目錄 二叉查找樹的定義 二叉查找樹的基本操作 查找 插入 建立 刪除 二叉樹查找樹的性質 二叉查找樹的定義 二叉查找樹是一種特殊的二叉樹,又稱為排序二叉樹、二叉搜索樹、二叉排序樹。 二叉樹的遞歸定義如下: (1)要么二…

10. MySQL 用戶

文章目錄 【 1. 權限表 】1.1 user 權限表1.1.1 用戶列1.1.2 權限列1.1.3 安全列1.1.4 資源控制列 1.2 db 表用戶列權限列 1.3 tables_priv 表1.4 columns_priv 表1.5 procs_priv表 【 2. 用戶管理 】2.1 創建用戶 CREATE USER2.2 用戶的登陸、退出登陸 MySQL退出 MySQL 2.3 重…

Java常見錯誤-內部類-簡要分析

Java常見錯誤-內部類-簡要分析 概念分類成員內部類(非靜態內部類)靜態內部類成員內部類和靜態內部類區別 局部內部類匿名內部類 注意事項總結 概念 ? 內部類,顧名思義,就是在一個類的內部定義的類。這種設計允許將一個類的實現細…

深度學習-10-測試

深度學習-10-測試 本文是《深度學習入門2-自製框架》 的學習筆記,記錄自己學習心得,以及對重點知識的理解。如果內容對你有幫助,請支持正版,去購買正版書籍,支持正版書籍不僅是尊重作者的辛勤勞動,也是鼓勵…

Web前端ES6-ES13筆記合集(下)

#### 五.ES10新特性 ##### 1. Object.fromEntries > Object.fromEntries()方法允許你輕松地將鍵值對列表轉換為對象 js const arr [["name", "kerwin"], ["age", 100]]; console.log(Object.fromEntries(arr))//{name: kerwin, age: 100} …

pytorch 筆記:pytorch 優化內容(更新中)

1 Tensor創建類 1.1 直接創建Tensor,而不是從Python或Numpy中轉換 不要使用原生Python或NumPy創建數據,然后將其轉換為torch.Tensor直接用torch.Tensor創建或者直接:torch.empty(), torch.zeros(), torch.full(), torch.ones(), torch.…

樹莓派【Raspberry Pi-64位】3b+,Pi4J 2.0入門

一.前言: 前面的文章講解了樹莓派在centos7 arm64版本下的使用,用一款智能小車為例子,做了代碼實踐。 由于centos7不再維護,且Pi4J 1.x版本也因為WiringPi 的局限,Pi4J從1.x升級為2.x.所以本專欄的技術棧也將進行調整,A.從centos7系統回到Raspberry Pi-64位系統。B.Pi4…

4.通用編程概念

目錄 一、變量與常量1.1 變量1.2 常量 二、遮蔽三、數據類型3.1 標量類型1. 整型2. 浮點型3. 布爾類型4.字符類型 3.2 復合類型1. 元組2. 數組 四、函數五、語句和表達式六、函數的返回值 一、變量與常量 1.1 變量 在Rust中默認的變量是不可變的,如果修改其值會導致…

《青少年編程與數學》課程方案:4、課程策略

《青少年編程與數學》課程方案:4、課程策略 一、工程師思維二、使命感驅動三、價值觀引領四、學習現代化五、工作生活化六、與時代共進 《青少年編程與數學》課程策略強調采用工程師思維,避免重復造輪子,培養使命感,通過探索興趣、…

編程語言有哪些?這些希望你都知道

編程語言有哪些 編程語言有很多種,包括但不限于以下幾種: Java:當今最普遍使用的開發語言之一,簡單易學,且跨平臺性非常強,對網絡開發的支持令人稱贊。Python:語法清楚,干凈&#…

【Vue】如何提供訪問vuex的數據

文章目錄 一、提供數據二、訪問Vuex中的數據通過$store訪問的語法1)模板中使用2)組件邏輯中使用3)js文件中使用 三、通過輔助函數 - mapState獲取 state中的數據 一、提供數據 State提供唯一的公共數據源,所有共享的數據都要統一…

[office] 快速刪除excel中的空行和列的方法 #其他#學習方法#經驗分享

快速刪除excel中的空行和列的方法 用戶在網上下載好的Excel表格打開之后發現有很多空白行,怎么樣將這些空白行或單元格一次性刪除掉呢?下面教大家在Excel中用定位一次性可以把空白行刪除 用戶在網上下載好的Excel表格打開之后發現有很多空白行,怎么樣將…

Vue3 使用audio播放語音+監聽播放語音完成事件

需求&#xff1a;輸入一段文字&#xff0c;點擊語音框&#xff0c;將本地語音&#xff08;提前準備好的&#xff09; 播放出來 播放中效果 代碼 <div class"listConAI" click"handleOpenSpeech" ><imgsrc"../../../../assets/images/blueo…

web前端 孫俏:深度探索與實戰之路

web前端 孫俏&#xff1a;深度探索與實戰之路 在這個數字化、信息化的時代&#xff0c;web前端技術以其獨特的魅力&#xff0c;吸引著越來越多的開發者投身其中。今天&#xff0c;我們將跟隨孫俏的腳步&#xff0c;一同探索web前端的深度與廣度&#xff0c;揭開其神秘的面紗。…

中文文案寫作有哪些合適的AIGC工具?

這是計育韜老師第 8 次開展面向全國高校的新媒體技術公益巡講活動了。而在每場講座尾聲&#xff0c;互動答疑環節往往反映了高校師生當前最普遍的運營困境&#xff0c;特此計老師在現場即興答疑之外&#xff0c;會盡量選擇有較高價值的提問進行文字答疑梳理。 *本輪巡講主題除了…

【Vue】開啟嚴格模式及Vuex的單項數據流

文章目錄 一、引出問題二、開啟嚴格模式 一、引出問題 目標 明確 vuex 同樣遵循單向數據流&#xff0c;組件中不能直接修改倉庫的數據 這樣數據的流向才會更加清晰&#xff0c;將來對數據的修改&#xff0c;都在倉庫內部實現的&#xff0c;更易于維護 直接在組件中修改Vuex中…

Git:版本控制的藝術與GitLab實戰指南

在當今快速發展的軟件開發領域&#xff0c;高效、協同的代碼管理是項目成功的關鍵。Git&#xff0c;作為一款分布式版本控制系統&#xff0c;憑借其強大的功能和靈活性&#xff0c;成為了眾多開發者首選的版本控制工具。本文將帶您深入探索Git的核心概念、基礎操作&#xff0c;…

B3870 [GESP202309 四級] 變長編碼

[GESP202309 四級] 變長編碼 題目描述 小明剛剛學習了三種整數編碼方式&#xff1a;原碼、反碼、補碼&#xff0c;并了解到計算機存儲整數通常使用補碼。但他總是覺得&#xff0c;生活中很少用到 2 31 ? 1 2^{31}-1 231?1 這么大的數&#xff0c;生活中常用的 0 ~ 100 0…

Spring進階技巧:利用AOP提前介入的巧妙實踐

Spring框架中的面向切面編程&#xff08;AOP&#xff09;是一種強大的機制&#xff0c;它允許開發者在不修改原有代碼的情況下&#xff0c;對程序進行橫向切面的功能擴展。AOP提供了一種方式&#xff0c;可以在目標Bean的生命周期早期階段就實施切面邏輯&#xff0c;這為我們在…

Python 中如何使用 lambda 函數

在 Python 中&#xff0c;可以使用 lambda 函數來創建匿名函數。lambda 函數的語法是&#xff1a;lambda 參數: 表達式。以下是一些使用 lambda 函數的例子&#xff1a; 通過 lambda 函數來計算兩個數的和&#xff1a; add lambda x, y: x y print(add(2, 3)) # 輸出 5通過…