logo
icon

Dify

Dify 是一個開源的大型語言模型(LLM)應用開發平台。

template cover

Dify 是一個開源的 LLM 應用程式開發平台。它的直觀介面結合了 AI 工作流程、RAG 流水線、代理功能、模型管理、可觀察性特徵等,使您能夠快速從原型開發到生產。

功能

  1. 工作流程:在可視化畫布上建構和測試強大的 AI 工作流程,利用以下所有功能及更多功能。
  2. 全面的模型支援:與數十家推理提供商和自託管解決方案的數百個專有/開源 LLM 無縫整合,涵蓋 GPT、Mistral、Llama3 和任何相容 OpenAI API 的模型。支援的模型提供商的完整列表可以在 模型提供商部分 中找到。
  3. 提示 IDE:用於設計提示、比較模型效能並為基於聊天的應用程式加入其他功能(如文字轉語音)的直觀介面。
  4. RAG 流水線:廣泛的 RAG 功能,涵蓋從文件攝取到檢索的所有內容,開箱即用支援從 PDF、PPT 和其他常見檔案格式中提取文字。
  5. 代理功能:您可以基於 LLM 函數呼叫或 ReAct 定義代理,並為代理加入預建構或自訂工具。Dify 為 AI 代理提供了 50 多種內建工具,例如 Google Search、DELL·E、Stable Diffusion 和 WolframAlpha。
  6. LLMOps:監控和分析應用程式日誌和效能隨時間的變化。您可以根據生產資料和註釋不斷改進提示、資料集和模型。
  7. 後端即服務:Dify 的所有產品都附帶相應的 API,因此您可以輕鬆地將 Dify 整合到您自己的業務邏輯中。

部署

要部署 Dify,請點擊右上角的「部署」按鈕,並填寫所需的域名。部署後,您可以在 https://<your-domain>.zeabur.app 存取您的 Dify 應用程式。

應用程式結構

  • Redis、PostgreSQL、MINIO 和 Weaviate 用於資料儲存和快取。
  • apiworkerworker-beatwebsandbox 是 Dify 的微服務。
  • plugin-daemon 管理第三方插件的執行和生命週期。
  • nginx 是 Dify 的閘道。它將微服務整合到一個主機上。換句話說,它是您的 Dify 應用程式的入口點。

設定

請參考 https://docs.dify.ai/getting-started/install-self-hosted/environments 了解可設定的變數,這些變數主要設定在 api 服務當中。

上傳檔案大小限制

預設的上傳檔案大小限制為 100 MB。你可以透過修改 nginx 服務中的 /etc/nginx/nginx.conf 設定檔裡的 client_max_body_size 指令來調整這個限制。數值應為帶有單位的字串(例如:100M 代表 100 MB)。

此外,你可能需要在 api 服務的環境中設定 UPLOAD_FILE_SIZE_LIMIT 變數,使其與上述設定相符。請確保這個數值與 /etc/nginx/nginx.conf 設定中的 client_max_body_size 指令相同(例如:100M 代表 100 MB)。

變更域名

更改 nginx 服務的域名後,你必須重啟專案中的所有服務,新域名才會生效。這是因為多個服務(如 apiweb)透過環境變數參照閘道 URL,這些變數僅在重啟時更新。

更新日誌

v1.13.0-1

修正

  • 修正 MinIO 儲存桶建立問題(映像檔中未包含 mc 二進位檔案)
  • 使用 HTTP REST API 修正 Weaviate gRPC 連線失敗
  • 修正 SSRF 代理阻擋 marketplace.dify.ai 請求的問題
  • 新增 SSRF 代理效能和逾時設定

v1.13.0

新增

  • Human-in-the-Loop(HITL)工作流程節點,支援 AI 與人類協作
  • 工作流程串流處理現在在 Celery worker 中執行,提升可靠性

修正

  • 新增插件守護程式通訊用的內部檔案 URL

v1.12.1-2

新增

  • 新增 worker-beat 排程服務

修正

  • 檔案上傳大小從 15MB 提高到 100MB
  • 修正 plugin endpoint 頁面 asset 載入 404
  • 修正 plugin endpoint URL 顯示為 localhost
  • 修正從模板建立應用時會失敗的問題

優化

  • 環境變數改由對應服務各自管理,減少重複設定