Dify,这个名字本身就蕴含着“Define(定义)+ Modify(修改)”的理念,它是一款开源的大语言模型(LLM)应用开发平台。
- 官网:dify.ai/zh
- 插件市场:marketplace.dify.ai/?language=z…
- 中文文档:docs.dify.ai/zh-hans/int…
- 官方博客:dify.ai/blog
- 开源地址:github.com/langgenius/…
它将后端即服务(Backend as Service)和 LLMOps 的理念完美融合,旨在为您的团队提供从构思、开发到部署、监控的完整基础设施,帮助您打造能投产并创造真正价值的 Agentic AI 解决方案。
为什么选择Dify?
Dify 的目标非常明确:轻松构建并部署生产级 Agentic AI 解决方案。它提供了一站式能力:
- Agentic 工作流:让AI不仅能“说”,还能“做”,自主完成复杂任务。
- RAG Pipeline:高效整合您的私有知识。
- 丰富的集成:无缝连接各类大模型和工具。
- 可观测性:实时监控应用表现,确保稳定可靠。
Dify 不仅仅是一个开发工具,它更是生产就绪的企业级解决方案:
- 灵活扩展:从容应对不断增长的流量和变化的需求,确保您的AI应用具备可伸缩性。
- 稳定 可靠:提供坚实可靠的基础设施,确保您拥有安心无忧的运营体验。
- 安全保障:具备企业级安全能力,守护您的关键数据资产,满足合规性要求。
在 GitHub 上,Dify 拥有超过103.5K 的 Star,累计下载次数达500万,并且汇聚了800多位开发者共同贡献(截止2025年6月)。Dify 也拥有不断壮大的生态环境。通过其插件市场(Marketplace),您可以在数秒内即时调用任意模型和工具,无需修改源代码。Dify 内置了构建LLM应用所需的关键技术栈,包括大模型的支持、直观的 Prompt 编排界面、高质量的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排,并同时提供了一套易用的界面和 API。 这为开发者节省了许多重复造轮子的时间,使其可以专注在创新和业务需求上。
Dify与LLMOps
DevOps,顾名思义,是“开发”(Dev)与“运维”(Ops)的结合。它不仅仅是一套工具或流程,更是一种文化和实践,旨在通过自动化软件交付过程,来加强软件开发和信息技术运维团队之间的协作。让我们快速回顾一下DevOps的核心实践:
随着大模型开发的范式逐渐普及 “Feature Extraction”(特征提取)这类工作的重要性相对下降,取而代之的是“Data retrieval and serving”(数据检索与服务) ,这直接指向了RAG(检索增强生成) 的重要性。我们不再是为每个任务从零开始提取特征训练模型,而是更多地利用大模型,并通过检索外部知识来增强其能力。
- 优化方式的转变:
-
- 传统MLOps可能更侧重于模型训练和验证的自动化。
- 而LLMOps则更多地聚焦于提示词工程(Prompt Engineering)和检索增强生成(RAG) 的优化。对于绝大多数应用而言,我们无需微调大模型,更不需要从头构建领域大模型。这意味着LLMOps需要提供强大的提示词管理、RAG管道构建和调试工具。
- 数据角色的不同:
-
- 传统MLOps的数据主要用于模型训练。
- LLMOps的数据更多地作为上下文信息,用于RAG检索,以提供个性化、领域化的回答,并需要特别关注数据的集成、结构化和命中率。
- 模型特有挑战:
-
-
LLMs特有的“幻觉”(Hallucination)问题,以及模型对齐(Alignment)的挑战,需要在LLMOps中通过内容审核(Moderation System) 、人类反馈和持续监控来解决。
-
API成本管理:由于大型模型的调用通常是按token计费的,LLMOps需要精确的成本监控和优化策略。
-
复杂交互与Agent编排:LLMOps需要支持更复杂的AI Agent工作流编排,实现从意图识别到多步骤工具调用的完整链条。
-
Dify vs Langchain
LangChain是一个非常强大的开发框架,它为开发者提供了构建大语言模型应用的组件和工具链。而Dify.AI,则是一个更偏向于平台型的产品,它融合了Backend as a Service(后端即服务)和LLMOps的理念。
通过这些对比,我们可以清晰地看到:
-
LangChain是一个为开发者提供高度灵活性和代码控制力的强大框架,适合那些希望从底层开始构建、需要精细控制每个细节的团队。
-
Dify.AI则是一个开箱即用、功能全面、且易于上手的平台。它将LLM应用开发的复杂性进行高度封装和可视化,特别适合那些希望快速构建、部署和运营生产级LLM应用 ,并希望降低开发门槛,让更多非技术人员参与其中的个人、初创企业和中大型企业。
Dify 版本差异
Dify主要提供两大类服务:云服务(Cloud Service)和自托管(Self-Hosted) ,每种方案下又细分为不同的版本和套餐,以满足从个人开发者到大型企业的各种需求。
云服务(Cloud Service)- 便捷高效,即开即用。 Dify的云服务提供了多个层级,让您无需自行部署和维护基础设施,即可快速启动AI应用开发:
- SANDBOX (免费沙盒版):提供核心功能的免费试用,包含200条消息额度,支持多种LLM,1个团队工作区,5个应用和50个知识文档等,非常适合个人开发者或初期探索。
- PROFESSIONAL (专业版):面向独立开发者和小型团队,每月5000条消息额度,支持更多知识文档和数据存储,并提供优先文档处理和日志记录等。
- TEAM (团队版):专为中型团队设计,提供更高的消息额度、知识文档和并发请求限制,是专业版的扩展。
Dify 模块与技术栈
Dify 的后端是整个平台的“大脑”,负责处理核心逻辑和数据流。
- 编程语言与框架:
-
- Python + Flask:Dify 的后端服务主要使用 Python 语言开发,并基于轻量级的 Flask 框架构建了高效的 RESTful API 接口。这种组合使得开发快速而灵活。
- Celery:为了处理数据导入、模型训练等耗时的异步任务,Dify 引入了 Celery,它是一个强大的分布式任务队列管理系统。这极大地提升了复杂工作流的执行效率和系统的响应速度。
- 数据库与存储:
-
-
PostgreSQL:作为核心关系型数据库,PostgreSQL 负责存储 Dify 的应用数据、用户信息以及各种结构化内容,确保数据的可靠性和一致性.
-
Redis:作为内存数据库,Redis 主要用于缓存和会话管理,有效优化了高频访问场景的性能,提升了用户体验。
-
Weaviate:这是 Dify 在 RAG(检索增强生成)管道中的关键组件。Weaviate 是一个向量搜索引擎,它能够高效地存储和检索海量的文本向量,从而为 LLM 提供精准的上下文信息,是 Dify 知识库能力的核心。
-
Dify 应用类型
在 Dify 中,一个“应用”是指基于 GPT 等大语言模型构建的实际场景应用。通过创建应用,你可以将智能 AI 技术应用于特定的需求。它既包含了开发 AI 应用的工程范式,也包含了具体的交付物。
Dify 中提供了五种应用类型:
- 聊天助手:基于 LLM 构建对话式交互的助手
- 文本生成应用:面向文本生成类任务的助手,例如撰写故事、文本分类、翻译等
- Agent:能够分解任务、推理思考、调用工具的对话式智能助手
- 对话流:适用于定义等复杂流程的多轮对话场景,具有记忆功能的应用编排方式
- 工作流:适用于自动化、批处理等单轮生成类任务的场景的应用编排方式
Dify 知识库
开发者可以将企业内部文档、FAQ、规范信息等内容上传至知识库进行结构化处理,供后续 LLM 查询。相比于 AI 大模型内置的静态预训练数据,知识库中的内容能够实时更新,确保 LLM 可以访问到最新的信息,避免因信息过时或遗漏而产生的问题。
- LLM 接收到用户的问题后,将首先基于关键词在知识库内检索内容。知识库将根据关键词,召回相关度排名较高的内容区块,向 LLM 提供关键上下文以辅助其生成更加精准的回答。
- 开发者可以通过此方式确保 LLM 不仅仅依赖于训练数据中的知识,还能够处理来自实时文档和数据库的动态数据,从而提高回答的准确性和相关性。
在 Dify 中,知识库(Knowledge)是一系列文档(Documents)的集合,一个文档内可能包含多组内容分段(Chunks),知识库可以被整体集成至一个应用中作为检索上下文使用。文档可以由开发者或运营人员上传,或由其它数据源同步。
Dify 工具/插件
插件是 Dify 平台的扩展模块,让你可以轻松地接入第三方模型与工具,显著提升应用能力。通过插件系统,你的 AI 应用能够更好地”看”、“听”、“说”、“画”、“计算”、“推理”,并连接外部 API,执行真实世界的操作。
-
工具使用户可以在 Dify 上创建更强大的 AI 应用,如你可以为智能助理型应用(Agent)编排合适的工具,它可以通过任务推理、步骤拆解、调用工具完成复杂任务。
-
方便将你的应用与其他系统或服务连接,与外部环境交互,如代码执行、对专属信息源的访问等。
Dify 沙盒
DifySandbox
是一个轻量、快速、安全的代码运行环境,支持多种编程语言,包括 Python
、Nodejs
等,用户在 Dify Workflow
中使用到的如 Code
节点、Template Transform
节点、LLM
节点的 Jinja2 语法、Tool
节点的 Code Interpreter
等都基于 DifySandbox 运行,它确保了 Dify
可以运行用户代码的前提下整个系统的安全性。
- 多语言支持:
DifySandbox
基于Seccomp
,这是一个系统层级的解决方案,从而确保了可以支持多种编程语言,目前支持了Python
与Nodejs
。 - 系统安全:使用白名单策略,只允许运行特定的系统调用,从而确保不会出现意外的绕过。
- 文件系统隔离:用户代码将运行在一个独立的隔离的文件系统中。
- 网络隔离:
-
- DockerCompose:独立网络 Sandbox 网络,并使用代理容器进行网络访问,确保内网系统的安全,同时提供了灵活的代理配置方案。
- K8s:直接使用
Egress
配置网络隔离策略即可。
原文地址:https://mp.weixin.qq.com/s/adg98yUMDJqILrUIX0cV1g