Dify 基础入门:开源 AI 应用开发平台全面解析
Dify 基础入门:开源 AI 应用开发平台全面解析
前言
在 AI 应用开发领域,如果你关注开源解决方案,Dify 一定是一个绕不开的名字。与扣子这类闭源平台不同,Dify 是一个开源的 LLM 应用开发平台,由 LangGenius 团队开发,在 GitHub 上拥有超过 10 万颗星。它提供了一站式的 AI 应用构建能力——从模型选择、知识库管理、工作流编排到部署发布,全部可以在可视化界面中完成。
更重要的是,Dify 是开源的。这意味着你可以自托管在自己的服务器上,完全掌控数据安全和模型选择,不被任何云厂商锁定。这对于企业用户和对数据隐私有要求的场景来说,是至关重要的优势。
本文从零开始,带你全面认识 Dify 平台的核心概念和基础能力。
为什么选择 Dify?
在聊 Dify 之前,先理解它在 AI 应用开发生态中的定位。
当前 AI 应用开发主要有三种路径:
路径一:纯代码开发。使用 LangChain、LlamaIndex 等框架,从零开始写代码。灵活度最高,但开发成本也最高——你需要处理模型调用、错误处理、状态管理、部署运维等所有细节。
路径二:闭源平台。如扣子、Dify Cloud、Google Vertex AI Agent Builder 等。上手快、功能全,但数据在别人手里,模型选择受限于平台,长期可能面临供应商锁定。
路径三:开源自托管。Dify 正是这条路径上的最佳选择之一。你既获得了平台化开发的效率,又保留了自托管的自由度。Dify 的核心价值可以用一句话概括:在开源的世界里,提供接近闭源平台的开发体验。
Dify 与扣子的定位相似,但哲学不同。扣子追求的是"说清楚需求就行"的极致低门槛,Dify 则在低门槛和灵活性之间寻找平衡——它给你可视化工具,但同时也允许你深入到代码层面做定制。
平台架构:工作空间、应用与资源
理解 Dify,首先要理解它的资源组织方式。
工作空间——顶层资源容器
工作空间(Workspace)是 Dify 中最顶层的资源组织单元。每个资源——应用、知识库、模型配置、插件——都属于一个特定的工作空间。当你创建应用时,它会继承工作空间的模型配置;当你添加团队成员时,他们将根据角色访问工作空间资源。
Dify Cloud 在首次登录时自动创建一个工作空间,你成为所有者并拥有完全权限。自托管版本同样如此。
工作空间的一个关键设计是模型配置的继承关系。你在工作空间级别配置好模型提供商和 API 密钥后,工作空间内的所有应用都可以直接使用这些模型,而不需要每个应用单独配置。这大大减少了重复配置的工作量。
团队管理与权限控制
Dify 的团队管理是围绕工作空间展开的。不同版本支持不同规模的团队:
- 免费版:1 个成员(独立开发)
- 专业版:3 个成员(小型团队)
- 团队版:50 个成员(成长中的公司)
- 社区/企业版:无限成员(自托管)
工作空间角色分为所有者、管理员、编辑器和成员四个级别,每个级别有不同的权限范围。这种细粒度的权限控制对于企业协作开发非常重要。
应用类型:从简单到复杂
Dify 提供了多种应用类型,满足不同复杂度的需求:
工作流(Workflow)
工作流是 Dify 中最核心的应用类型,也是其他所有应用类型的底层引擎。它通过拖拽节点的方式构建处理流程,适合单轮任务——比如生成报告、批量处理数据、内容审核等。
工作流支持两种启动方式:用户输入触发(直接交互或 API 调用)和触发器自动运行(定时任务或第三方事件)。只有用户输入启动的工作流可以发布为独立的 Web 应用或 MCP 服务器。
聊天流程(Chatflow)
Chatflow 是工作流在对话场景中的特殊形态。它在每次对话轮次时都会被触发,除了工作流的全部功能外,还具有三个独有能力:
- 对话变量:在多轮对话中持续存在的变量,可以存储和更新动态信息
- LLM 记忆功能:在 LLM 节点中启用对话历史记忆
- 流式输出:在不同节点以不同方式流式传输文本、图片和文件
传统应用类型
除了工作流和聊天流程,Dify 还保留了三种传统应用类型——聊天机器人、代理和文本生成器。这些类型在底层运行相同的流程引擎,但提供了更简洁的传统界面,适合不需要复杂流程编排的简单场景。
Dify 官方推荐优先使用工作流或聊天流程作为应用类型,因为它们功能更强大且更灵活。
模型管理:自由选择的权利
模型管理是 Dify 的核心能力之一,也是它与闭源平台最大的区别所在。
系统提供商 vs 自定义提供商
Dify 将模型提供商分为两类:
系统提供商由 Dify 管理,无需配置即可使用,通过 Dify 订阅计费。适合快速原型开发,新模型可用时自动更新。
自定义提供商使用你自己的 API 密钥直接访问 OpenAI、Anthropic、Google 等模型服务。你拥有完全控制权,直接向模型提供商付费,通常有更高的速率限制。适合生产环境部署。
这种双轨制设计非常实用——你可以用系统提供商快速验证想法,确认可行后切换到自定义提供商进行生产部署。两者可以同时使用,互不冲突。
多模型支持
Dify 支持几乎所有主流模型提供商:OpenAI、Anthropic、Google、AWS Bedrock、Azure OpenAI、Ollama(本地模型)、Hugging Face 等。对于自托管用户来说,Ollama 集成特别有价值——你可以使用本地部署的开源模型,完全避免数据外泄。
Dify DSL:应用的可移植性
所有 Dify 应用都可以导出为 Dify 自身的 DSL(领域特定语言)YAML 文件。这意味着你可以将应用从一个 Dify 实例迁移到另一个实例,或者与团队分享应用配置。这种可移植性是开源生态的重要优势——你不会被锁定在任何一个托管平台上。
变量系统:连接一切的纽带
变量是 Dify 中连接各个节点的纽带。理解变量类型是掌握 Dify 的基础:
输入变量
在用户输入节点中定义,代表终端用户传入的数据。工作流和聊天流程都支持输入变量,同时还有几个内置的系统变量:
sys.user_id:用户唯一标识sys.app_id:应用唯一标识sys.workflow_id:工作流标识sys.timestamp:每次执行的开始时间
输出变量
每个节点生成一个或多个输出,可以在后续节点中通过变量引用。例如 LLM 节点的输出可以直接传给下一个节点作为输入。
环境变量
环境变量用于存储敏感信息,如 API 密钥、数据库密码等。它与 Dify 应用代码分离,确保在分享应用 DSL 时不会泄露敏感配置。环境变量区分开发环境和生产环境,数据完全隔离。
对话变量(仅限 Chatflow)
对话变量是 Chatflow 独有的特性——在单个对话的多轮交互中持续存在。比如可以维护一个待办事项列表,每一轮对话都可以读取和更新它。通过变量分配器节点更新对话变量的值。
知识库:让 AI 基于事实回答
知识库是 Dify 解决大模型幻觉问题的核心能力。上传文档后,Dify 会自动进行分段、索引,当用户提问时从知识库中检索相关内容,让模型基于检索结果生成回答。
Dify 支持多种文档导入方式:直接上传文件、同步网页内容、集成 Notion 等。知识库是构建企业级 AI 应用的基础——没有知识库的智能体,只能基于训练数据回答问题,无法覆盖企业的私有知识。
插件与工具生态
Dify 通过插件系统连接外部世界。插件可以是模型提供商、外部 API 服务、自定义工具,也可以将其他 Dify 工作流封装为工具。
Dify 的工具分为三种类型:插件工具、自定义工具和工作流工具。插件工具来自 Dify 插件市场,自定义工具允许你定义自己的 API 接口,工作流工具则将已有的工作流封装为可复用的工具节点。
发布与集成
应用构建完成后,Dify 提供了多种发布方式:
- Web 应用:直接发布为独立的网页应用,支持嵌入 iframe
- API 服务:生成 API 凭据,集成到自建应用中
- MCP 服务器:将应用发布为 MCP(Model Context Protocol)服务器,让 Claude、Cursor 等外部 AI 工具可以调用
MCP 服务器的发布是 Dify 近期的重要更新——它让 Dify 构建的应用不再局限于 Dify 平台内部使用,而是可以成为整个 AI 工具生态的一部分。
监控与分析
Dify 提供了完整的监控面板,追踪四个核心指标:对话量、活跃用户、Token 消耗和用户反馈。对话日志记录了每次交互的完整输入输出历史、时间数据和系统元数据,支持用户反馈(点赞/踩)和评论。
这些数据对于持续优化应用至关重要——你可以通过分析对话日志发现哪些场景处理得好、哪些需要改进。
开源部署:真正的数据自主权
对于重视数据安全的企业,Dify 提供了完整的自托管方案。通过 Docker Compose 一键部署,所有数据存储在自己的服务器上。Dify 还提供了 AWS AMI 镜像(Dify Premium),支持自定义品牌和一键部署。
部署配置方面,Dify 支持反向代理、自定义域名、OAuth 登录集成等企业级功能。对于位于 Nginx 后面的单域名部署,系统会自动检测 URL 配置;使用自定义域名或分域名部署时,可以手动配置环境变量。
小结
Dify 的核心优势可以总结为三点:开源自由——数据在自己手里,模型自己选,不会被供应商锁定;开发效率——可视化拖拽构建 AI 应用,从想法到部署的周期极短;生态丰富——支持几乎所有主流模型和丰富的插件市场。
对于想认真做 AI 应用但不想被闭源平台绑定的团队来说,Dify 是当前最成熟的选择之一。它的设计哲学是:给你自由,但不让你从零开始。 你可以在开源的世界里享受接近闭源平台的开发体验,同时保留随时深入定制的能力。
下一步,我们将深入 Dify 的工作流系统,看看如何构建复杂的多步骤 AI 应用。