想了解 Dify 大语言模型(LLM)在「编排(Orchestration)」环节中的核心作用,以及对应的实操示例。
也是我个人在dify使用过程中的一些体会,本文会从作用解析和具体案例两方面来做讲解。
一、Dify 中 LLM 在编排中的核心作用
在 Dify 的应用开发流程里,「编排」是串联各类组件(LLM、工具、数据、流程节点)的核心环节,而 LLM 是编排中的「智能中枢」,核心作用可总结为:
简单来说,LLM 在 Dify 编排中是「大脑」—— 负责理解需求、指挥流程、处理数据、输出结果。
二、实操示例:基于 Dify 编排实现「智能天气问答助手」
这个示例会体现 LLM 在编排中的核心作用,你可以直接在 Dify 平台复刻:
1. 前置准备
- 已部署 Dify(开源版/云版),并接入至少一个 LLM(如 OpenAI GPT-3.5/4、讯飞星火、通义千问);
- 准备一个公开的天气 API(比如「和风天气 API」,需申请 API Key)。
2. 编排流程设计(核心步骤)
Dify 的编排支持可视化拖拽,核心节点包括:「用户输入」→「LLM 意图解析」→「工具调用」→「LLM 结果格式化」→「输出回答」。
3. 具体配置与代码/配置示例
步骤 1:创建应用与编排画布
在 Dify 中创建「对话型应用」,进入「编排」模块,开启可视化编排模式。
步骤 2:配置 LLM 意图解析节点
- 节点类型:「大语言模型」;
- 提示词(Prompt)配置(核心是让 LLM 解析用户意图并提取参数):你的任务是解析用户关于天气的提问,输出 JSON 格式结果:
1. 如果用户问的是天气相关问题,提取「城市」和「查询类型」(温度/降水/风力);
2. 如果不是天气问题,返回 {"intent": "non_weather", "city": "", "type": ""};
示例:
用户输入:“北京今天的温度是多少?” → {"intent": "weather", "city": "北京", "type": "温度"}
用户输入:“明天要下雨吗” → {"intent": "weather", "city": "上海", "type": "降水"}(默认当前城市为上海)
用户输入:“早上好” → {"intent": "non_weather", "city": "", "type": ""}
只输出 JSON,不要额外内容。 - 模型选择:GPT-3.5(轻量且足够解析意图);
- 输出格式:强制 JSON 格式(Dify 可配置「输出格式约束」)。
步骤 3:配置分支判断节点
基于 LLM 输出的 intent 字段做分支:
- 如果 intent = weather:进入「调用天气 API」节点;
- 如果 intent = non_weather:进入「LLM 直接回复」节点(回复“我是天气助手,仅支持天气查询哦~”)。
步骤 4:配置工具调用节点(天气 API)
- 节点类型:「HTTP 请求」;
- 请求配置:
- 方法:GET;
- URL:https://devapi.qweather.com/v7/weather/now?location={{city}}&key=你的APIKey({{city}} 是 LLM 解析出的城市参数,Dify 支持变量引用);
- 响应解析:提取 now.temp(温度)、now.rain(降水)、now.windSpeed(风力)等字段。
步骤 5:配置 LLM 结果格式化节点
将 API 返回的结构化数据转化为自然语言,Prompt 配置:
根据以下天气数据,用自然、友好的语言回复用户:
城市:{{city}}
查询类型:{{type}}
数据:{{weather_data}}
示例:
城市:北京,类型:温度,数据:{"temp": "5℃"} → “北京今天的温度是5℃哦~”
城市:上海,类型:降水,数据:{"rain": "0mm"} → “上海明天没有降水,放心出门吧~”
步骤 6:测试编排流程
- 用户输入:“广州今天的风力是多少?”
- 编排执行逻辑:
- LLM 解析 → {"intent": "weather", "city": "广州", "type": "风力"};
- 分支判断 → 调用天气 API,获取广州风力数据(如 {"windSpeed": "3级"});
- LLM 格式化 → “广州今天的风力是3级哦~”;
- 输出最终回答。
三、进阶编排示例:多模型协作
如果需求更复杂(比如“总结近7天北京天气并生成可视化报告”),LLM 在编排中的作用会延伸:
总结
这个示例覆盖了 Dify 编排中 LLM 的核心用法,你可以根据实际需求(比如接入企业内部数据、多轮对话记忆)扩展编排节点。
网硕互联帮助中心







评论前必须登录!
注册