Dify 完全指南(一):從零搭建開源大模型應用平臺(Ollama/VLLM本地模型接入實戰)》

文章目錄

    • 1. 相關資源
    • 2. 核心特性
    • 3. 安裝與使用(Docker Compose 部署)
      • 3.1 部署Dify
      • 3.2 更新Dify
      • 3.3 重啟Dify
      • 3.4 訪問Dify
    • 4. 接入本地模型
      • 4.1 接入 Ollama 本地模型
        • 4.1.1 步驟
        • 4.1.2 常見問題
      • 4.2 接入 Vllm 本地模型
    • 5. 進階應用場景
    • 6. 總結

1. 相關資源

  • 官網
  • Github
  • 說明文檔

2. 核心特性

  • ? 多模型支持:兼容 OpenAI、Anthropic、Ollama、VLLM、Hugging Face 等數百種模型。
  • ? 可視化 Prompt 編排:無需代碼,通過界面調整 AI 行為。
  • ? RAG 增強檢索:支持知識庫上傳(PDF/TXT/Markdown 等),提升回答準確性。
  • ? Agent 框架:可構建自動化 AI 工作流(如數據分析、客服機器人)。
  • ? 靈活部署:支持 Docker 一鍵部署,適配本地、云端及混合環境。

3. 安裝與使用(Docker Compose 部署)

參考資料

Docker Compose 部署

在運行安裝命令之前,請確保您的機器上安裝了 Docker 和 Docker Compose,安裝 Docker 以及 Docker Compose 的具體步驟可以參考 Ubuntu 24.04 完整Docker安裝指南:從零配置到實戰命令大全。

3.1 部署Dify

cd ~/workspace/ai/tools && git clone --depth 1 git@gitee.com:dify_ai/dify.git && cd dify/docker
cp .env.example .env
# 啟動 Docker 容器,未將當前用戶加入docker組的話,需要使用sudo
docker compose up -d
# 檢查容器是否都正常運行
docker compose ps

值得注意的是,如果版本是 Docker Compose V1,在使用命令 docker compose 的時候,需要換成 docker-compose,例如 docker-compose up -d

3.2 更新Dify

cd dify/docker
docker compose down
git pull origin main
docker compose pull
docker compose up -d

注意:

  • 如果 .env.example 文件有更新,請務必同步修改你本地的 .env 文件。
  • 檢查 .env 文件中的所有配置項,確保它們與你的實際運行環境相匹配。你可能需要將 .env.example 中的新變量添加到 .env 文件中,并更新已更改的任何值。
  • 更新后需要重啟 Dify

3.3 重啟Dify

# 停止Dify
docker compose down
# 啟動Dify
docker compose up -d

3.4 訪問Dify

# 本地環境
http://localhost# 服務器環境
http://your_server_ip

4. 接入本地模型

4.1 接入 Ollama 本地模型

參考資料

接入 Ollama 部署的本地模型
私有化部署 Ollama + DeepSeek + Dify,構建你的專屬私人 AI 助手

筆者實驗環境為 Ubuntu24.04,宿主機啟動 Ollama 服務 + Docker Compose部署 Dify

4.1.1 步驟
  1. 點擊 Dify 平臺右上角頭像 → 設置 → 模型供應商,選擇 Ollama,點擊“添加模型”(若 Dify 平臺中 Ollama 插件未安裝的話,需要先點擊“安裝”)。
  2. 輸入模型名稱、基礎URL,其他選項可使用默認設置即可,點擊“保存”。其中:
    • 模型名稱 為 Ollama 服務中的模型名稱,可通過 ollama list 獲取
      ollama list
    • 基礎URL 為 Ollama 服務地址,例如 http://host.docker.internal:11434
      ollama_config
4.1.2 常見問題
  1. Connection refused問題

    使用官方文檔中的 http://host.docker.internal:11434 作為基礎URL,可能會出現 httpconnectionpool (host=localhost, port=11434): max retries exceeded with url:/cpi/chat (Caused by NewConnectionError ('<urllib3.connection.HTTPConnection object at 0x7f8562812c20>: fail to establish a new connection:[Errno 111] Connection refused')) 錯誤,此時需要直接使用宿主機的IP地址。

    解決步驟:

    1. 設置 Ollama 服務監聽地址

      # 修改 ollama.service 文件,添加 OLLAMA_HOST 環境變量
      sudo vim /etc/systemd/system/ollama.service
      # 在 [Service] 下添加
      Environment="OLLAMA_HOST=0.0.0.0:11434"
      # 重新加載配置文件
      sudo systemctl daemon-reload
      sudo systemctl restart ollama
      # 查看服務狀態,確保 ollama 服務以 :::11434 啟動
      sudo netstat -tulnp | grep ollama 
      # 重啟Dify
      docker compose down
      docker compose up -d
      
    2. 獲取本機IP地址

      # 獲取本機IP地址,假如輸出為 192.168.163.248
      hostname -I | awk '{print $1}'
      # 測試以本機IP是否可以查看ollama模型列表(需要將 192.168.163.248 替換為上一步實際輸出的IP地址)
      curl http://192.168.163.248:11434/api/tags # 應成功返回模型列表
      
    3. 開啟防火墻端口

      如果仍有問題,考慮是否防火墻攔截了 11434 端口,需要配置防火墻規則。

      sudo ufw allow 11434/tcp && sudo ufw reload
      
    4. 修改基礎URL配置

      修改基礎URL配置,將 http://host.docker.internal:11434 修改為 http://192.168.163.248:11434,再次點擊 保存 即可。

