动手学Dify:用Dify从0到1做智能体(文末送Dify Agent搭建实体书)


动手学Dify:用Dify从0到1做智能体(文末送Dify Agent搭建实体书)

仅用于站内搜索,没有排版格式,具体信息请跳转上方微信公众号内链接

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

多语言支持:DifySandbox基于Seccomp,这是一个系统层级的解决方案,从而确保了可以支持多种编程语言,目前支持了Python与Nodejs。
系统安全:使用白名单策略,只允许运行特定的系统调用,从而确保不会出现意外的绕过。
文件系统隔离:用户代码将运行在一个独立的隔离的文件系统中。
网络隔离:
DockerCompose:独立网络Sandbox网络,并使用代理容器进行网络访问,确保内网系统的安全,同时提供了灵活的代理配置方案。
K8s:直接使用Egress配置网络隔离策略即可。
这是一本面向零基础、非IT技术背景读者的Agent开发实战指南。本书以Dify为Agent开发平台,采用案例教学的方式手把手教你如何用Dify开发Agent。无须编程,你也可以开发功能丰富的Agent。
本书采用“方法总结—工具操作—项目实战”的结构循序渐进展开介绍,共9章。
本书选取了发票识别与处理、长文档处理、本地知识问答、人才招聘这4个典型的业务场景,用6个典型的项目案例,手把手演示了从需求分析、运行流程、节点设计到运行效果的全链路Agent开发过程,并总结了每个案例的开发经验,为你提供了开发类似功能的Agent的思路。
#留言领取大模型图书#
#学习大模型&讨论Kaggle#
△长按添加竞赛小助手
每天大模型、算法竞赛、干货资讯
与36000+来自竞赛爱好者一起交流~


文章作者: ZejunCao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ZejunCao !
  目录