智能体开发实战(Dify)(微课版)课件 陈康 项目1-4 智慧校园智能体初探 开发环境搭建-智慧校园智能体能力拓展 工具调用实_第1页
智能体开发实战(Dify)(微课版)课件 陈康 项目1-4 智慧校园智能体初探 开发环境搭建-智慧校园智能体能力拓展 工具调用实_第2页
智能体开发实战(Dify)(微课版)课件 陈康 项目1-4 智慧校园智能体初探 开发环境搭建-智慧校园智能体能力拓展 工具调用实_第3页
智能体开发实战(Dify)(微课版)课件 陈康 项目1-4 智慧校园智能体初探 开发环境搭建-智慧校园智能体能力拓展 工具调用实_第4页
智能体开发实战(Dify)(微课版)课件 陈康 项目1-4 智慧校园智能体初探 开发环境搭建-智慧校园智能体能力拓展 工具调用实_第5页
已阅读5页,还剩281页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目一智慧校园智能体初探—开发环境搭建项目背景与目标教学目标技能目标部署Dify智能体开发环境具备智能体开发环境的部署能力。能够独立完成Docker容器环境的安装,并成功部署Dify本地化开发平台,确保服务正常运行构建智慧校园对话应用技巧能够使用低代码平台构建基础应用。熟练操作Dify平台界面,能够创建一个基于大模型的“智慧校园”对话应用掌握提示词的编写与优化技巧。能够运用结构化提示词方法论,编写逻辑清晰、指令明确的提示词具备应用调试与发布能力。能够利用平台的调试工具对应用进行测试,并完成应用的公开发布与分享教学目标知识目标理解智能体的基本概念与演进逻辑,掌握大语言模型(LLM)与智能体(AIAgent)的区别与联系智能体架构与AIAgent组件协同掌握智能体架构的核心要素。能够阐述AIAgent的四大核心组件(大脑、规划、记忆、工具)及其协同工作原理熟悉Dify开发平台的技术特性。认识Dify平台的核心能力,理解对话型、工作流型与智能体型三种应用形态的差异与适用场景理解提示词工程的基本原理。教学目标素养目标培养工程思维规范操作习惯技术赋能创新意识强化数据安全合规意识项目背景智能体技术推动任务执行跨越随着人工智能技术的飞速发展,大语言模型(LLM)已成为推动数字化转型的核心引擎。从通用的文本生成到垂直领域的专业问答,LLM展现了强大的认知与推理能力。然而,在实际的企业应用与行业落地过程中,单纯依赖大模型往往面临着与业务系统脱节、无法处理动态数据以及缺乏执行能力等挑战。为了突破这些局限,智能体(AIAgent)技术应运而生,它通过赋予模型感知、规划、记忆和工具使用能力,实现了从“内容生成”到“任务执行”的跨越。智慧校园AI升级服务效率各类组织机构正面临着从信息化向智能化升级的紧迫需求。以教育场景为例,传统的校园服务系统往往功能分散、交互生硬,师生在获取信息和办理业务时需要跨越多个平台,效率低下。构建基于AIAgent技术的“智慧校园”应用,能够通过自然语言交互,整合校园知识库与业务流程,为师生提供精准、实时的智能服务AI应用开发入门实践依托Dify这一国产开源的大模型应用开发平台,部署与搭建好智能体开发环境,通过构建一个基础的对话式应用,引入智能体开发的核心概念与全流程操作。这不仅是技术入门的必要环节,更是理解现代AI应用架构、掌握提示词工程(PromptEngineering)以及熟悉大模型应用生命周期的关键起点。通过本项目的实践,将为后续开发更复杂的任务型智能体和工作流编排奠定坚实的技术基础。项目目标构建智能体开发环境与应用本项目旨在构建智能体开发的基础运行环境与初步应用能力。通过部署Dify开源平台,搭建本地化开发环境,并基于该平台开发“智慧校园”对话应用,验证环境的可用性与交互逻辑。同时,结合提示词工程实践,完成应用效果的初步调优。项目实施将打通从理论认知到工具操作的关键链路,为后续构建复杂任务型智能体奠定坚实的技术基础项目分析智能体开发工程化路径探索本项目是智能体开发的入门基石,其核心逻辑遵循“环境构建—工具认知—应用实践”的工程化路径。为了达成上述项目目标,我们将整个项目拆解为三个紧密关联的实施阶段Dify平台容器化部署实践首先是基础设施层的搭建。智能体应用的运行依赖于稳定的底层环境。本项目选用Docker容器化技术部署Dify开源平台,这种方式不仅能够屏蔽不同操作系统间的差异,还能让开发者直观理解微服务架构下数据库(Redis/PostgreSQL)、后端服务与前端界面的依赖关系。这一阶段重点解决“在哪做”的问题,为后续开发提供纯净、可控的实验场Dify平台Chat应用验证LLM能力其次是核心能力层的认知。Dify平台集成了从模型接入、知识库管理到工作流编排的全链路能力。在环境就绪后,需要深入理解Chat(对话型)、Workflow(工作流型)与Agent(智能体型)三种应用形态的区别。本项目选择以最基础的Chat形态切入,能够快速验证LLM的推理能力与环境的连通性,解决“用什么做”的问题智慧校园实战优化模型输出最后是业务应用层的实战。仅仅拥有工具是不够的,关键在于如何驾驭工具解决实际问题。本项目选取“智慧校园”这一典型场景,通过编写结构化提示词,定义智能体的角色(如校园向导)、任务(如生活指引)及约束条件。这一阶段将抽象的技术理论转化为可视化的对话效果,重点解决“怎么做”的问题,并初步体验通过迭代提示词来优化模型输出质量的调试过程智能体开发全流程认知建立通过这三个阶段的循序渐进,项目将帮助读者建立起对智能体开发全流程的宏观认知,完成从“使用者”到“开发者”的身份转变知识准备智能体(AIAgent)概述

AI从工具到助手的转变人工智能技术正在经历从“被动工具”向“主动助手”的范式转变。在这一进程中,智能体(AIAgent)作为大语言模型(LLM)能力的延伸与具象化应用,正逐渐成为连接数字世界与物理世界的关键桥梁。智能体(AIAgent)概述:从大语言模型到智能体的进化

国产大模型进展与局限以百度文心一言、阿里通义千问、智谱GLM以及DeepSeek等为代表的国产大语言模型,展现出了惊人的文本生成、逻辑推理和知识检索能力,被视为通向通用人工智能(AGI)的重要基石。然而,仅依靠LLM自身仍存在一定的局限性:模型本质上是一个静态的知识库,缺乏与外部环境交互的通道,无法直接执行操作,且受限于训练截止时间,难以获取实时信息

智能体AIAgent进化论智能体(AIAgent)的概念应运而生。如果将大语言模型比作“大脑”,那么智能体则是为这个大脑配备了“五官”(感知能力)和“四肢”(执行能力)。这种进化体现在以下三个关键维度的跨越

动态交互新模态闭环系统升级从“静态问答”到“动态交互”。传统的LLM交互模式是“用户提问-模型回答”。而Agent能够感知环境变化,主动发起多轮交互,根据反馈不断调整策略,形成“感知-决策-行动-反馈”的闭环系统

从纸上谈兵到知行合一从“纸上谈兵”到“知行合一”。LLM仅能生成文本建议,无法直接改变现实状态。智能体通过集成工具(Tools)接口,具备了调用搜索引擎、执行代码、操作软件API甚至控制硬件设备的能力。例如,大模型可以生成订票攻略,而智能体可以直接完成查询航班、比价、下单支付的全过程智能体(AIAgent)概述:从大语言模型到智能体的进化智能体(AIAgent)概述:从大语言模型到智能体的进化垂类专家超越通用全才从“通用全才”到“垂类专家”。LLM追求通用性,而Agent通过记忆机制(Memory)和规划能力(Planning),能够根据特定领域的业务逻辑和历史上下文,处理复杂的长程任务,展现出更强的专业性和任务完成率智能体LLM核心驱动自主决策执行智能体是以LLM为核心控制器,具备感知、记忆、规划和行动能力的智能系统。它是AI技术从AI内容生成(AIGC)迈向自主决策与执行(AgenticAI)的必然产物智能体(AIAgent)概述:常见的智能体架构与应用场景

