问题: Coze工作流中意图识别节点和选择器节点的核心区别是什么?

👇 点击展开/折叠 面试背诵模板(建议先背这个) 意图识别节点用于将用户输入的**自然语言文本**分类到预定义的意图类别(如“退款”“查询订单”“转人工”),本质是“语义理解+分类”,适合处理开放式用户语言。选择器节点(条件/If-Else)用于对**结构化数据**进行逻辑判断(如比较数值、检查变量状态、匹配特定条件),本质是“条件分支”,适合处理程序化、可量化的判断。两者可串联使用:意图识别先对用户意图分类,选择器再根据分类结果分流到不同处理路径。
---

核心对比速览

维度 意图识别节点 选择器节点(Condition)
输入类型 自然语言文本(用户提问、对话内容) 结构化数据(变量值、数字、布尔、枚举)
本质功能 语义理解 → 分类 条件判断 → 分支
判断依据 基于大模型语义相似度匹配 基于明确逻辑表达式(等于/大于/包含等)
输出结果 预定义的意图名称(如”退款”) 根据条件走对应分支
适用场景 开放式用户输入、客服分流、意图理解 业务规则判断、数值比较、状态检查
是否需要训练 需在节点中配置意图名称+示例问法 无需训练,直接配置条件表达式

意图识别节点的工作原理

意图识别节点内置大模型能力,通过用户配置的意图名称和示例问法,对输入文本进行语义理解,将其归入最匹配的意图类别。示例问法越多、越典型,识别准确率越高。本质是“零样本/少样本分类器”。

典型配置:

  • 意图A(退款):示例问法“我要退款”“钱怎么退”“申请退货”
  • 意图B(查订单):示例问法“我的订单到哪了”“查一下物流”
  • 意图C(转人工):示例问法“我要找真人”“转人工客服”

选择器节点的工作原理

选择器节点基于明确的逻辑表达式进行条件判断,类似于编程语言中的if-else或switch。它不依赖语义理解,只依赖已解析的结构化数据。

典型配置:

  • 条件1:{{变量.退款金额}} > 1000 → 走高级审批分支
  • 条件2:{{变量.订单状态}} == "已发货" → 走退货流程分支
  • 默认:走通用处理分支

典型串联场景

1
2
3
4
用户输入 → 意图识别节点 → 选择器节点 → 具体处理分支
↓ (分类) ↓ (分流)
意图=退款 金额>1000 → 人工审批
金额≤1000 → 自动退款

何时使用意图识别

  • 输入来源是用户自然语言(对话、提问、描述)
  • 需要理解用户“想做什么”而非“给了什么数据”
  • 意图类别有限但表达方式无限
  • 如:客服机器人、多轮对话分流、语音助手

何时使用选择器节点

  • 输入来源是结构化数据(变量、数字、状态值)
  • 判断逻辑是确定性的(大于、等于、包含、非空)
  • 条件来自上游处理结果而非用户原始输入
  • 如:订单状态分支、金额阈值判断、权限校验、工作流状态机

选择指南(一句话)

  • 输入是人话 → 用意图识别节点
  • 输入是数据 → 用选择器节点
  • 两者不互斥,常配合使用:意图识别先“听懂人话”,选择器再“分流处理”