Dify问题分类器与条件分支详解:如何选择与结合使用?

问题分类器和条件分支都是Dify里分流的节点,但它们在使用上还是有不小的区别。

一. 条件分支 (IF/ELSE)

这个元素有严格且标准的判断依据。只有当你前面节点的变量满足条件时才会执行对应的线路。

这些参数通常用于检查用户输入的文字内容:

  • 包含:只要用户的话里有这个词就行。比如设置了“包含:工资”,那么“发工资”、“我的工资多少”都会通过。
  • 不包含:正好相反,只要有这个词,就不走这条路。
  • 开始是:必须以这个词开头。比如设置了“开始是:查询”,用户说“查询天气”可以,但说“我想查询”就不行。
  • 结束是:必须以这个词结尾。比如设置了“结束是:吗”,用来筛选用户是不是在提问。
  • :必须完全一致,多一个字少一个字都不行。相当于“暗号正确”。
  • 不是:只要不是这个特定的词,就全部通过。
  • 为空:检查用户是不是啥也没写(或者变量里没数据)。
  • 不为空:只要用户写了东西,不管写的是什么,都算通过。
Dify条件分支节点设置界面,展示包含、开始是、结束是、为空等判断条件选项

二. 问题分类器

问题分类器的作用就是:根据用户的提问内容,将其自动归类到你预设的标签下。

它不是一个固定的条件,而是根据用户发出的内容做出判断。例如下面额截图:

这里就是采用Deepseek大模型判断用户输入内容中的关键词或者意图来进行分类,从而决定执行哪条线路。

  • 模型:用来判断用户输入内容的意图。
  • 输入变量:用户输入的内容。
  • 分类1:上面大模型判断用户输入内容是否属于分类1的依据。比如Deepseek判断用户输入的内容中含有一些特定关键词或者特定含义的表达。
  • 分类2:是判断用户内容是否触发分类2的线路。
Dify问题分类器节点配置,显示Deepseek模型选择、输入变量、分类标签设置

当然下面还可以继续创建新的分类。

  • 高级指令:是一段隐藏的提示词,用来告诉分类器:在分类时应该遵循什么逻辑、注意什么细节。举例:
    • “如果用户的提问很模糊,请优先分类到分类1;如果提到任何数字,请务必分类到分类2”
Dify问题分类器高级指令设置区域,用于编写隐藏提示词指导分类逻辑

三. 条件分支和问题分类器对比

很多新手会混淆这两者,其实它们的分工非常明确:

特性问题分类器 (Classifier)条件分支 (Condition)
判断依据语义、意图(模糊理解)变量、数值(精准匹配)
输入来源通常是用户的“原始提问”通常是上一个节点输出的“具体参数”
适用场景决定接下来“聊什么主题”决定接下来“执行什么操作”
形象比喻根据你的衣着谈吐消费情况判断你的身份。根据你的存款判断你的身份。

四. 使用说明

这两个节点都适合在处理复杂任务时做分流,流程A走Ⅰ流程,流程B走Ⅱ流程……区别在于:

  • 问题分类器是根据用户输入内容分析揣测用户想干嘛,存在不确定性。
  • 条件分支是验证用户给的内容去执行,步骤严格明确。

当然这两者也可以结合使用,那么你的 Dify 应用就能像真人助理一样,既能听懂潜台词,又能办事滴水不漏!

© 文章版权归白小菌所有,🫰欢迎转发分享。未经允许请勿抄袭转载。

订阅评论
提醒
guest
0 评论
最新
最旧 最多投票
内联反馈
查看所有评论

AI 小菌
现代响应式侧边栏
快捷菜单