[AI/GPT/LLOps/AI中台] Dify : 开源AI大模型应用开发平台(Apache 2.0)
概述:Dify
Dify是一款開源的大語言模型(LLM) 應用開發平臺。
- 它融合了后端即服務(Backend as Service)和 LLMOps 的理念,使開發者可以快速搭建生產級的生成式 AI 應用。
- 即使你是非技術人員,也能參與到 AI 應用的定義和數據運營過程中。
- 由于
Dify內置了構建 LLM 應用所需的關鍵技術棧,包括對數百個模型的支持、直觀的 Prompt 編排界面、高質量的 RAG 引擎、穩健的 Agent 框架、靈活的流程編排,并同時提供了一套易用的界面和 API。- 這為開發者節省了許多重復造輪子的時間,使其可以專注在創新和業務需求上。
簡介:為什么會有Dify?LLMOps
近年來大規模語言模型的崛起,帶來了一個新興的概念
LLMOps(Large Language Model Operations),LLMOps是一個涵蓋了大型語言模型(如GPT系列)開發、部署、維護和優化的一整套實踐和流程。LLMOps 的目標是確保高效、可擴展和安全地使用這些強大的 AI 模型來構建和運行實際應用程序。它涉及到模型訓練、部署、監控、更新、安全性和合規性等方面。
用一句話描述,
LLMOps有助于提升大語言模型在實際應用中的效率和表現。
在眾多的LLMOps應用中,有一款在Github上擁有54.9K Star的開源項目備受歡迎,這就是Dify。
- 官方給出的表述如下:
Dify 是一款開源的大語言模型(LLM) 應用開發平臺。
它融合了后端即服務(Backend as Service)和LLMOps的理念,使開發者可以快速搭建生產級的生成式 AI 應用。
即使你是非技術人員,也能參與到 AI 應用的定義和數據運營過程中。
Dify一詞源自Define+Modify,意指定義并且持續的改進你的 AI 應用,它是為你而做的(Do it for you)。宗旨
Dify是一個開源的LLM應用程序開發平臺。
Dify的直觀界面結合了AI工作流程、RAG管道、代理功能、模型管理、可觀察性功能等,讓您快速從原型到生產。
主要編程語言: Python / TypeSript
開源協議: Apache 2.0
url
- https://docs.dify.ai
- https://github.com/langgenius/dify
- https://github.com/langgenius/dify-docs
20250211 : 9.6k fork / 65.2k star
使用Dify LLMOps 平臺后會有什么效果
| 步驟 | 未使用LLMOps平臺 | 使用Dify LLMOps平臺 | 時間差異 |
|---|---|---|---|
| 開發應用前&后端 | 集成和封裝 LLM 能力,花費較多時間開發前端應用 | 直接使用 Dify 的后端服務,可基于 WebApp 腳手架開發 | -80% |
| Prompt Engineering | 僅能通過調用 API 或 Playground 進行 | 結合用戶輸入數據所見即所得完成調試 | -25% |
| 數據準備與嵌入 | 編寫代碼實現長文本數據處理、嵌入 | 在平臺上傳文本或綁定數據源即可 | -25% |
| 應用日志與分析 | 編寫代碼記錄日志,訪問數據庫查看 | 平臺提供實時日志與分析 | -70% |
| 數據分析與微調 | 技術人員進行數據管理和創建微調隊列 | 非技術人員可協同,可視化模型調整 | -60% |
| AI 插件開發與集成 | 編寫代碼創建、集成 AI 插件 | 平臺提供可視化工具創建、集成插件能力 | -50% |
在使用 LLMOps 平臺如 Dify 之前,基于 LLM 開發應用的過程可能會非常繁瑣和耗時。
開發者需要自行處理各個階段的任務,這可能導致效率低下、難以擴展和安全性問題。
引入 Dify 這樣的 LLMOps 平臺后,基于 LLM 開發應用的過程將變得更加高效、可擴展和安全。
Dify的核心競爭力在哪里
- 在LLMOps領域,Dify是業界內備受關注的一款產品,作為一款開源項目在Github中擁有56.5K的Star, 那Dify的競爭力究竟在哪里?
? 工作流 : Dify 支持在可視化的畫布上快速構建出一個可以執行自動化任務的 AI 應用;
? 支持大多數市面上流行的 AI 模型 :包括 ChatGPT、Mistral、Llama3 以及通義千問等;
- 直觀簡潔的Prompt IDE:可以用于制作提示、比較模型性能以及向基于聊天的應用程序添加文本轉語音等附加功能;
- RAG 功能:廣泛的RAG功能,涵蓋從文檔攝取到檢索的所有內容,并支持從PDF、PPT和其他常見文檔格式中提取文本。
- 代理功能:Dify 內置了 50 多個工具 ,例如 Google Search、DELL·E、Stable Diffusion 和 WolframAlpha,也可以自定義工具。可以基于LLM函數調用或ReAct定義代理,并為代理添加預構建或自定義工具
- LLMOps :支持監控和分析應用程序日志和性能。可以根據生產數據和注釋不斷改進提示、數據集和模型監控和分析應用程序日志和性能;
- 后端即服務:Dify 的所有產品 都附帶相應的 API ,因此我們也可以很輕松地將 Dify 集成到自己的業務中去。
系統集成與擴展性
除此之外 Dify 還額外提供了三個功能給我們,分別是:
- 運行 :會打開一個新的頁面,頁面 url 地址是 dify 為這個應用生成的一個唯一的 url 鏈接;
- 嵌入網站 :就是提供三種嵌入方式: 以 iframe 的形式將 AI 應用集成到自己的網站中去 、通過 script 腳本的方式將一段代碼 copy 到網站代碼中以及通過瀏覽器插件的形式來集成
- 訪問 API :提供接口的形式,將 AI 應用接入到其他的產品中
核心功能
工作流: 在畫布上構建和測試功能強大的 AI 工作流程,利用以下所有功能以及更多功能。
全面的模型支持: 與數百種專有/開源 LLMs 以及數十種推理提供商和自托管解決方案無縫集成,涵蓋 GPT、Mistral、Llama3 以及任何與 OpenAI API 兼容的模型。
完整的支持模型提供商列表可在此處找到:
Prompt IDE: 用于制作提示、比較模型性能以及向基于聊天的應用程序添加其他功能(如文本轉語音)的直觀界面。
RAG Pipeline: 廣泛的 RAG 功能,涵蓋從文檔攝入到檢索的所有內容,支持從 PDF、PPT 和其他常見文檔格式中提取文本的開箱即用的支持。
Agent 智能體: 您可以基于 LLM 函數調用或 ReAct 定義 Agent,并為 Agent 添加預構建或自定義工具。Dify 為 AI Agent 提供了50多種內置工具,如谷歌搜索、DELL·E、Stable Diffusion 和 WolframAlpha 等。
LLMOps: 隨時間監視和分析應用程序日志和性能。您可以根據生產數據和標注持續改進提示、數據集和模型。
后端即服務: 所有 Dify 的功能都帶有相應的 API,因此您可以輕松地將 Dify 集成到自己的業務邏輯中。
核心內置組件
- ollama
- ollama是一個非常方便的LLM加速/服務化應用,現在大部分人構建私有化大模型應用,模型服務部分幾乎用的都是它。
- 推薦文獻
- [Python/GPT/AI] Ollama: LLM私有化部署工具 - 博客園/千千寰宇
Dify 背后的公司: 蘇州語靈人工智能科技(LangGenius)
Dify是?蘇州語靈人工智能科技(LangGenius)有限公司?旗下的產品。
+? 成立時間與注冊資本?:蘇州語靈人工智能科技有限公司成立于2023年3月,注冊資本為143.63萬人民幣(經過增資后的數額)。
?+? 經營范圍?:該公司主要經營范圍包括第二類增值電信業務、人工智能基礎軟件開發、人工智能應用軟件開發、人工智能行業應用系統集成服務以及軟件開發等。
?+? 股東結構?:該公司的股東包括張路宇、蘇州語芯創業投資合伙企業(有限合伙)、寧波梅山保稅港區民恒啟智投資管理中心(有限合伙),以及新增的浙江阿里巴巴云計算有限公司和蘇州元之芯貳期創業投資合伙企業(有限合伙)。
?+? 產品與服務?:
Dify: 該公司推出的一款開源LLMOps(大語言模型運維)平臺,旨在幫助開發者更簡單、快捷地創建AI應用。Dify平臺具有簡潔易用的界面和強大的功能,在實際應用中獲得了用戶的一致好評。
此外,Dify還推出了新的主力產品Dify workflow,一個兼顧易用和靈活的開發框架,進一步豐富了其產品線和服務。
Ollama
綜上所述,
Dify作為蘇州語靈人工智能科技有限公司的旗艦產品,在人工智能領域具有廣泛的影響力和應用前景。
原理與架構
Dify的架構采用分層設計,自上而下可分為四層:數據層、開發層、編排層和基礎層
數據層
- 數據層包含Dataset(數據集)和Prompts(提示詞)兩個輸入源,通過ETL進行數據處理,并由RAG Pipeline實現知識檢索增強。這一層確保了數據的質量和模型的回答準確性和可靠性。
- 開發層
- 開發層提供Prompts IDE和Agent DSL兩大開發工具。
Prompts IDE用于提示詞的編寫、測試和版本管理;
而Agent DSL則用于構建智能代理,支持感知、規劃和行動等能力。
- 編排層
編排層以Orchestration Studio為核心,負責協調各個組件的運行,并通過Moderation System(審核系統)和Cache System(緩存系統)保障應用質量。這一層提供了可視化的編排工具,極大地加速了AI應用程序的開發進程。
- 基礎層
- 基礎層包括Storage(存儲系統)和LLMs(語言模型)兩大基礎設施,為上層提供支撐。
存儲系統負責數據的存儲和管理,而語言模型則是應用的核心組件。
- 核心組件功能
- Dataset ETL:負責數據的提取、轉換和加載,確保數據質量。
- Dify RAG Pipeline:實現檢索增強生成,提高模型回答的準確性和可靠性。
- Dify Prompts IDE:提供提示詞的編寫、測試和版本管理功能。
- Dify Agent DSL:支持智能代理的開發,實現感知、規劃和行動等能力。
- Plugins Toolbox:提供豐富的插件工具箱,支持工作流程、社區集成等功能。
- Dify LLMOps:提供模型運維能力,包括監控、注釋和生命周期管理
安裝部署篇
依賴組件
知悉即可,也可通過
dify/docker/docker-compose.yaml搜索image了解。
以 1.0.0-beta.1 為例:
langgenius/dify-api:1.0.0-beta.1
langgenius/dify-web:1.0.0-beta.1
postgres:15-alpine
redis:6-alpine
langgenius/dify-sandbox:0.2.10
langgenius/dify-plugin-daemon:0.0.1-local
ubuntu/squid:latest
certbot/certbot
nginx:latest
pingcap/tidb:v8.4.0
semitechnologies/weaviate:1.19.0
langgenius/qdrant:v1.7.3
pgvector/pgvector:pg16
tensorchord/pgvecto-rs:pg16-v0.3.0
ghcr.io/chroma-core/chroma:0.5.20
quay.io/oceanbase/oceanbase-ce:4.3.3.0-100000142024101215
container-registry.oracle.com/database/free:latest
quay.io/coreos/etcd:v3.5.5
minio/minio:RELEASE.2023-03-20T20-16-18Z
milvusdb/milvus:v2.5.0-beta
opensearchproject/opensearch:latest
opensearchproject/opensearch-dashboards:latest
myscale/myscaledb:1.6.4
docker.elastic.co/elasticsearch/elasticsearch:8.14.3
docker.elastic.co/kibana/kibana:8.14.3
downloads.unstructured.io/unstructured-io/unstructured-api:latest
安裝部署 on Windows by Docker Compose 【未親測】
Step0 安裝 前置依賴
Docker Desktop
- 安裝 Docker Desktop : Windows端的 Docker 環境支持軟件
- 推薦文獻: [虛擬化/Docker] Docker Desktop 安裝與使用 - 博客園/千千寰宇
- 前置技術知識:Docker
- [Docker] Docker 基礎教程(概念/原理/基礎操作) - 博客園/千千寰宇
- 前置技術知識: Docker Compose
- [Docker] Docker Compose 基礎教程(概念/基礎操作) - 博客園/千千寰宇
Git-Bash (推薦/可選)
- url
- https://git-scm.com
- https://git-scm.com/downloads
Step1 下載Dify源代碼
CMDorGit-Bash: 下載Dify源代碼
git clone https://github.com/langgenius/dify.git
或 wget https://github.com/langgenius/dify.git
或 前往 Github(https://github.com/langgenius/dify) / 官網 人工下載 zip 壓縮包
- 【補充】解壓dify.zip包
cd dify
7z x dify-main.zip
mv dify-main dify
Step2 啟動 Dify
- 進入 dify 源代碼的 docker 目錄,執行一鍵啟動命令:
# cd dify/docker
//打印下 docker compose的版本
# docker compose version
Docker Compose version v2.27.1
# docker compose up -d
安裝部署 on CENTOS 【親測】
Step0 安裝 前置依賴
Docker Desktop
- 安裝 Docker Desktop : Windows端的 Docker 環境支持軟件
- 推薦文獻: [虛擬化/Docker] Docker Desktop 安裝與使用 - 博客園/千千寰宇
- 前置技術知識:Docker
- [Docker] Docker 基礎教程(概念/原理/基礎操作) - 博客園/千千寰宇
- 前置技術知識: Docker Compose
- [Docker] Docker Compose 基礎教程(概念/基礎操作) - 博客園/千千寰宇
[root@node-d opt]# docker compose version
Docker Compose version v2.27.1
[root@node-d opt]# docker --version
Docker version 26.1.4, build 5650f9b
Git-Bash (推薦/可選)
- url
- https://git-scm.com
- https://git-scm.com/downloads
- [Git/SVN] Gitee使用教程 - 博客園/千千寰宇 【推薦/強烈推薦】
- [Git/GitLab] 使用SSH遠程登錄GitLab/GitHub - 博客園/千千寰宇
[root@node-d opt]# git --version
git version 1.8.3.1
# cd /opt
# git config --global user.name "xxxxxxxx"
# git config --global user.email xxxxxxxx@qq.com
# ssh-keygen -t rsa -C "xxxxxxxx@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): id_rsa_github
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in id_rsa_github.
Your public key has been saved in id_rsa_github.pub.
The key fingerprint is:
SHA256:YDWdM+UDxxxxxrZL3uQ7xxxxxxxxDLZo xxxxxxxx@qq.com
The key's randomart image is:
# ls -la
-rw------- 1 root root 1675 Mar 4 01:49 id_rsa_github
-rw-r--r-- 1 root root 399 Mar 4 01:49 id_rsa_github.pub
# cp ./id_rsa_github* ~/.ssh/
即: /root/.ssh
# ls -la ~/.ssh/
# vim ~/.ssh/config
Host github.com
HostName github.com
Port 22
User yy
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
# clip < ~/.ssh/id_rsa.pub
【clip: 拷貝/剪切板命令】
# 配置公鑰(.pub)到 github 的 SSH
url : https://github.com/settings/keys
# 驗證:
ssh -T git@github.com
ssh -v gitee.com -p 443
Step1 下載Dify源代碼
CMDorGit-Bash: 下載Dify源代碼
[root@node-d opt]# cd /opt
[root@node-d opt]# git clone https://github.com/langgenius/dify.git [√]
或 wget https://github.com/langgenius/dify.git
或 前往 Github(https://github.com/langgenius/dify) / 官網 人工下載 zip 壓縮包
[root@node-d opt]# cd dify
[root@node-d dify]# ls -la
total 312
drwxr-xr-x 11 root root 4096 Mar 4 02:11 .
drwxr-xr-x. 9 root root 108 Mar 4 02:11 ..
drwxr-xr-x 22 root root 4096 Mar 4 02:11 api
-rw-r--r-- 1 root root 56 Mar 4 02:11 AUTHORS
-rw-r--r-- 1 root root 9250 Mar 4 02:11 CONTRIBUTING_CN.md
-rw-r--r-- 1 root root 10827 Mar 4 02:11 CONTRIBUTING_DE.md
-rw-r--r-- 1 root root 12605 Mar 4 02:11 CONTRIBUTING_JA.md
-rw-r--r-- 1 root root 9897 Mar 4 02:11 CONTRIBUTING.md
-rw-r--r-- 1 root root 12281 Mar 4 02:11 CONTRIBUTING_VI.md
drwxr-xr-x 3 root root 76 Mar 4 02:11 dev
drwxr-xr-x 2 root root 168 Mar 4 02:11 .devcontainer
drwxr-xr-x 10 root root 4096 Mar 4 02:11 docker
drwxr-xr-x 8 root root 163 Mar 4 02:11 .git
-rw-r--r-- 1 root root 338 Mar 4 02:11 .gitattributes
drwxr-xr-x 7 root root 160 Mar 4 02:11 .github
-rw-r--r-- 1 root root 3279 Mar 4 02:11 .gitignore
drwxr-xr-x 2 root root 89 Mar 4 02:11 images
-rw-r--r-- 1 root root 1879 Mar 4 02:11 LICENSE
-rw-r--r-- 1 root root 1304 Mar 4 02:11 Makefile
-rw-r--r-- 1 root root 16631 Mar 4 02:11 README_AR.md
-rw-r--r-- 1 root root 13488 Mar 4 02:11 README_CN.md
-rw-r--r-- 1 root root 15069 Mar 4 02:11 README_DE.md
-rw-r--r-- 1 root root 15162 Mar 4 02:11 README_ES.md
-rw-r--r-- 1 root root 15345 Mar 4 02:11 README_FR.md
-rw-r--r-- 1 root root 14846 Mar 4 02:11 README_JA.md
-rw-r--r-- 1 root root 13519 Mar 4 02:11 README_KL.md
-rw-r--r-- 1 root root 14279 Mar 4 02:11 README_KR.md
-rw-r--r-- 1 root root 13846 Mar 4 02:11 README.md
-rw-r--r-- 1 root root 14433 Mar 4 02:11 README_PT.md
-rw-r--r-- 1 root root 13615 Mar 4 02:11 README_SI.md
-rw-r--r-- 1 root root 14392 Mar 4 02:11 README_TR.md
-rw-r--r-- 1 root root 15423 Mar 4 02:11 README_VI.md
drwxr-xr-x 5 root root 83 Mar 4 02:11 sdks
drwxr-xr-x 20 root root 4096 Mar 4 02:11 web
- 切換到
1.0.0版本分支
[root@node-d dify]# git checkout 1.0.0
Note: checking out '1.0.0'.
[root@node-d dify]# git status
# HEAD detached at 1.0.0
nothing to commit, working directory clean
Step2 下載鏡像并運行
- 下載鏡像并運行
[root@node-d dify]# cd docker
[root@node-d docker]# docker compose up -d
WARN[0000] The "DB_DATABASE" variable is not set. Defaulting to a blank string.
WARN[0000] The "DB_PASSWORD" variable is not set. Defaulting to a blank string.
WARN[0000] The "DB_USERNAME" variable is not set. Defaulting to a blank string.
...
第1次啟動dify,因為要下載Images,需要等一段時間。
如果需要修改配置,可以參考: https://docs.dify.ai/v/zh-hans/getting-started/install-self-hosted/environments 修改docker-compose.yaml文件。
- 啟動后查看 Docker 的運行進程
docker ps
Step3 訪問
- 啟動成功后訪問 http://127.0.0.1:80
使用指南篇
探索
- 探索
- http://192.168.31.104/explore/apps
推薦
Agent
助手
工作流
工作室 : 聊天助手(CHATFLOW) / Agent / 工作流
創建空白應用 : 聊天助手 / Agent / 文本生成應用 / ChatFlow / 工作流
聊天助手
通過簡單的配置快速搭建一個基于 LLM 的對話機器人。支持切換為 Chatflow 編排。了解更多
Agent
能夠迭代式的規劃推理、自主工具調用,直至完成任務目標的智能助手。了解更多
文本生成應用
通過簡單的配置快速搭建一個面向文本生成類任務的 AI 助手。
Chatflow
基于工作流編排,適用于定義等復雜流程的多輪對話場景,具有記憶功能。了解更多
工作流
基于工作流編排,適用于自動化、批處理等單輪生成類任務的場景。了解更多
從應用模板創建
導入 DSL 文件
應用的管理: 編輯 / 復制 / 導出DSL / 打開 / 刪除
工作流 / Agent / 聊天助手 : 同理
知識庫
知識庫主頁
外部知識庫 API 用于連接到 Dify 之外的知識庫并從中檢索知識。了解如何創建外部知識庫 API
添加外部知識庫
創建知識庫
- 導入已有文本
- 同步自 Notion 內容
- 同步自 Web 網站
知識庫實例管理
文檔管理
文檔列表 / 添加文檔 / 文檔禁用|停用 /
文檔分段管理
召回測試
設置
API
/datasets?category=api
curl --location --request POST 'http://192.168.xxx.xxx/v1/datasets/{dataset_id}/document/create-by-text' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data-raw '{"name": "text","text": "text","indexing_technique": "high_quality","process_rule": {"mode": "automatic"}}'
插件
插件管理主頁
探索 Marketplace
工具
工具
自定義工具
工作流工具
賬戶
設置
模型供應商
系統模型設置
可選的模型列表
/apps?category=chat
以
ollama為例:點擊后,以安裝插件的形式加載到平臺
- 安裝完成后,在【插件】列表中即可見到:
插件類型 = 模型 [√] / 工具 [x] / ...
已安裝的模型列表
添加模型
以 Ollama 為例:
注: ?Ollama是由Meta AI(原Facebook AI Research)開發、開源。
- LLM
- Text Embedding
以 硅基流動 為例:
- 添加模型
此時,即可為【系統模型設置】一一設置所需的模型
成員 : 成員列表 / 添加成員
數據來源 : Notion / 網站(使用 Jina Reader / 使用 Firecrawl)
https://jina.ai
https://firecrawl.dev
API 擴展
API 擴展列表
新增API擴展
語言 / 時區
幫助文檔
- https://docs.dify.ai/zh-hans
路線圖
- https://roadmap.dify.ai/roadmap
Y 推薦資源
[AI/Agent/Framework] 開源 AI Agent 框架與應用終端、應用框架 - 博客園/千千寰宇
Dify
- https://dify.ai
- https://github.com/langgenius/dify
- https://github.com/langgenius/dify/releases/tag/1.0.0 | 2025.02.28
- 架構圖
- 阿里云/計算巢
- Dify 社區版
- Docker 社區版
- https://computenest.console.aliyun.com/service/detail/cn-hangzhou/service-687ce1b56cae49cd9dee/4
Y 推薦文獻
- Dify
- 官網 : https://dify.ai/zh
- 文檔 : https://docs.dify.ai
- github : https://github.com/langgenius/dify
- Dify 延申的第三方生態項目
- https://github.com/svcvit/Awesome-Dify-Workflow
- https://github.com/BannyLon/DifyAIA
X 參考文獻
- dify+ollama構建本地大模型平臺 - Zhihu
https://docs.dify.ai
- 知識庫搭建——Dify+ollama - Zhihu
總結
以上是生活随笔為你收集整理的[AI/GPT/LLOps/AI中台] Dify : 开源AI大模型应用开发平台(Apache 2.0)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于spring boot集成MQTT的
- 下一篇: iOS开发UITableView随笔