常见的智能体架构与应用场景为了实现上述能力,业界涌现出多种智能体设计架构。尽管具体实现各异,但大多数智能体架构都围绕着一个核心公式展开Agent=LLM(大脑)+Planning(规划)+Memory(记忆)+Tools(工具)

主流智能体设计架构智能体的核心运行机制通常遵循“感知(Perception)—规划(Planning)—行动(Action)”的闭环流程。根据任务处理方式的不同,主要分为单智能体架构与多智能体架构智能体(AIAgent)概述:常见的智能体架构与应用场景单智能体架构(Single-AgentArchitecture)单智能体架构由一个核心LLM驱动,依靠自身的推理能力和工具集完成任务。目前最典型的两种模式为ReAct模式与Plan-and-Solve模式ReAct模式是目前较为通用的智能体实现方式之一。其核心思想是将“推理(Reasoning)”与“行动(Acting)”紧密结合。在执行任务时,智能体不会一次性生成所有步骤,而是遵循“思考—执行—观察”的循环。思考(Thought)分析当前状态,决定下一步该做什么。行动(Action)调用工具(如搜索API、计算器)。观察(Observation)获取工具返回的结果(如搜索到的网页内容)。循环(Recycle)根据观察结果,进行新一轮的思考,直到目标达成,这种模式具有极强的纠错能力和环境适应性,特别适合处理需要多步交互和实时信息获取的任务。如图1-2所示展示了ReAct模式工作原理智能体(AIAgent)概述:常见的智能体架构与应用场景智能体(AIAgent)概述:常见的智能体架构与应用场景多智能体架构(Multi-AgentArchitecture)当面对极度复杂的任务时,单个智能体的上下文窗口和推理能力可能遭遇瓶颈。多智能体架构通过引入多个角色各异的智能体,模拟人类团队的协作模式角色协作模式(Role-PlayingCollaboration)系统定义多个具备特定“人设”和“技能”的智能体。例如,在软件开发场景中,配置“产品经理智能体”负责分析需求,“开发工程师智能体”负责编写代码,“测试工程师智能体”负责检查代码。它们遵循预设的标准作业程序(SOP),通过消息传递机制交换信息,共同交付成果。对抗与辩论模式则引入持有不同观点的智能体进行辩论,或者引入“评审员智能体”对“执行者智能体”的输出进行严格质询。通过多轮博弈,过滤掉幻觉和逻辑漏洞,从而输出更高质量的解决方案智能体(AIAgent)概述:常见的智能体架构与应用场景常见的智能体架构与应用场景1.

企业级自动化流程传统的机器人流程自动化(RPA)仅能执行固定的规则脚本。引入智能体后,系统能够理解非结构化数据。例如,财务智能体可以读取不同格式的发票扫描件,理解邮件中的报销说明,自主登录ERP系统完成填单和审批流转,仅在遇到异常时呼叫人工介入。2.智能代码工程在软件开发领域,智能体已从代码补全工具进化为全流程工程师。它们能够自主阅读技术文档、规划项目结构、编写代码、运行测试用例并根据报错信息进行调试。这种“AI程序员”大幅降低了开发门槛,提升了代码生产效率。常见的智能体架构与应用场景3.领域知识问答与决策支持结合检索增强生成(RAG)技术,专业领域的智能体(如法律顾问、医疗助手)能够挂载海量的行业法规或医学文献库。它们不仅能回答咨询,还能依据事实数据生成专业的法律文书或诊疗建议草案,辅助专家进行决策。4.个性化私人助理面向终端用户,智能体充当全能数字管家。它能够跨越App的边界,整合日历、地图、订票软件和邮件系统。例如,用户只需下达“安排下周三去上海出差”的指令,智能体即可自动规划行程、比对机票价格、预订酒店并发送会议邀请,实现“一语成事”。Dify平台基础在智能体开发领域,选择合适的开发框架与平台能够显著提升开发效率与应用质量。Dify是一款由中国团队开发和维护的国产开源大模型应用框架,作为一个开源的大语言模型(LLM)应用开发平台,凭借其可视化的编排能力和完善的后端服务,成为了当前构建AI应用的主流工具之一。Dify的核心能力

模型中立与接入管理Dify屏蔽了底层模型的差异,支持接入全球主流的大语言模型(如GPT、Claude、Llama)以及国产大模型(如通义千问、文心一言、DeepSeek)。开发者可以根据任务需求,在不同模型之间灵活切换,或通过本地部署模型(Ollama、vLLM等)降低推理成本

检索增强生成(RAG)引擎检索增强生成(RAG)是一种将外部知识检索与大模型生成相结合的技术,通过先检索相关资料,再基于检索结果生成回答,从而提升回答的准确性与可靠性Dify内置了完整的RAG流水线,涵盖文本分段、清洗、索引以及向量检索。开发者无需从零构建向量数据库,即可上传文档构建私有知识库,赋予智能体基于特定领域知识回答问题的能力

可视化编排与提示词IDE提供所见即所得的提示词编辑器和流程编排界面。开发者可以通过图形化拖拽的方式定义业务逻辑,调试提示词效果,并实时预览应用表现。

后端即服务(BaaS)自动生成API接口,并提供应用日志管理、标注改进以及持续运营分析功能。这使得开发者能够专注于业务逻辑的设计,而无需过多关注服务器运维与接口封装。Dify技术架构

技术架构从系统架构角度来看,Dify采用模块化设计,主要分为三层基础设施层(InfrastructureLayer):负责底层计算资源的调度与模型的推理接入,包括向量数据库和缓存服务核心引擎层(CoreEngineLayer):这是平台的中枢,包含Agent编排引擎、工作流(Workflow)执行器以及RAG检索管道。该层负责解析用户指令,调度模型进行推理,并管理上下文记忆应用服务层(ApplicationLayer):面向最终用户和开发者,提供Web前端界面、API网关以及插件扩展机制Dify基础对话、工作流与智能体应用形态对比

