Dify 封面圖:開源大型語言模型應用開發平台

Dify:開源 LLM 應用開發平台,自架部署與安全設定

內容概述

Dify 是一個開源的 LLM(大型語言模型)應用開發平台。它提供直觀的介面,結合 AI 工作流程、RAG 管線、代理功能、模型管理和可觀察性等特性,協助開發者從原型快速進入生產階段。本文以目前最新的 Dify 1.18.0 說明 Docker Compose 自架部署,以及上線前必須修改的預設金鑰。

應用場景

Dify 適用於以下場景:

  • 創業者:快速將 AI 應用創意變為現實,建立 MVP 或進行概念驗證。
  • 企業開發者:將 LLM 整合至現有業務,並透過 RESTful API 讓 Prompt 與業務程式碼分離。
  • 技術愛好者:探索 LLM 的能力邊界,實踐 Prompt 工程和代理技術。

技術特點與整合

  • 多模型支援:可接入 OpenAI、Anthropic 等雲端模型,也能透過外掛串接 Ollama 等自架模型。
  • 視覺化工作流程:以圖形化介面編排 Prompt、工作流程與代理(Agent)。
  • RAG 知識庫:可從檔案、Notion、網頁等匯入資料建立知識庫,提升回答的準確性。
  • 工具與外掛:提供內建工具,也支援自訂工具與外掛整合。
  • API 與嵌入:應用可透過 API 或內嵌程式碼整合到其他系統。

安裝步驟

1. 確認系統符合以下要求:CPU 至少 2 核心、RAM 至少 4 GiB,作業系統可為 Linux、macOS 或 Windows。

2. 安裝 Docker 與 Docker Compose(官方要求 v2.24.0 以上)。

3. 下載指定版本的 Dify 儲存庫:

git clone --branch 1.18.0 https://github.com/langgenius/dify.git

4. 進入 docker 目錄並建立設定檔:

cd dify/docker
cp .env.example .env

5. 啟動前先修改預設金鑰與密碼。1.18.0 的 .env.example 已大幅精簡,只保留服務啟動必要的變數,不需要逐行修改,但以下項目在官方範例中都是公開的預設值,務必在第一次啟動前改掉(資料庫建立後再改密碼會導致連線失敗):

# 資料庫與 Redis 密碼(預設皆為 difyai123456)
DB_PASSWORD=請改成高強度密碼
REDIS_PASSWORD=請改成高強度密碼

# 程式碼沙箱金鑰(兩個值必須相同,預設 dify-sandbox)
SANDBOX_API_KEY=請改成隨機字串
CODE_EXECUTION_API_KEY=與上面相同

# 外掛服務金鑰
PLUGIN_DAEMON_KEY=請改成隨機字串
PLUGIN_DIFY_INNER_API_KEY=請改成隨機字串

# 預設向量資料庫 Weaviate 的金鑰(兩個值必須相同)
WEAVIATE_API_KEY=請改成隨機字串
WEAVIATE_AUTHENTICATION_APIKEY_ALLOWED_KEYS=與上面相同

# 初始化管理員前需輸入的密碼(最多 30 字元),對外開放時建議設定
INIT_PASSWORD=請自行設定

隨機字串可以用 openssl rand -base64 42 產生。SECRET_KEY 留空時,Dify 會自動產生並保存在儲存目錄中;若要自行指定,同樣請使用隨機字串。

6. 啟動服務:

docker compose up -d

7. 開啟瀏覽器前往 http://localhost/install,設定管理員帳戶:

Dify 安裝完成後的設定管理員帳戶畫面

8. 點擊「建立空白應用」,建立第一個 AI 助手:

Dify 建立空白應用並選擇聊天助手類型的畫面

存取和操作

完成安裝後,您可以依照以下步驟開始操作:

  1. 建立應用:在 Web 介面中選擇「建立應用」,輸入應用名稱與描述,並選擇適用的模型。
  2. 編輯 Prompt:透過圖形化介面編輯 Prompt,測試模型生成的結果,並根據需要進行最佳化。
  3. 連接知識庫:將知識庫與應用整合,以增強生成內容的準確性。
  4. 發佈應用:透過 RESTful API 或內嵌程式碼將應用嵌入至其他系統或網站中。

對外開放前的安全設定

  • 不要直接把 80 埠暴露在網路上:預設 NGINX_HTTPS_ENABLED=false,請在前面加上反向代理並啟用 HTTPS,或只在內網/VPN 使用。
  • 盡快完成初始化:未設定 INIT_PASSWORD 時,任何能連到 /install 的人都可以搶先建立管理員帳戶。
  • 限制內部網路存取:Dify 預設透過 SSRF 代理阻擋工作流程存取內網位址,除非確定需要,不要隨意設定 SSRF_PROXY_ALLOW_PRIVATE_IPS。
  • 定期更新:資料存放在 docker/volumes 目錄,升級前請先備份;新版若新增環境變數,可使用官方提供的 dify-env-sync.sh 將 .env.example 的新變數同步到 .env。

小技巧

  • 利用版本控制功能管理 Prompt 的多個版本,便於測試和調整。
  • 在 RAG 管線中調整分段與檢索設定,以提高內容生成的相關性。
  • 善用代理功能,讓應用具備自主決策能力,實現自動化工作流程。
  • 多次調整 Prompt 和模型參數,以找到最符合業務需求的設定。

教學影片

影片來源:Dify/YouTube

影片來源:Dify/YouTube

參考連結

成本與風險摘要

  • 適用對象與規模:個人實驗到中小團隊的內部 AI 應用;多租戶對外服務需另取得商業授權。
  • 成本(硬體、訂閱、授權):自架軟體免費(Dify Open Source License,以 Apache 2.0 為基礎並附加條件:不得未經授權經營多租戶服務、不得移除前端 LOGO 與版權資訊);硬體至少 2 核心/4 GiB RAM;模型費用依您選用的雲端 API 或自架 GPU 而定。
  • 維護時間:需定期升級版本、備份資料庫與向量資料庫,並留意外掛更新。
  • 資安注意事項:第一次啟動前修改預設密碼與金鑰、設定 INIT_PASSWORD、啟用 HTTPS,不要把 API 金鑰寫進 Prompt 或公開應用。
  • 常見誤區:以為 .env 範例中的密碼只是示意;其實不修改就會以公開的預設值運作。
  • 不建議使用的情況:只需要單純聊天介面時,可改用較輕量的 Open WebUI;沒有人力維護伺服器時可考慮官方雲端版。
  • 測試日期與版本號:資料查核日期:2026-10-28;Dify 1.18.0(依官方 GitHub 儲存庫與 .env 範例查核,本次未重新實機測試)。
返回頂端