Dify→ LLM 节点 说明
说到Dify的工作流(Chatflow/Workflow),其中最关键、最核心的单元,非LLM节点莫属。它就像整个工作流的“大脑”,负责理解和处理信息。说白了,我们的所有业务逻辑,最终都要靠它来落地。
这篇文章,我们就来深入剖析一下这个节点。从它能干什么,到怎么配置,再到那些容易被忽视的高级玩法,一次讲透。
dify→ LLM
定义
LLM节点,本质上就是调用一个大语言模型(比如GPT-4、Claude 3)的能力,来处理你在“开始”节点中输入的信息。无论是自然语言、上传的文档还是图片,它都能“消化”掉,并给出有效的回应。你可以把它想象成一个聪明的“翻译官”和“执行官”。
一、应用场景
LLM节点的应用范围非常广,几乎覆盖了我们能想到的所有AI应用场景。具体能做些什么呢?
- :最常见的场景,比如在客服系统里,先对用户的问题进行分类——“是咨询、是投诉、还是闲聊?”。
意图识别
- :自动撰写文章、营销文案、报告摘要,这些都是它的拿手好戏。
文本生成
- :处理海量信息,比如自动把收到的邮件分为“咨询”、“投诉”或“垃圾邮件”。
内容分类
- :语言翻译、格式转换(比如把Markdown转成HTML)、润色改写,都不在话下。
文本转换
- :写业务代码、写测试用例,甚至生成SQL查询语句,这能力已经让不少开发者爱不释手。
代码生成
- :这是知识库问答的核心。模型检索到相关文档后,LLM负责将这些碎片化的信息整合、重组,生成一个连贯、有逻辑的答案。
RAG
- :如果对接的是视觉模型(Vision模型),它可以直接“看懂”图片内容,比如识别图片里的物体、文字,或者进行分析。
图像理解
- :读取并理解你上传的PDF、Word、Excel等文件,提取关键信息。
文件分析
二、配置示例
理解了它能做什么,我们来看看怎么在实际应用中把它用起来。在应用编辑页,点击鼠标右键或轻点上一节点末尾的“+”号,就可以添加LLM节点了。
配置步骤
1. 模型选择
- :像OpenAI的GPT系列、Anthropic的Claude系列、Google的Gemini等,主流大模型基本都支持。
支持主流模型
- :选择哪个模型,取决于你的具体需求。看中推理能力?还是追求成本?或者对响应速度有苛刻要求?大模型的上下文窗口大小也是个关键考量点。
选择依据
- :如果你是第一次用Dify,别忘了先去【系统设置 - 模型供应商】里把API Key配置好。
前置条件
2. 配置模型参数
模型参数直接影响输出效果,这里有几个预设的模板可以让你快速上手:
- :高随机性,适合头脑风暴、写故事。
创意模式
- :中等控制力,大多数场景下的“万金油”选择。
平衡模式
- :低随机性,结果更确定、更可控,适合事实性问答、代码生成。
精确模式
当然,你也可以手动微调。以下四个核心参数,值得你花时间琢磨一下:
| 参数 | 范围 | 作用 |
|---|---|---|
| 温度 | 0-1 | 控制输出的随机性,值越高,回答越有创意和不可预测。 |
| Top P | 0-1 | 控制候选词的多样性,通过累积概率来筛选下一个词。 |
| 存在惩罚 | ≥0 | 抑制重复生成相同的实体或信息,让内容更丰富。 |
| 频率惩罚 | ≥0 | 降低高频词(比如“的”、“是”)的出现频率,增加词汇多样性。 |
3. 上下文配置(可选)
如果你的应用需要依赖知识库,这里就可以将知识库检索结果的变量输入进来。支持的变量类型有三种:上下文变量、图片变量、文件变量。
4. 提示词编排
这是人与模型“沟通”的核心环节。
- :对于聊天模型,提示词通常由三部分组成:
聊天模型结构
- :系统级指令,设定模型的身份、行为准则和底层规则。例如:“你是一位专业的客服人员,语气要保持友好和专业。”
SYSTEM
- :模拟用户的输入。
USER
- :期望模型给出的响应格式,可以提供一个示例。
ASSISTANT
- Dify还提供了**提示生成器**,可以帮你辅助生成提示词,是个很实用的工具。
- :在提示词中,输入“/”或“{”可以呼出菜单,方便地插入前面节点的输出变量。
变量插入
- :支持Jinja-2模板语法。这个功能很强大,允许你在提示词中进行轻量级的逻辑处理和数据转换,比如条件判断、循环等。
高级模板
5. 高级功能
这部分是你和资深玩家拉开差距的关键。
- :
记忆机制
- :可以控制模型记住多少轮对话历史。关闭时,系统会根据模型的上下文窗口动态调整;开启后,你可以精确设定记忆的轮数。
记忆窗口
- :不同模型对角色名的理解不同,比如“Human/AI”、“User/Assistant”。你可以在这里自定义角色前缀,以适配不同的模型。
角色命名
- :
错误处理
- :遇到网络波动等临时错误,节点会自动重试。你可以设置最大重试次数(最多10次)和重试间隔(最长5000毫秒)。
自动重试
- :更高级的错误处理。可以设置一个备用路径,当主节点报错时,走备用路径完成任务,或者将错误信息抛出来,而不中断整个工作流。
异常分支
- :
文件处理
- :如果要用这个功能,需要单独在模型配置里启用Vision功能。
Vision模型
- :如果想让模型直接理解文档内容,需要先连接一个“文档提取器”节点,把文档里的文字提取出来。
文档解析
三、特殊变量说明
这个部分不复杂,但很重要,帮你理清不同变量的用法。
| 变量类型 | 适用场景 | 注意事项 |
|---|---|---|
| 上下文变量 | 知识库检索 | 支持溯源引用,可以找到信息的来源。 |
| 图片变量 | Vision模型 | 需要在模型设置中启用Vision功能。 |
| 文件变量 | 文档分析 | 务必先确认所用的LLM支持哪些文件类型(比如Claude 3.5 Sonnet就支持直接处理文件)。 |
| 会话历史 | 文本补全模型 | 这个变量的应用场景相对小众,只有在使用文本补全类模型(如gpt-3.5-turbo-Instruct)时才会用到。 |
- : 开启模型视觉能力后,LLM就可以通过这个变量读取用户上传的图片。操作很简单,在提示词里选择图片文件的输出变量就行。
图片变量
- : 部分模型(如Claude 3.5 Sonnet)已经能直接处理文件内容了,所以系统提示词现在也允许输入文件变量。不过为了保险起见,建议开发者使用前先到LLM官网确认一下支持的文件类型。
文件变量
- : 这个变量是为了在文本补全模型里实现对话记忆而设计的。你可以把它插入到提示词中,让模型记住之前的对话内容,这在只用文本补全模型搭建聊天应用时非常有用。
会话历史
会话历史变量使用范围不广,只有在Chatflow中选择文本补全模型时才有用。
- : 模型参数直接决定输出效果。不同模型参数不尽相同,下面以GPT-4为例展示一下参数列表。
模型参数
主要参数解释如下:
如果觉得这些参数太抽象,直接选择“创意”、“平衡”、“精确”三种预设方案就好,省心省力。
- : 0到1之间的值,控制随机性。越接近0,输出越确定、越重复;越接近1,输出越随机、越有创意。
温度
- : 控制多样性。模型会从概率最高的几个候选词中选择,直到它们的累积概率超过设定的阈值P。值越小,模型越“保守”。
Top P
- : 对已经生成过的内容施加惩罚,从而避免重复。值越大,惩罚越大,模型越倾向于生成新的内容。
存在惩罚
- : 对高频词(如“的”、“是”)施加惩罚,降低它们的出现频率,从而增加词汇多样性。值越大,效果越明显。
频率惩罚
四、高级功能
记忆
记忆窗口
对话角色名设置
Jinja-2 模板
错误重试
最大重试次数为 10 次
最大重试间隔时间为 5000 ms
异常处理
结构化输出
LLM → JSON Schema 编辑器
JSON Schema编辑器就是实现结构化输出的工具。它让你能定义LLM返回的数据结构,确保输出是可预知、可解析、可复用的。支持可视化编辑和代码编辑两种模式,无论你是新手还是老手,都能找到合适的方式。
特性
- :对所有模型生效,统一了结构化输出的定义方式。
节点级能力
- :支持结构化输出的模型(如GPT-4),可以直接使用JSON Schema,效果最佳。
原生支持
- :对于不支持原生的模型,Dify会通过提示词引导模型输出JSON格式,但解析成功率不能保证100%。
兼容模式
编辑器入口
路径
LLM 节点 > 输出变量 > 开启结构化开关 > 配置可视化编辑窗口和代码编辑窗口可以无缝切换,非常方便。
可视化编辑模式
适用场景
- 定义简单字段,比如 name、email、age。
- 不熟悉JSON Schema语法。
- 需要快速迭代字段结构。
操作指南
添加字段
- 点击「添加子字段」按钮。
- 配置参数:
{ "type": "string", "enum": ["red", "green", "blue"] }
- (必填)
字段名
- :string/number/object/array 等。
字段类型
- :给LLM看的,帮助它理解这个字段的含义。
描述
- :勾选后,强制LLM返回这个字段。
必填
- :限制该字段的取值只能是列表里的几个固定值。
枚举值


(注:此文档基于提供的技术说明整理,实际配置请以平台最新文档为准)
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名