意图识别
意图识别节点用于识别用户自然语言表达的意图或目的,适用于需要对用户问题进行分类,或者综合类功能需要不同分支处理的场景。
通过对用户输入进行推理分析,匹配预定义的意图类别,并根据匹配结果引导至相应的处理流程,该节点通常位于工作流的前置位置。
意图识别节点支持普通模式运行。
- 普通模式:适用于对少量意图进行分类的场景,当意图数量小于或等于20时,选择意图识别节点。
意图识别节点和判断节点的区别:
| 对比维度 | 意图识别节点 | 判断节点 |
|---|---|---|
| 输入类型 | 自然语言文本 | 确定性条件表达式 |
| 分类方式 | 大模型语义理解 | 条件逻辑判断(if/else) |
| 适用场景 | 用户问题分类、意图路由 | 参数值判断、业务逻辑分支 |
| 结果确定性 | 存在概率性,可调温度控制 | 完全确定性 |
| 示例 | 输入“我想订机票”→预订机票意图 | age >= 18→成人流程 |
当分类依据是自然语言语义时选用意图识别节点;当分类依据是明确的参数值条件时选用判断节点。两者可配合使用。
配置意图识别节点
配置意图识别节点的详细参数说明如下:
模型配置
选择要使用的模型。意图识别属于逻辑推理任务,建议选择推理能力强的模型,如Kimi-K2,而非创意生成型模型。
你还可以单击
图标,调整模型配置。模型配置的详细说明可参考选择并配置模型。
意图分类要求输出具有高度确定性,避免发散性结果,建议将“温度”配置项设置为0。如需处理语义边界模糊的场景,可适当调至0.1~0.2。
输入参数
输入参数固定为1个,参数名称为input,且不可修改,类型是字符串,表示待进行意图识别的用户文本。
设置参数值时,支持“引用”和“输入”两种方式。
- 引用:支持引用三类参数源,工作流前置节点的输出参数、全局配置中的记忆变量(需预先设置)以及系统参数。
- 最常见的配置:引用“开始”节点的输入参数“query”,即直接对用户输入进行意图分类。
- 进阶用法:引用“大模型”节点的输出参数“raw_output”,先用大模型节点对用户输入进行预处理或标准化,再进行意图识别。
系统参数列举如下:- “conversation_history”:存储当前对话的历史消息记录。
- “current_time”:获取当前的系统时间戳或时间字符串。
- “user_id”:识别当前用户的唯一标识符。
- “conversation_id”:当前工作流的唯一对话标识。
- “dialogue_count”:当前对话的轮次数计数。
- 输入:支持输入指定内容,适用于调试测试场景。
意图配置
用户意图的分类选项,支持设置多个分类。默认提供2个意图分支,用户可以单击“添加意图”添加多个意图分支,意图数量最多为20个。
意图数量增多可能降低分类准确率,建议单个意图识别节点不超过15个意图分类。超过20个上限时需考虑拆分为多级意图识别工作流。
当所有预设意图均不匹配时会命中“其他意图”分支,这是兜底分支,通常连接到通用大模型节点,处理闲聊或未定义问题。
意图描述:
意图输入框中的描述内容,是意图识别节点最关键的配置,决定了模型能否准确理解用户意图。配置质量越高,识别准确率越高。
好的意图描述应清晰定义边界以及包含关键要素,意图描述示例如表2所示。
高级配置
高级配置可使用默认的提示词。当意图识别效果不佳时,可自定义修改提示词优化效果。具体说明如下:
- 提示词:提供进阶开发者修改提示词,如果不配置将会使用系统默认值。提示词的撰写可能影响到意图识别节点的准确性。当意图识别效果没有达到预期时,可以调整提示词优化效果。例如可以在提示词中补充“用户提问飞机时,识别为预订机票功能”,提升“预订机票”意图识别的成功率。同时支持单击
快速插入输入参数,或在输入框中键入' {' 快速引用参数。 - 历史对话轮次:选择是否打开历史对话引用功能,默认为0即不会引用对话历史,配置N轮即可记录N轮对话的内容。
- 辅助识别: 开启辅助识别后,优先通过知识库分类样例的检索匹配进行意图识别,提升意图识别节点的分类能力。
- 意图样例知识库:开启辅助识别,用户需要先创建分类样例知识库,向知识库上传意图FAQ,并选择配置该知识库。
- 过滤标签:可填写意图样例知识库上传FAQ时打的标签值,表示在该标签范围内进行FAQ检索匹配。如果不填写,则默认在整个知识库范围下做FAQ检索匹配。
- 匹配阈值:当分类样例的匹配度低于设置阈值时,会采用所配置的大模型进行意图识别分类。阈值范围为0到1。
输出参数
节点的输出参数,可作为变量被后续节点引用。
| 参数名 | 类型 | 说明 | 示例值 |
|---|---|---|---|
| classification_id | Integer | 意图ID。根据意图配置中的顺序,从上到下依次排序,第一个意图ID为1;未命中任何已配置意图时ID为0,执行其他意图分支。 | 1 |
| name | String | 意图描述名称。 | 文本翻译 |
相关操作
- 单击节点名称,可修改节点名称。
- 单击
图标,可对节点进行重命名、复制、删除或更换节点;也可以将节点连接到结束节点。 - 单击
图标,可对节点进行测试。 - 单击名称下面的节点说明,可修改节点的描述信息。
- 单击
图标,可查看文档信息。
示例
以提供综合功能,对用户问题进行不同分支处理的工作流为例,通过意图识别节点对用户输入进行分类,流转至不同的功能模块进行处理。
例如,提供翻译功能的工作流,节点配置如下:
意图识别节点:
工作流将用户问题分为翻译、闲聊两个类别,节点的意图配置添加意图1的类别描述为“文本翻译”,类别后面连接翻译插件节点,实现翻译功能。
意图2的类别描述为“用户闲聊”,类别后面连接大模型节点,实现闲聊功能。
默认的其他意图类别后面连接消息节点,在消息节点中配置默认回复内容,实现未识别意图场景下的兜底回复。
常见问题
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 用户表达明确,但分到了错误的意图 |
|
|
| 同一输入多次运行结果不同 | 温度设置过高。 | 将温度降至0(推荐)或0.1-0.2。 |
| 始终走“其他意图” |
|
|
| 辅助识别未生效 |
|
|
| 输入参数下拉列表为空 | 节点未连接前置节点。 | 确保意图识别节点已连线到开始节点或其他上游节点。 |