基础对话、工作流与智能体应用形态对比在Dify平台中,为了适应不同复杂度的业务场景,应用被划分为三种主要形态:基础对话(Chat)、工作流(Workflow)和智能体(Agent)。理解这三者的区别与适用边界,是进行应用选型的关键。基础对话应用基础对话应用是最基础的应用形态,通常用于构建简单的问答机器人或客服助手工作机制:基于“一问一答”的模式,系统接收用户输入,结合预设的提示词(Prompt)和上下文历史,直接调用大模型生成回复特点:结构简单,响应速度快,侧重于语言理解和文本生成适用场景:客户服务问答、文章摘要生成、语言翻译助手等对逻辑推理要求不高的场景工作流应用工作流应用引入了确定性的逻辑编排,将复杂的业务流程拆解为图形化的节点(Node)工作机制:采用有向无环图(DAG)结构。任务的执行路径是预先定义好的,数据在不同的节点(如“大模型节点”“代码执行节点”“条件判断节点”)之间按顺序流转特点:逻辑严密,可控性强,结果具有高度的确定性。它强调的是“流程自动化”而非“自主决策”适用场景:长文本翻译流程(分段、翻译、校对、合并)、自动化内容审核流水线、结构化报告生成等基础对话、工作流与智能体应用形态对比类型定义特点典型应用提示词工程型最基础的形态,主要依赖精心设计的自然语言指令提示词来引导大模型扮演特定角色或执行特定任务。开发门槛低,但逻辑处理能力受限于模型上下文窗口,难以处理复杂、多步骤的业务流角色扮演机器人、文章润色助手、翻译助手等流程编排型将业务逻辑拆解为确定的步骤(节点),通过“工作流”将大模型、代码脚本、API接口串联起来具备极高的确定性和可控性,能够精准执行企业级业务逻辑,减少模型幻觉,是当前行业应用的主流方向客户服务工单流转、合同自动审核系统、数据清洗流水线自主规划型赋予模型自主设定目标、拆解任务、使用工具并自我反思的能力(如AutoGPT模式)灵活性极强,能应对未知问题,但目前稳定性较差,执行路径不可预测,往往陷入死循环,商业落地难度较大开放式市场调研、复杂代码项目构建、创意探索提示词工程提示词(Prompt)是人类与大语言模型(LLM)进行交互的指令语言。提示词工程则是指通过设计、优化和迭代输入文本,引导模型生成更准确、相关且高质量输出的技术过程。在智能体开发中,优秀的提示词设计相当于为AI编写了精确的“岗位说明书”和“操作手册”,直接决定了智能体在特定任务中的表现。经典的提示词框架为了提高模型指令遵循的准确性,业界总结出了一系列通用的提示词编写框架。这些框架通过规范信息的组织形式,帮助开发者明确意图,减少模型的幻觉与歧义。经典的提示词框架ICIO框架ICIO框架侧重于指令的清晰传达,包含4个核心要素Instruction(指令):明确要求模型执行的具体任务Context(背景):提供任务相关的背景信息,帮助模型理解场景InputData(输入数据):告知模型需要处理的具体数据或内容OutputIndicator(输出指引):规定输出的格式、风格或长度限制【Instruction】:请将以下会议记录内容整理成一份正式的会议纪要。【Context】:这是某科技公司关于“智慧校园”项目一期上线的内部沟通会,参会人员包括产品经理、开发组长和测试组长。【InputData】:[此处粘贴原始的语音转文字记录...]【OutputIndicator】:请使用Markdown格式,包含“会议主题”、“决议事项”、“待办任务(需注明负责人)”三个部分,语言风格需简洁干练。提示词工程:经典的提示词框架BROKE框架BROKE框架更强调对任务流程的完整控制,适用于较复杂的任务场景Background(背景):设定模型的角色身份与任务环境Role(角色):进一步强化角色职能及核心目标Objectives(目标):列出需要达成的具体成果指标KeyResults(关键结果):定义必须满足的限制条件(如字数、格式、禁忌词)Examples(示例):提供参考范例(Few-Shot),让模型模仿特定的风格或逻辑【Background】:你是一个资深的Python后端开发工程师,熟悉Flask框架。【Role】:你的任务是编写健壮的API接口代码。【Objectives】:编写一个用户登录接口,接收JSON格式的用户名和密码。【KeyResults】:必须包含异常处理(try-except)。密码必须进行哈希验证,不能明文比对。返回标准HTTP状态码(200成功,401失败)。代码需包含详细注释。【Examples】:输入:{"username":"admin","password":"123"}期望代码风格:@app.route('/login',methods=['POST'])deflogin():#获取数据data=request.get_json()...结构化提示词智能体开发场景下,随着任务复杂度的提升,简单的自然语言描述往往难以支撑复杂的业务逻辑。结构化提示词借鉴了编程语言的思维,利用Markdown语法(如标题、列表、代码块)将提示词模块化、层次化。这种方式不仅便于人类阅读和维护,也能显著提升LLM对指令的解析效率。结构化提示词的核心特征