4.2 接入 Vllm 本地模型

  1. 點擊 Dify 平臺右上角頭像 → 設置 → 模型供應商,選擇 Vllm,點擊“添加模型”(若 Dify 平臺中 Vllm 插件未安裝的話,需要先點擊“安裝”)。
  2. 輸入模型名稱、API endpoint URL,其他選項可使用默認設置即可,點擊“保存”。其中:
    • 模型名稱 為 Vllm 服務啟動的模型名稱
    • API endpoint URL 為 Vllm 服務地址,例如 http://192.168.163.248:8000/v1
      vllm_config

5. 進階應用場景

🔹 知識庫問答:上傳企業文檔,構建智能客服。
🔹 AI 工作流:結合 Agent 實現自動化任務(如郵件撰寫+數據分析)。
🔹 私有化部署:企業級數據安全,完全本地運行。

6. 總結

Dify 是當前最易用的開源 LLM 應用平臺之一,適合快速搭建 AI 應用。本文詳細介紹了 Docker 部署、Ollama/VLLM 本地模型接入 及常見問題排查,幫助開發者高效落地 AI 項目。

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

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

相關文章

C++ Windows 打包exe運行方案(cmake)

文章目錄 背景動態庫梳理打包方案一、使用 Vcpkg 安裝靜態庫&#xff08;關鍵基礎配置&#xff09;1. 初始化 Vcpkg2. 安裝靜態庫&#xff08;注意 x64-windows-static 后綴&#xff09; 二、CMakeLists.txt 關鍵配置三、編譯四、驗證 不同平臺代碼兼容\_\_attribute\_\_((pack…

Java學習手冊:Hibernate/JPA 使用指南

一、Hibernate 和 JPA 的核心概念 實體&#xff08;Entity&#xff09; &#xff1a;實體是 JPA 中用于表示數據庫表的 Java 對象。通過在實體類上添加 Entity 注解&#xff0c;JPA 可以將實體類映射到數據庫表。例如&#xff0c;定義一個 User 實體類&#xff1a; import ja…

字符串匹配 之 拓展 KMP算法(Z算法)

文章目錄 習題2223.構造字符串的總得分和3031.將單詞恢復初始狀態所需的最短時間 II 靈神代碼模版 區別與KMP算法 KMP算法可用于求解在線性時間復雜度0(n)內求解模式串p在主串s中匹配的未知當然&#xff0c;由于在KMP算法中&#xff0c;預處理求解出了next數組&#xff0c;也就…

安全為上,在系統威脅建模中使用量化分析

*注&#xff1a;Open FAIR? 知識體系是一種開放和獨立的信息風險分析方法。它為理解、分析和度量信息風險提供了分類和方法。Open FAIR作為領先的風險分析方法論&#xff0c;已得到越來越多的大型組織認可。 在數字化風險與日俱增的今天&#xff0c;企業安全決策正面臨雙重挑戰…

游戲引擎學習第259天:OpenGL和軟件渲染器清理

回顧并為今天的內容做好鋪墊 今天&#xff0c;我們將對游戲的分析器進行升級。在之前的修復中&#xff0c;我們解決了分析器的一些敏感問題&#xff0c;例如它無法跨代碼重新加載進行分析&#xff0c;以及一些復雜的小問題。現在&#xff0c;我們的分析器看起來已經很穩定了。…

訊睿CMS模版常用標簽參數匯總

一、模板調用標簽 1、首頁 網站名稱&#xff1a;{SITE_NAME} 標題&#xff1a;{$meta_title}&#xff08;列表頁通用&#xff09; Keywords&#xff1a;{$meta_keywords} Description&#xff1a;{$meta_description}2、列表頁 迅睿cms調用本欄目基礎信息標簽代碼 當前欄目…

【C#】Buffer.BlockCopy的使用

Buffer.BlockCopy 是 C# 中的一個方法&#xff0c;用于在數組之間高效地復制字節塊。它主要用于操作字節數組&#xff08;byte[]&#xff09;&#xff0c;但也可以用于其他類型的數組&#xff0c;因為它直接基于內存操作。 以下是關于 Buffer.BlockCopy 的詳細說明和使用示例&…

記一次pdf轉Word的技術經歷

一、發現問題 前幾天在打開一個pdf文件時&#xff0c;遇到了一些問題&#xff0c;在Win10下使用WPS PDF、萬興PDF、Adobe Acrobat、Chrome瀏覽器打開都是正常顯示的&#xff1b;但是在macOS 10.13中使用系統自帶的預覽程序和Chrome瀏覽器&#xff08;由于macOS版本比較老了&am…

在Laravel 12中實現4A日志審計

