[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

20250211 : 9.6k fork / 65.2k star

20250305 : 11.3k fork / 77.7k 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 集成到自己的业务逻辑中。

支持的AI模型

  • ollama
  • ollama是一个非常方便的LLM加速/服务化应用,现在大部分人构建私有化大模型应用,模型服务部分几乎用的都是它。
  • 推荐文献
  • 硅基流动
  • OpenAI

  • DeepSeek

  • ...

Dify 背后的公司: 苏州语灵人工智能科技(LangGenius)

  • Dify是‌**苏州语灵人工智能科技(LangGenius)**有限公司‌旗下的产品。

+‌ 成立时间与注册资本‌ :苏州语灵人工智能科技有限公司成立于2023年3月,注册资本为143.63万人民币(经过增资后的数额)。

‌+‌ 经营范围‌:该公司主要经营范围包括第二类增值电信业务、人工智能基础软件开发、人工智能应用软件开发、人工智能行业应用系统集成服务以及软件开发等。

‌+‌ 股东结构‌:该公司的股东包括张路宇苏州语芯创业投资合伙企业 (有限合伙)、宁波梅山保税港区民恒启智投资管理中心 (有限合伙),以及新增的浙江阿里巴巴云计算有限公司苏州元之芯贰期创业投资合伙企业 (有限合伙)。

‌+‌ 产品与服务‌:

  • Dify : 该公司推出的一款开源LLMOps(大语言模型运维)平台,旨在帮助开发者更简单、快捷地创建AI应用。

Dify平台具有简洁易用的界面和强大的功能,在实际应用中获得了用户的一致好评。

此外,Dify还推出了新的主力产品Dify workflow,一个兼顾易用和灵活的开发框架,进一步丰富了其产品线和服务。

  • Ollama
    综上所述,Dify作为苏州语灵人工智能科技有限公司的旗舰产品,在人工智能领域具有广泛的影响力和应用前景。

原理与架构

  • Dify的架构采用分层设计,自上而下可分为四层:数据层、开发层、编排层和基础层

  • 数据层

  • 数据层包含Dataset (数据集)和Prompts (提示词)两个输入源,通过ETL进行数据处理,并由RAG Pipeline实现知识检索增强。这一层确保了数据的质量和模型的回答准确性和可靠性。
  • 开发层
  • 开发层提供Prompts IDEAgent 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 为例:

shell 复制代码
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 环境支持软件

Git-Bash (推荐/可选)

  • url

Step1 下载Dify源代码

  • CMD or Git-Bash: 下载Dify源代码
shell 复制代码
git clone https://github.com/langgenius/dify.git

或 wget https://github.com/langgenius/dify.git

或 前往 Github(https://github.com/langgenius/dify) / 官网 人工下载 zip 压缩包 
  • 【补充】解压dify.zip包
shell 复制代码
cd dify
7z x dify-main.zip
mv dify-main dify

Step2 启动 Dify

  • 进入 dify 源代码的 docker 目录,执行一键启动命令:
shell 复制代码
# 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 环境支持软件
shell 复制代码
[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
shell 复制代码
[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源代码

  • CMD or Git-Bash: 下载Dify源代码
shell 复制代码
[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 下载镜像并运行

  • 下载镜像并运行
shell 复制代码
[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 的运行进程
shell 复制代码
docker ps

Step3 访问

使用指南篇

探索

  • 探索

推荐

Agent

助手

工作流

工作室 : 聊天助手(CHATFLOW) / Agent / 工作流

创建空白应用 : 聊天助手 / Agent / 文本生成应用 / ChatFlow / 工作流

聊天助手

通过简单的配置快速搭建一个基于 LLM 的对话机器人。支持切换为 Chatflow 编排。了解更多

Agent

能够迭代式的规划推理、自主工具调用,直至完成任务目标的智能助手。了解更多

文本生成应用

通过简单的配置快速搭建一个面向文本生成类任务的 AI 助手。

Chatflow

基于工作流编排,适用于定义等复杂流程的多轮对话场景,具有记忆功能。了解更多

工作流

基于工作流编排,适用于自动化、批处理等单轮生成类任务的场景。了解更多

从应用模板创建

导入 DSL 文件

应用的管理: 编辑 / 复制 / 导出DSL / 打开 / 删除

工作流 / Agent / 聊天助手 : 同理

知识库

知识库主页

外部知识库 API 用于连接到 Dify 之外的知识库并从中检索知识。了解如何创建外部知识库 API

添加外部知识库

创建知识库

  • 导入已有文本
  • 同步自 Notion 内容
  • 同步自 Web 网站

知识库实例管理

文档管理

文档列表 / 添加文档 / 文档禁用|停用 /
文档分段管理

召回测试

设置

API

/datasets?category=api

shell 复制代码
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)开发、开源。

  • 添加模型

此时,即可为【系统模型设置】一一设置所需的模型

成员 : 成员列表 / 添加成员

数据来源 : Notion / 网站(使用 Jina Reader / 使用 Firecrawl)

https://jina.ai

https://firecrawl.dev

API 扩展

  • API 扩展列表

  • 新增API扩展

语言 / 时区

帮助文档

路线图

Y 推荐资源

  • Dify 延申的第三方生态项目
  • 阿里云/计算巢
  • Docker 社区版

X 参考文献

https://docs.dify.ai

相关推荐
千千寰宇5 天前
[AI/GPT/Chat2SQL/RAG] VannaAI
ai/aigc/gpt-aiops/ai中台
千千寰宇14 天前
[计算机/硬件/GPU] 显卡
ai/aigc/gpt·计算机组成原理/硬件/半导体
千千寰宇19 天前
[AI/GPT] 硅基流动(SiliconFlow) : AI大模型时代的基础设施
ai/aigc/gpt·ai/aigc/gpt-基础设施
千千寰宇22 天前
[大模型/AI/GPT] Chatbox:大模型可视化终端应用
ai/aigc/gpt
千千寰宇2 个月前
[AI] 基于大模型的AI搜索引擎
ai/aigc/gpt