(1)模块化:将复杂提示词拆解为角色(Role)、简介(Profile)、约束(Constraints)、工作流(Workflow)等独立模块。(2)标签化:使用特定符号(如#、[]、<>)标识不同的信息层级,帮助模型区分指令、数据与注释。(3)标准化:遵循固定的模板格式,便于在团队间复用和迭代。结构化提示词示例#Role:英语学习助手##Profile-Author:智能体开发实战团队-Version:1.0-Language:中文-Description:一个专注于帮助用户记忆英语单词的辅助工具,能够提供词源解析和场景例句。##Goals1.解释用户提供的英语单词含义。2.分析词根词缀,辅助记忆。3.提供3个不同场景的实用例句。##Constraints-解释必须通俗易懂,避免过于学术化。-如果单词有多种含义,仅列出最常用的2种。-输出格式必须严格遵循OutputFormat部分的要求。##Workflow1.接收用户输入的单词。2.判断单词拼写是否正确,若错误则提示修正。3.按顺序输出:中文释义->词源分析->场景例句。##OutputFormat###单词:[单词原型]-**释义**:[中文释义]-**记忆法**:[词根/联想记忆]-**例句**:1.[例句1](中文翻译)2.[例句2](中文翻译)3.[例句3](中文翻译)##Initialization你好,我是你的英语学习助手。请发送你想学习的单词,我将为你提供详细解析。结构化提示词的关键要素

元数据与角色定义这是提示词的“声明区”,用于确立智能体的基本属性。其中,角色(Role)明确智能体的身份设定。大模型在扮演特定专家角色时,能够调用该领域的专业知识库,表现出更高的专业度。简介(Profile)则包含作者、版本号、语言偏好及功能简述。这不仅有助于提示词的版本管理,也能强化模型对自身定位的认知。背景上下文该要素为模型提供任务执行的必要前置信息,类似于函数的“输入参数”。背景上下文主要包括两类,一类是业务背景,描述任务发生的场景,如“用户正在进行商品退货咨询”另一类是知识库引用,如果任务依赖特定的文档或数据,需在此处明确指出,如“请基于提供的《员工手册》回答问题”。结构化提示词的关键要素

约束与规则这是控制模型行为边界的最重要部分,类似于编程中的“条件判断”与“异常处理”。其中否定约束明确禁止模型做的事情,如“严禁编造事实”、“不要输出政治敏感内容”。格式约束规定输出的形态,如“必须以JSON格式返回”、“代码块需包含注释”。思维链与工作流针对复杂任务,直接要求结果往往效果不佳。通过定义工作流,强制模型按照预设的步骤进行推理。步骤拆解将大任务分解为一步一步的执行序列。示例向模型展示“输入-输出”的样本对。大模型具有极强的模仿能力,提供1~3个高质量的示例(也叫做Few-ShotLearning)往往比长篇大论的解释更有效,特别是对于规范输出格式而言项目实施CONTENTS目录01

任务1.1Dify开发环境准备02

任务1.2Dify开发环境部署03

任务1.3给Dify开发环境添加大模型04

任务1.4创建“智慧校园”对话应用任务1.1Dify开发环境准备01任务描述搭建Dify平台开发环境在搭建开发环境与进行应用初探之前,首要任务是搭建一个稳定、高效的基础运行环境。Dify平台采用微服务架构设计,涉及前端Web服务、后端API、任务队列以及各类数据库组件。本任务要求在Windows10或Windows11操作系统上,根据不同系统版本(专业版/家庭版)开启虚拟化支持,部署DockerDesktop容器化管理工具,并获取Dify平台的源代码。最终目标是交付一个具备DockerEngine与DockerCompose运行能力的终端环境。任务分析

DifyDocker部署指南Dify官方推荐使用Docker进行容器化部署。在Windows环境下,DockerDesktop是最主流的解决方案,它依赖于底层的虚拟化技术。不同版本的Windows系统对虚拟化的支持方式略有差异,因此本任务的实施难点在于针对不同系统版本正确开启WSL2(WindowsSubsystemforLinux2)环境。具体有两个层面的问题要解决系统层专业版或企业版支持完整的Hyper-V和WSL功能,配置相对便捷。家庭版或教育版默认隐藏了Hyper-V部分功能,需要通过特定指令或安装WSL2补丁来支持Docker运行应用层:安装DockerDesktop并配置镜像加速,解决网络下载慢的问题DockerDesktopWSL2运行原理如图所示,展示了DockerDesktop如何利用WSL2在Windows上模拟Linux环境来运行容器原理,最底层是WindowsKernel、Hyper-V和WSL2构建的虚拟化层,中间层是轻量级虚拟机(LinuxKernel),最上层是DockerEngine及Dify的各类容器任务实现-硬件与网络要求

在开始部署前,需确保计算机硬件满足以下最低配置要求,以保证Docker及后续Dify服务的流畅运行

设备类型:台式机或笔记本电脑

操作系统:Windows10(64-bit)或Windows11(64-bit)

中央处理器:双核及以上架构(推荐4核以上,需支持虚拟化技术)任务实现-硬件与网络要求

内存:至少4GB(推荐8GB及以上,因为运行大模型应用较耗内存)

磁盘空间:系统盘或安装盘剩余空间不少于16GB

网络连接:具备可访问互联网的网络环境,用于下载安装包及拉取Docker镜像任务实现-开启系统虚拟化支持情况1:Windows10/11专业版(Pro)、企业版(Enterprise)、教育版(Education)启用WindowsHyper-V功能指南专业版、企业版、教育版系统拥有完整的Hyper-V管理功能,配置相对直接。在Windows搜索栏输入“启用或关闭Windows功能”,打开配置窗口。在列表中找到并勾选“Hyper-V”(确保其子项均被勾选)复选框,勾选“容器”复选框。单击“确定”按钮,等待系统应用更改后重启计算机。情况2:Windows10/11家庭版(Home)家庭版默认隐藏了Hyper-V管理器,需依赖WSL2(WindowsSubsystemforLinux2)及其底层虚拟化平台。在任务栏搜索框输入“启用或关闭Windows功能”。勾选以下两项(注意家庭版可能没有Hyper-V选项,无需勾选):“适用于Linux的Windows子系统”、“虚拟机平台”。单击“确定”按钮并重启计算机接着更新WSL2内核,以管理员身份打开PowerShell,执行默认安装命令“wsl--install”,如果系统提示已安装但版本过旧,请运行更新命令“wsl--update”,强制将WSL2设置为默认版本“wsl--set-default-version2”。如果上述命令方式失败,可以手动下载wsl2并安装任务实现-开启系统虚拟化支持任务实现-安装DockerDesktop访问Docker官网下载适用于Windows的DockerDesktop安装程序,这里下载的是最新的AMD64版本。双击下载好的安装包,如果系统支持WSL2,安装过程会弹出“UseWSL2insteadofHyper-V(recommended)”选项,勾选即可。配置Docker镜像加速为了解决拉取镜像超时的问题,需配置镜像加速器。打开“DockerDesktop设置(Settings)”中的“DockerEngine”,在编辑框中添加registry-mirrors配置国内镜像源为“https://docker.m.daocloud.io”,也可以使用其他可用的镜像源。验证Docker安装成功待Docker界面左下角显示绿色的“Enginerunning”时,打开PowerShell输入“dockerrunhello-world”命令验证。任务实现-安装DockerDesktop任务小结

搭建Dify运行环境本任务完成了Dify基础运行环境的搭建。通过在Windows系统中开启WSL2虚拟化支持,我们成功安装了DockerDesktop工具,为后续部署Dify微服务架构奠定了坚实的底层容器化环境基础。任务1.2Dify开发环境部署02任务描述

部署Dify平台本地环境在完成了Docker基础环境的准备后,本任务将进入Dify平台的实际部署阶段。我们将利用已经下载好的Dify源代码,通过DockerCompose容器编排工具,一键拉取并启动包括API服务、Web前端、数据库(如PostgreSQL)、缓存(如Redis)及向量数据库(如Weaviate)在内的所有微服务组件。任务的最终交付标准是,在本地浏览器中成功访问Dify的初始化界面,完成管理员账号的注册,并顺利进入系统主控台任务分析Dify的本地化部署流程本质上是一个“获取源码—配置环境—启动服务—系统初始化”的过程。获取源码:为了确保网络稳定性,从Gitee(码云)官方镜像仓库下载Dify的源代码。环境配置

Dify的运行依赖于一系列环境变量(如数据库密码、API密钥配置等)。源码中提供了.env.example模板文件,我们需要将其复制并重命名为.env,使其生效。服务启动利用dockercomposeup命令,Docker会读取docker-compose.yaml文件,自动从镜像仓库下载所需的镜像,并按依赖顺序启动容器。系统初始化服务启动后,通过Web界面进行首次访问,系统会自动执行数据库迁移(Migration)并引导用户创建超级管理员账户。任务实现-从Gitee获取Dify源代码Gitee下载源码指南鉴于直接访问GitHub可能存在网络阻碍,本项目统一采用国内代码托管平台Gitee(码云)进行源码下载1.准备工作目录在计算机非系统盘(如D盘或E盘)新建一个文件夹,命名为“Dify”,作为项目的工作空间2.获取源代码访问Gitee项目主页,如图所示,单击右侧的“克隆/下载”按钮,选择“下载ZIP”。下载完成后,将压缩包解压至dify-project文件夹中3.验证目录结构双击进入解压后的dify文件夹,确保其中包含名为docker的子目录。该目录存放了后续部署所需的核心编排文件任务实现-从Gitee获取Dify源代码任务实现-配置环境变量DifyDocker部署与配置指南进入Docker部署目录./dify/docker。Dify使用.env文件来管理系统配置,需要基于官方提供的模板生成一份正式配置文件.复制配置文件.env.example为.env。对于初次部署,通常无须修改文件内的默认配置即可直接运行。如果本地80端口被占用,才需要编辑该文件修改EXPOSE_NGINX_PORT参数任务实现-一键启动服务Docker部署Dify服务流程1.进入./dify/docker目录,在终端中输入“dockercomposeup-d”。2.终端会显示下载进度(Pullinglayers)。3.由于Dify包含多个服务组件,镜像总大小约2-3GB,根据网络带宽不同,下载过程可能持续5到20分钟。4.直到所有服务状态均显示为Running或,且命令执行结束返回命令行提示符。切换镜像加速源重试下载如果在上述步骤中下载镜像失败,请检查并修改DockerDesktop中的registry-mirrors配置,以切换至可用的镜像加速源后再重新尝试下载任务实现—一键启动服务任务实现—访问与初始化Dify1.服务启动后,Dify的Web前端默认监听本地的80端口2.打开浏览器推荐使用Chrome或Edge浏览器,在地址栏输入“”3.设置管理员账号首次访问系统时,会自动跳转至初始化设置页面,如图所示。输入常用邮箱(这将作为超级管理员的登录账号),设置一个管理员昵称,设置登录密码(建议包含字母和数字,且长度不少于8位)。填写完成后,单击“设置”进行保存4.Dify账号登录与界面导航账号创建成功后,页面会自动跳转至登录页。输入刚才设置的邮箱和密码,单击“登录”按钮,成功进入Dify的应用主界面(Dashboard),如图所示。界面上方通常包含“探索”“工作室”“知识库”等导航菜单。至此Dify私有化开发环境已成功部署并可以使用任务实现—访问与初始化Dify任务小结本任务实现了Dify平台的本地容器化部署。通过获取源码、配置环境变量,并利用DockerCompose一键启动所需微服务组件,我们顺利完成了系统初始化及管理员注册,使Dify开发工作台全面就绪。任务1.3给Dify开发环境添加大模型03任务描述Dify平台与大语言模型协作机制Dify平台本身是一个应用编排引擎,它类似于一辆跑车的“底盘与车身”,而大语言模型(LLM)则是驱动其运行的“发动机”。在完成私有化部署的Dify环境中,默认可能未配置可用的模型服务。Dify集成通义千问提升中文能力本任务要求为Dify平台接入真实的商业级大模型能力。我们将选用阿里云提供的通义千问大模型,利用其提供的免费额度获取APIKey,并在Dify的模型供应商后台完成配置。任务完成后,Dify平台将具备强大的中文理解与生成能力,能够支持后续对话应用的构建。【任务分析】

Dify的“模型中立”特性使得接入模型的过程标准化且简便。

获取APIKey需要前往阿里云的“百炼”大模型服务平台,注册账号并开通通义千问服务,创建一个用于身份验证的APIKey。这是调用云端模型算力的凭证

配置模型供应商回到Dify的管理界面,找到模型供应商列表中的“通义千问”,将申请到的APIKey填入并保存。系统会自动验证密钥的有效性,并加载可用的模型列表。任务实现-申请阿里云通义千问APIKey1.通义千问提供免费API资源通义千问是当前中文能力表现突出的⼤模型之一,并为新用户提供一定额度的免费API调用资源,十分适合用于教学实战。在本教材编写期间,阿里云百炼平台向新用户提供为期90天的免费通义千问API调用额度,读者亦可根据实际需求选择其他提供免费服务的大模型平台2.登录阿里云百炼平台打开浏览器,访问阿里云百炼平台。使用支付宝或阿里云账号登录3.创建APIKey在控制台左侧菜单栏,单击“密钥管理”,单击“创建API-KEY”按钮4.保存sk开头密钥系统会生成一个以sk-开头的长字符串。请立即复制并保存这串字符,因为出于安全考虑,密钥在关闭弹窗后通常无法再次查看完整内容任务实现-申请阿里云通义千问APIKey任务实现-在Dify中配置模型供应商拿到APIKey后,就可以在Dify中配置通义千问的模型供应商1.进入模型设置登录本地部署的Dify平台(),单击页面右上角的个人头像(或账户名称),在下拉菜单中选择“设置”选项2.选择模型供应商在设置页面的左侧导航栏中,单击“模型供应商”选项。会看到包含通义、文心一言、深度求索等在内的众多供应商图标3.添加通义千问在列表中向下滚动,找到“通义”的图标,并单击“安装”按钮,等待插件安装成功4.配置APIKey“通义”插件安装成功后,会出现在模型列表中,单击通义图标右侧的“设置”按钮,APIKey输入框中填入刚申请的通义千问APIKey,并保存任务实现-在Dify中配置模型供应商任务实现-验证模型可用性1.查看可用模型列表在设置好供应商后,Dify会自动拉取该账号下可用的模型列表。可以看到如qwen-turbo、qwen-plus、qwen-max等不同规格的模型选项。2.系统默认模型设置为了方便后续使用,建议在“模型供应商”页面的顶部“系统模型设置”区域,将系统推理模型设置为qwen-plus,其他配置根据需要设置。这样在创建新应用时,系统会自动默认选用该模型,无须每次手动切换。3.Dify环境装配大模型成功至此Dify开发环境已成功装配了大模型,具备了处理自然语言任务的能力。接下来,就可以开始构建真正的智能体应用了任务实现-验证模型可用性任务小结本任务为Dify平台成功接入了真实的商业大模型算力。通过获取阿里云通义千问APIKey并在Dify后台完成供应商绑定,我们为平台装载了核心“发动机”,使其具备了强大的自然语言理解与生成能力任务1.4创建“智慧校园”对话应用04任务描述创建智慧校园助手应用将技术转化为业务价值,本任务要求在Dify平台中创建一个名为“智慧校园助手”的基础对话应用校园向导应用开发流程该应用的主要功能是模拟一位热情的校园向导,能够根据用户的提问,回答关于校园导览、课程查询、食堂推荐等基础问题。任务的具体内容包括:应用的创建与命名、角色设定与提示词编写、应用的调试与优化,以及最终的发布操作。通过本任务,将初步掌握基于Dify的智能体开发的完整闭环流程任务分析创建一个对话应用,本质上是定义AI模型的“人设”与“行为规范”。在Dify平台中,这一过程可以拆解为以下3个关键步骤1.应用脚手架搭建选择正确的应用类型。由于我们的目标是进行自然语言问答,因此应选择“聊天助手”类型。2.智慧校园助手提示词编写指南提示词工程是赋予AI智能的核心环节。我们需要为“智慧校园助手”编写一段结构化的提示词,明确它的身份(校园向导)、目标(服务师生)、语言风格(热情亲切)以及回复的约束条件(不回答校园无关问题)。3.调试与发布在正式发布前,需要在预览窗口进行多轮对话测试,观察模型是否执行了提示词的指令。确认无误后,将应用发布为可公开访问的Web链接。任务实现—创建新应用1.进入工作室登录Dify平台,点击顶部导航栏的“工作室”选项卡2.创建空白应用单击页面上的“创建空白应用”卡片3.填写应用信息在弹出的对话框中进行配置,应用类型选择“聊天助手”,应用名称输入“智慧校园助手”,描述输入“为师生提供校园导览、生活指引服务的智能助手”,图标可以点击默认图标,上传一张学校Logo或选择一个代表“教育”的图标。确认创建单击“创建”按钮,系统将自动跳转至应用的编排界面任务实现—创建新应用任务实现—设计与编写提示词1.编排界面操作指南进入编排界面后,左侧为“配置区”,右侧为“预览与调试区”。需要在左侧的“提示词”区域定义智能体的行为。2.选择模型在右上角的模型选择器中,选择系统默认配置的模型qwq-plus。3.编写结构化提示词将提示词内容复制并粘贴到“提示词”输入框中,这是一段智慧校园助手结构化提示词。#角色智慧校园金牌向导##简介-身份:拥有十年经验的校园生活顾问,熟悉学校的每一草一木。-语言风格:热情、亲切、充满活力,喜欢使用Emoji表情。-目标用户:在校学生、教职工及访客。##技能1.能够准确介绍校园地标建筑(如图书馆、体育馆、行政楼)的位置与开放时间。2.熟悉学校食堂的特色菜品与就餐高峰期。3.了解教务处的常用办事流程。##限制1.必须始终保持礼貌,以“同学”或“老师”称呼用户。2.如果用户的问题与校园生活无关(如询问娱乐明星八卦),请礼貌拒绝回答:“抱歉,作为校园向导,我只关注校园内的事情哦~”。3.回复尽量简短精炼,避免长篇大论。##初始化开场白:嗨!我是你的智慧校园向导。想知道图书馆几点闭馆?还是想找最好吃的红烧肉?快来问我吧!任务实现-调试与测试在发布之前,必须验证智能体是否理解了指令。在右侧的“预览与调试”窗口底部输入框中,输入测试问题“你好,你是谁?”,确认智能体是否能正常回复,如果智能体正常回复了,表示创建成功了。任务实现—发布应用确认调试效果满意后,即可将应用上线1.发布设置单击页面右上角的“发布”按钮,在下拉菜单中选择“发布更新”。这会将当前的配置保存为生产版本2.运行应用再次单击“发布”按钮,选择“运行”。系统会打开一个新的浏览器标签页,展示最终用户视角的对话界面3.分享链接在运行界面,复制浏览器地址栏的URL。可以将这个链接发送给同学或在手机上打开,可以体验完整的交互流程任务实现—发布应用【任务小结】智慧校园助手开发完成智慧校园助手开发完成本任务完成了“智慧校园助手”的开发。我们运用结构化提示词明确了AI的角色定位与行为边界,经过多轮对话测试与调优后,最终成功发布了Web应用链接,初步掌握了基于Dify的智能体开发完整闭环流程THEEND谢谢项目二智慧校园智能体意图识别—工作流设计项目背景与目标教学目标技能目标能够使用Dify平台搭建包含起始、大模型及结束节点的最小化工作流原型能够编写特定的提示词策略,引导大模型输出标准的JSON结构化数据,并进行格式校验能够运用条件分支或问题分类器节点,设计并实现“意图识别”路由逻辑,有效区分教务咨询与生活咨询等不同业务场景能够利用调试与日志工具分析工作流的运行轨迹,快速定位变量传递错误或节点执行异常,并进行修复教学目标知识目标理解Dify工作流的运行机制,明确其与基础对话在逻辑控制上的本质区别。掌握工作流核心节点(如LLM、代码执行、条件分支)的功能定义、参数配置规范及适用场景。理解变量在工作流中的生命周期与传递逻辑,区分全局变量与节点输出变量的作用域。熟悉结构化输出的原理,掌握异常处理机制在保障智能体稳定性方面的关键作用。教学目标素养目标培养逻辑严密的工程思维,能够将复杂的非结构化业务需求拆解为可视化的、确定性的流程步骤。树立系统稳定性的质量意识,在设计过程中主动预判潜在错误并预设异常处理方案,打造健壮的智能系统。强化技术赋能教育的服务意识,通过构建“智慧校园”应用场景,深刻理解人工智能技术在提升校园管理效率与服务质量中的实践价值。项目背景智慧校园助手提升问答能力在实际的校园服务场景中,用户需求具有高度的多样性与复杂性。学生查询“本学期期末考试安排”属于教务系统的精确数据检索,而询问“北区食堂有哪些特色菜”则属于生活服务类的非结构化信息咨询。提升智能体业务处理能力为了提升智能体的业务处理能力与响应准确率,必须引入“意图识别”机制,即让智能体首先理解用户的核心意图Dify平台提供的工作流(Workflow)编排功能,通过将业务逻辑拆解为可视化的节点与分支为构建这种高确定性、逻辑严密的智能应用提供了技术支撑。项目目标环境与工具掌握熟练掌握Dify工作流编排界面的操作理解并能运用“开始”“LLM”“条件分支”“结束”等核心节点构建自动化业务流程核心能力构建利用提示词工程引导大模型输出标准的JSON结构化数据解决模型输出格式不稳定的技术难题实现对用户意图的程序化解析业务逻辑实现设计并部署一套完整的路由机制能够自动区分“教务咨询”与“生活咨询”两类典型场景分别引导至不同的回复策略,显著提升智能体在垂直领域的专业度与可用性项目分析智能体开发理性逻辑转折点本项目是智能体开发从“感性对话”迈向“理性逻辑”的关键转折点。相较于基础对话应用,工作流设计要求开发者具备更严谨的工程思维。项目实施的逻辑架构可划分为“输入标准化”“意图分类”与“差异化响应”三个核心环节技术范式转变传统的对话应用依赖模型自身的概率预测生成回复,而工作流应用则强调“控制权”。通过引入节点(Node)与变量(Variable),将黑盒的模型推理过程转化为白盒的步骤控制,确保业务流程的确定性核心难点攻关系统需通过精心设计的提示词,强制LLM摒弃发散性的聊天模式,转而扮演“分类器”的角色,将用户复杂的自然语言映射为预定义的分类标签。为了让后续的程序节点(如条件分支)能够准确读取分类结果,必须强制模型输出机器可读的JSON格式,而非模糊的自然语言描述。这需要结合Dify的“JSON模式”或提示词约束来实现。系统利用条件分支节点,根据意图分类的结果,构建并行的处理链路实施路径规划为了降低学习曲线,项目将按照“由简入繁”的策略推进。首先搭建一个最小化的线性工作流,打通节点间的变量传递链路;随后聚焦于JSON结构化输出的技术攻坚;最后综合运用上述技术,构建具备完整路由逻辑的智慧校园意图识别系统。这一过程不仅是对工具的训练,更是对计算思维与系统设计能力的综合锻炼知识准备2.1

工作流基本概念Dify升级工作流提升智能体开发效率在智能体开发领域,工作流(Workflow)是指将复杂的业务逻辑拆解为一系列可执行的步骤,并通过有向无环图(DAG)的形式进行编排的技术范式。Dify平台的工作流引擎将应用执行逻辑从传统的“对话流(Chatflow)”升级为“任务流(Workflow)”,允许开发者通过可视化界面,将大语言模型(LLM)、代码执行、条件判断等功能模块组合成自动化的处理链路。这种模式不仅显著降低了应用开发的复杂度,还通过标准化的节点与可追踪的变量机制,大幅提升了智能体系统的可维护性与容错能力2.1工作流基本概念:节点节点是构成工作流的基本单元,代表了工作流执行过程中的一个独立步骤。在Dify的工作流画布中,节点并非孤立存在,而是通过连接线(Edge)构建起逻辑上的先后依赖关系。2.1工作流基本概念:节点一、基础控制节点1.开始节点流程的起始点,用于定义应用启动时所需的初始参数。所有工作流必须包含且仅能包含一个开始节点。它接收用户输入(如文本、图片)及预设变量,是后续数据流的源头2.结束节点流程的终点,用于定义最终返回给用户的输出内容。一个工作流可以包含多个结束节点,以应对不同分支的输出需求。当流程运行至任一结束节点时,即标志着本次任务执行完毕3.回复节点在工作流程中,可以灵活定义对话的回复内容。回复格式可在文本编辑器中自由配置,既可以设置固定的文本内容,也可以引用前置步骤中产生的输出变量,或将自定义文本与变量进行组合后作为最终回复。同时,流程中可按需加入输出节点,将内容以流式方式推送至对话界面,支持所见即所得的配置模式,并能够实现图文混排效果。例如,可直接输出大语言模型(LLM)节点生成的回复内容、输出生成的图片,或仅输出纯文本信息,以满足不同场景下的交互需求2.1工作流基本概念:节点4.变量赋值节点在对话流程中,可将上下文信息、用户上传的文件内容以及用户输入的偏好设置等数据,通过变量赋值节点写入会话变量,作为后续对话的重要参考信息。5.变量聚合节点变量赋值器节点通过写入会话变量来管理对话流应用中的持久化数据。与每次执行都会重置的常规工作流变量不同,会话变量在整个聊天会话期间持续存在。6.参数提取器节点参数提取器节点使用大型语言模型智能将非结构化文本转换为结构化数据。它弥合了自然语言输入与工具、API和其他工作流节点所需的结构化参数之间的差距。7.模板转换节点模板转换节点使用Jinja2模板语法将来自多个来源的数据转换和格式化为结构化文本。使用它来组合变量、格式化输出,并为下游节点或最终用户准备数据。2.1工作流基本概念:节点二、核心处理节点1.大语言模型(LLM)节点工作流的“大脑”,用于调用大模型能力进行文本生成、意图理解或内容总结。开发者需在此节点配置提示词、选择模型参数,并定义输入变量2.代码执行节点工作流的“计算器”,支持Python或JavaScript代码片段的即时运行。该节点常用于数据格式转换(如JSON解析)、数学计算或自定义的逻辑判断,弥补了大模型在精确计算与逻辑控制方面的短板3.知识检索节点通过向量相似度匹配,从预置知识库中检索相关文本片段,为LLM节点提供准确的上下文背景,是构建检索增强生成(RAG)应用的关键组件4.工具节点调用Dify平台内置的第三方工具插件(如百度AI搜索、天气查询、数学工具等)。工具节点赋予了智能体“手”和“眼”的能力,使其能够获取实时信息或执行外部操作。5.HTTP请求节点用于与外部系统进行数据交互的通用接口节点。支持发送GET、POST、PUT等标准的HTTP请求,可以轻松对接企业内部的教务系统、CRM或其他第三方API服务,实现数据的查询与回写。2.1工作流基本概念:节点三、逻辑分支节点1.条件分支节点类似于编程语言中的if-else语句,根据设定的条件(如某变量是否包含特定关键词)将流程分流至不同的路径2.问题分类节点一种专用的AI分支节点,利用LLM的语义理解能力,自动将用户输入分类(如“售后咨询”还是“技术支持”),并路由至对应的下游链路3.循环节点循环(Loop)节点用于执行依赖前一轮执行结果的重复性任务,直到满足预设的退出条件或达到最大循环次数为止。该节点主要包含循环终止条件、最大循环次数和循环变量三项关键配置,并配合循环体内的子节点共同完成控制逻辑。4.迭代节点迭代节点通过对每个元素按顺序或并行运行相同的工作流步骤来处理数组。用于批处理任务,这些任务若作为单一操作会遇到限制或效率低下的问题。该节点接收数组输入并创建一个子工作流,对每个数组元素运行一次。在每次迭代期间,当前项目及其索引可作为内部节点可以引用的变量2.1工作流基本概念:变量变量是工作流中数据流动的载体,连接了各个独立的节点。在Dify的架构中,每个节点的执行结果都会被封装为变量,供下游节点读取和使用。理解变量的引用规则是构建复杂工作流的基础。工作流中的变量传递遵循“上游向下游流动”的原则。在任意节点的输入配置框中,开发者可以通过输入“{”符号或单击变量选择图标,唤起变量选择器。选择器中会列出当前节点之前所有已执行节点输出的可用变量。变量是用于存储信息的标记性容器,可通过变量名称对其所保存的信息进行引用与使用。在构建Dify应用的过程中,会涉及4种不同类型的变量,用于支撑应用的数据流转与逻辑控制2.1工作流基本概念:变量1.用户输入变量用户变量源自终端用户的直接输入,是智能体应用获取外部信息的首要入口。这类变量通常在工作流的“开始”节点中进行定义用户输入变量数据类型支持文本、段落、下拉选项、数字、复选框、单文件与文件列表7种格式。此外变量值的最大长度为255个字符,可设置默认值,并支持配置是否为必填项或是否对用户隐藏命名规范:变量键值(Key)仅支持英文字母、数字和下划线组合,且建议采用具有语义的命名方式(如student_id或query_content)2.1工作流基本概念:变量2.1工作流基本概念:变量2.系统变量系统变量是由Dify平台预置的全局只读参数,用于记录应用运行时的元数据。它们无需开发者手动定义,可在绝大多数节点中直接引用,统一以“sys.”作为前缀标识。根据应用编排模式的不同,系统变量的集合略有差异2.1工作流基本概念:变量会话变量会话变量是对话工作流模式下特有的变量类型。由于工作流模式通常处理一次性的线性任务,而对话流模式需要处理多轮交互,因此需要一种能够跨越多个对话轮次持久存储信息的机制。会话变量相当于大模型的“外挂记忆库”。它允许开发者在某一轮对话中将特定信息(如用户的姓名、偏好设置、历史上下文)写入变量,并在后续的所有对话轮次中随时读取。支持字符串、数值、对象(Object)以及对应的数组类型(如字符串数组Array[string])。会话变量在各节点中通过选择器全局引用,必须使用专门的“变量赋值(VariableAssigner)”节点进行修改,如图2-8所示会话变量配置例如,在智慧校园助手中可以这样处理,第一轮对话获取了用户的“校区”信息(如“北校区”),将其存储为会话变量“campus_location”。在后续查询“食堂位置”时,系统无需再次询问,可直接读取该变量,精准推荐北校区的食堂3.环境变量环境变量主要用于存储应用运行所需的静态配置信息,特别是涉及安全敏感的数据。它们被存储在工作流的配置层而非代码逻辑中,实现了配置与代码的分离。支持三种数据类型:字符串(String)、数字(Number)和密钥(Secret)。环境变量可在大部分节点内全局引用,命名不可重复,只读变量。2.1工作流基本概念:变量4.会话变量会话变量是对话工作流模式下特有的变量类型。由于工作流模式通常处理一次性的线性任务,而对话流模式需要处理多轮交互,因此需要一种能够跨越多个对话轮次持久存储信息的机制。会话变量相当于大模型的“外挂记忆库”。它允许开发者在某一轮对话中将特定信息(如用户的姓名、偏好设置、历史上下文)写入变量,并在后续的所有对话轮次中随时读取。支持字符串、数值、对象(Object)以及对应的数组类型(如字符串数组Array[string])。会话变量在各节点中通过选择器全局引用,必须使用专门的“变量赋值(VariableAssigner)”节点进行修改2.2编排节点节点编排决定工作流效率在Dify工作流中,节点的单纯堆砌无法构成具备业务价值的应用。通过连接线定义节点之间的执行顺序与数据流向,这一过程称为“节点编排”。编排决定了工作流的拓扑结构,直接影响智能体的执行效率与逻辑复杂度。根据业务逻辑的依赖关系,编排设计主要分为串行与并行两种基本模式。2.2编排节点:串行设计串行设计是最基础且应用最广泛的编排模式,其核心特征是“单线程线性执行”。在此模式下,节点之间形成严格的前后继关系,下游节点的启动必须等待上游节点完全执行完毕。数据流严格沿着连接线方向传递,每一个环节的输出不仅是下一个环节的触发信号,通常也是其必要的输入参数。例如,必须先执行“知识库检索”节点获取相关文档,随后的“LLM”节点才能基于检索结果生成回答。适用场景:

数据预处理、多步推理、内容转换2.2

编排节点:串行设计串行模式的局限性在于执行耗时等于所有节点耗时之和。若工作流中存在耗时较长的节点,如复杂的网络搜索或高精度模型推理,会导致整个工作流的响应延迟显著增加2.2编排节点:并行设计并行设计(ParallelDesign)是指在工作流中构建多条同时执行的分支路径,其核心特征是“异步并发”。在此模式下,一个上游节点可以同时连接多个下游节点,当上游节点执行完毕后,所有连接的下游分支将同时被触发并行结构呈现为树状发散形态(A→B且A→C)。在Dify平台中,只需从单一节点的输出端口引出多条连接线指向不同的节点,即可实现并行编排。系统底层会调度资源并发处理这些分支任务,而不需要像传统编程那样编写复杂的多线程代码并行分支通常需要在后续某个节点进行汇合,以整合处理结果。例如节点B和节点C并行执行后,其结果同时作为节点D的输入。此时节点D充当了“聚合器”的角色,它必须等待所有上游分支(B和C)全部执行完毕后才会启动2.2

编排节点:并行设计适用场景多源信息检索同时调用搜索引擎工具和内部知识库,分别获取互联网信息与企业私有数据,最后汇总给LLM进行综合回答多视角评估将同一个问题同时发送给两个不同配置的LLM(如一个侧重创意,一个侧重严谨),然后引入第三个LLM对两个结果进行评分或融合独立任务处理在生成回答的同时,并行触发一个异步通知(如发送邮件或记录日志),确保用户无需等待后台任务完成即可收到回复图2-10展示了一个基本的并行工作流,由“开始”“LLM1”“LLM2”“输出”三个节点组成的并行工作流2.2编排节点:并行设计结构化输出1.Dify支持JSON结构化输出作为LLM工具链平台,Dify支持JSON结构化输出功能。结构化输出功能可以确保LLM返回的数据格式可用、稳定、可预测,减少错误处理和格式转换的工作。结构化输出三大优势:1.保持数据格式一致2.简化后续处理流程3.提升开发体验稳定可控。结构化输出:结构化输出用法2.使用LLM节点中的JSONSchema编辑器LLM节点中的JSONSchema编辑器能够定义LLM返回的数据结构,确保输出可解析、可复用、可控。作为节点级能力,JSONSchema适用于所有模型的结构化输出定义和约束。原生支持结构化输出的模型可直接使用JSONSchema定义结构化变量。不支持结构化输出的模型:系统会将JSONSchema以提示词方式输入,可以尝试引导模型按结构生成内容,但这并不保证一定可以正确解析输出,这时候就需要用到前面介绍的提示词约束。下面将简要介绍如何在Dify开启并使用JSONSchema功能。异常处理异常处理提升工作流稳健性工作流应用通常由多个节点组成。当某一节点发生异常(例如,API请求异常或LLM输出异常)时,可能导致整个流程的失败。这种情况迫使应用开发者花费大量精力排查和修复故障,尤其在复杂工作流中尤为困难。异常处理机制通过提供多样化的节点错误处理策略,能够在局部节点发生错误时抛出故障信息而不中断主流程。可以设置在出现异常时重新执行节点,或通过备用路径继续任务。为关键节点添加异常处理机制,将显著增强应用的灵活性与稳健性简化工作流设计复杂度开发者无须在节点内编排复杂的逻辑代码或额外的节点应对错误情况,异常处理机制将简化工作流的设计复杂度,以多样的预设策略编排工作流的执行逻辑异常处理类型系统提供以下三种预定义的异常处理逻辑选项。无:不处理异常,直接抛出节点报错信息并中断整体流程。默认值:允许开发者预定义异常信息,发生异常时使用预设的值替代节点内置的异常输出。异常分支:发生异常后,执行预先编排的异常分支。处理逻辑:无节点异常处理机制的默认选项。如果当前节点的运行状态超时或遇到错误,则直接抛出节点内置的报错信息,中断所有流程,工作流应用记录为运行失败。处理逻辑:默认值开发者可以通过默认值编辑器自定义节点的报错输出信息,类似于编程中的单步调试方法,从而为应用的调试过程提供更加清晰的说明。处理逻辑:异常分支当前节点运行出现异常时,将触发预设的下游分支。选择该处理逻辑后,系统会为当前节点提供新的连线接口,开发者可在画布中继续编排后续的运行流程,或通过节点详情右下角添加下游节点。项目实施CONTENTS目录任务2.1搭建最小化回声工作流任务2.2实现JSON结构化输出与校验任务2.3构建“区分教务与生活”的路由工作流任务2.4引入异常处理任务2.1搭建最小化回声工作流01任务描述基础Echo工作流构建指南在正式构建复杂的业务逻辑之前,掌握Dify工作流编排器的基础操作是至关重要的第一步。本任务要求创建一个最基础的“回声(Echo)”工作流应用。该应用的功能极其简单,它接收用户输入的一段文本,将其传递给大语言模型(LLM),模型在接收到文本后,不进行任何复杂的推理或加工,只是简单地以“收到,你说的是:[用户内容]”的格式将内容原样返回工作流原型开发指南尽管功能简单,但本任务涵盖了工作流开发的完整闭环,包括应用的创建、核心节点的拖拽与连接、变量的定义与引用、以及调试运行。完成本任务后,将获得一个可运行的工作流原型,为后续的任务拓展奠定基础任务分析搭建数据管道流程解析从技术实现的角度来看,搭建这个最小化工作流实际上是在打通一条数据的“管道”。整个过程可以拆解为以下三个关键环节定义输入在工作流的起点(开始节点),需要开设一个“入口”,允许外部数据进入系统。这通常通过定义一个名为“query”或“input_text”的全局输入变量来实现变量传递与处理这是工作流的核心,需要放置一个LLM节点,并解决“数据怎么传过来”的问题。在Dify中,这涉及变量引用的操作。即在LLM的提示词编辑器中,抓取上游开始节点传递过来的变量,将其嵌入到提示词模板中任务分析工作流终点展示LLM文本结果在工作流的终点,我们需要指定“给用户看什么”。这同样需要引用上游LLM节点生成的文本结果,将其作为最终响应返回给前端界面。智慧校园助手技术选型分析在启动开发之前,需明确应用类型选择的技术依据。项目一构建的“智慧校园助手”属于“聊天助手(Chatbot)”类型,其核心逻辑依赖单一的提示词与上下文记忆,适用于开放式、非结构化的对话场景。本项目旨在构建具备精准意图识别与业务分流能力的系统,这种具备高度确定性的逻辑编排需求,必须依赖“工作流(Workflow)”类型的底层架构任务实现创建工作流应用(1)登录工作室进入Dify平台主界面,单击顶部导航栏的“工作室(Studio)”。(2)新建应用单击“创建空白应用”卡片,在弹出的对话框中,应用类型选择“工作流(Workflow)”,应用名称填写“任务2.1-回声测试”,描述填写“最基础的线性工作流,用于验证变量传递机制”,单击“创建”按钮,系统将自动跳转至工作流编排画布。任务实现2.配置开始节点(1)选中节点单击画布上的“开始”节点,右侧会弹出配置面板。(2)定义输入变量在“输入字段”区域,系统通常默认保留了一个输入项为“userinput.files”,单击右侧“+”再添加一个字段。变量名设置为“input_text”(注意仅支持英文),类型选择“段落”,勾选“必填”,显示名称填写“用户输入内容”,最大长度设置成200。任务实现3.添加并配置LLM(大模型)节点(1)添加节点在开始节点右侧的连接桩(加号图标)上单击,或者单击画布左上角的“+”号,在弹出的菜单中选择“LLM”节点。(2)连接节点如果节点未自动连接,请按住开始节点右侧的圆点,拖拽出一条连接线,连接到LLM节点的左侧输入点。(3)配置LLM参数选中LLM节点,在右侧面板中选择已配置好的模型,如通义千问的“qwq-plus”,上下文暂时留空,在SYSTEM(系统提示词)输入框中输入提示词内容。(4)配置输出节点(5)调试与运行任务2.2

实现JSON结构化输出与校验02任务描述大模型输出标准数据格式验证在任务2.1中,通过“回声”工作流验证了基础工作流数据流转机制。然而在实际的业务分发场景中,仅仅获取大模型生成的自然语言文本是远远不够的。为了实现后续的自动化路由场景,要求大模型输出机器可读的标准数据格式。升级LLM为意图分类器本任务旨在改造原有的LLM节点,使其升级为具备分析能力的“意图分类器”。具体要求是通过提示词工程与JSON模式配置,强制大模型忽略冗余的聊天内容,仅解析用户输入的意图(Intent)与置信度(Confidence),并以严格的JSON格式输出。此外还将引入校验机制,确保输出结果符合预期的Schema定义,为后续的逻辑分支判定提供可靠的数据基础。任务分析实现从“自然语言”到“结构化数据”的转变,关键在于解决大模型输出的“不确定性”问题。技术实施路径主要包含以下三个核心维度。1.提示词约束这是软性约束,需要在系统提示词中明确定义“分类标准”和“输出模板”。模型不再是随意的对话者,而是被设定为一个严格遵循指令的数据处理函数。例如,明确规定意图标签只能是教务咨询(academic_query)、生活咨询(life_query)或闲聊(chat)。2.模式强制这是硬性约束。利用Dify平台提供的JSON格式输出功能,从底层协议上限制模型的生成行为,确保其输出的文本必须符合JSON语法规范,防止出现Markdown标记或多余的解释性文字。3.结果解析这是数据提取。工作流需要能够识别JSON内部的键值对,并将其提取为独立的变量(如intent变量),以便下游的条件分支节点能够直接读取该变量进行逻辑判断,而非通过正则表达式去处理复杂的字符串。任务实现1.重构LLM节点为“意图分类器”首先,需要将任务2.1中的回声工作流逻辑替换为具备分析能力的分类逻辑。(1)复制工作流应用在Dify工作室导航栏中找到“任务2.1-回声测试”工作流应用,复制应用并设置名称为“任务2.2-结构化输出”。任务实现(2)节点重命名在应用“任务2.2-结构化输出”的工作流画布中,选中原有的LLM节点,将其标题修改为“意图分类器”,以便清晰标识其功能角色。(3)选择推理模型为了获得更好的指令遵循能力,建议切换至支持JSON格式输出的大模型版本,LLM节点配置面板的模型列表有多种模型支持JSON格式输出,这里选择模型“DeepSeek-V3”。(4)编写系统提示词清空原有的系统提示词,填入如提示词2-3的结构化提示词。注意其中的{{#1769430525269.input_text

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论