以下是在Laravel 12中實現4A&#xff08;認證、授權、賬戶管理、審計&#xff09;日志審計并將日志存儲到MongoDB的完整方案&#xff08;包含性能優化和安全增強措施&#xff09;&#xff1a; 一、環境配置 安裝MongoDB擴展包 composer require jenssegers/mongodb配置.env …

鏈表高級操作與算法

鏈表是數據結構中的基礎&#xff0c;但也是面試和實際開發中的重點考察對象。今天我們將深入探討鏈表的高級操作和常見算法&#xff0c;讓你能夠輕松應對各種鏈表問題。 1. 鏈表翻轉 - 最經典的鏈表問題 鏈表翻轉是面試中的常見題目&#xff0c;也是理解鏈表指針操作的絕佳練…

架構思維:構建高并發讀服務_使用懶加載架構實現高性能讀服務

文章目錄 一、引言二、讀服務的功能性需求三、兩大基本設計原則1. 架構盡量不要分層2. 代碼盡可能簡單 四、實戰方案&#xff1a;懶加載架構及其四大挑戰五、改進思路六、總結與思考題 一、引言 在任何后臺系統設計中&#xff0c;「讀多寫少」的業務場景占據主流&#xff1a;瀏…

在運行 Hadoop 作業時,遇到“No such file or directory”,如何在windows里打包在虛擬機里運行

最近在學習Hadoop集群map reduce分布運算過程中&#xff0c;經多方面排查可能是電腦本身配置的原因導致每次運行都會報“No such file or directory”的錯誤&#xff0c;最后我是通過打包文件到虛擬機里運行得到結果&#xff0c;具體步驟如下&#xff1a; 前提是要保證maven已經…

軟考-軟件設計師中級備考 11、計算機網絡

1、計算機網絡的分類 按分布范圍分類 局域網&#xff08;LAN&#xff09;&#xff1a;覆蓋范圍通常在幾百米到幾千米以內&#xff0c;一般用于連接一個建筑物內或一個園區內的計算機設備&#xff0c;如學校的校園網、企業的辦公樓網絡等。其特點是傳輸速率高、延遲低、誤碼率低…

【C#】.net core6.0無法訪問到控制器方法,直接404。由于自己的不仔細,出現個低級錯誤,這讓DeepSeek看出來了,是什么錯誤呢,來瞧瞧

&#x1f339;歡迎來到《小5講堂》&#x1f339; &#x1f339;這是《C#》系列文章&#xff0c;每篇文章將以博主理解的角度展開講解。&#x1f339; &#x1f339;溫馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不對之處望指正&#xff01;&#…

當LLM遇上Agent:AI三大流派的“復仇者聯盟”

你一定聽說過ChatGPT和DeepSeek&#xff0c;也知道它們背后的LLM&#xff08;大語言模型&#xff09;有多牛——能寫詩、寫代碼、甚至假裝人類。但如果你以為這就是AI的極限&#xff0c;那你就too young too simple了&#xff01; 最近&#xff0c;**Agent&#xff08;智能體&a…

Spring Boot多模塊劃分設計

在Spring Boot多模塊項目中&#xff0c;模塊劃分主要有兩種思路&#xff1a;??技術分層劃分??和??業務功能劃分??。兩種方式各有優缺點&#xff0c;需要根據項目規模、團隊結構和業務特點來選擇。 ??1. 技術分層劃分&#xff08;橫向拆分&#xff09;?? 結構示例&…

兩次解析格式化字符串 + 使用SQLAlchemy的relationship執行任意命令 -- link-shortener b01lersCTF 2025

題目描述: A fast and reliable link shortener service, with a new feature to add private links! 我們走一遍邏輯 注冊 app.route("/register", methods[GET, POST]) def register(): """ 用戶注冊路由&#xff0c;處理用戶注冊請求&#xff…

后端id類型為long類型時,返回給前端瀏覽器四舍五入,導致id精度缺失問題

背景 今天在代碼里&#xff0c;掉了別人寫的接口&#xff0c;有個id的字段是long類型的&#xff0c;我這邊加點參數返回給前端&#xff0c;然后前端根據id修改&#xff0c;結果修改的數據記錄有&#xff0c;但是沒起作用&#xff0c;后來發現根據他傳給我的id在后臺數據庫查不…

Scartch038(四季變換)

知識回顧 1.了解和簡單使用音樂和視頻偵測模塊 2.使用克隆體做出波紋特效 3.取色器妙用偵測背景顏色 前言 我國幅員遼闊,不同地方的四季會有不同的美麗景色,這節課我帶你使用程序做一個體現北方四季變化的程序 之前的程序基本都是好玩的,這節課做一個能夠賞心悅目的程序。…

JVM happens-before 原則有哪些?

理解Java Memory Model (JMM) 中的 happens-before 原則對于編寫并發程序有很大幫助。 Happens-before 關系是 JMM 用來描述兩個操作之間的內存可見性以及執行順序的抽象概念。如果一個操作 A happens-before 另一個操作 B (記作 A hb B)&#xff0c;那么 JMM 向你保證&#x…