news 2026/6/9 9:15:43

Dify做意图识别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Dify做意图识别

在 Dify 里,意图识别本质是“规则+LLM分类+结构化输出”的组合,不是训练好的专用模型,而是用节点和提示词把大模型当分类器来用。下面从原理、两种实现方式、配置步骤和常见问题四方面讲清楚。


一、核心原理(一句话版)

Dify 没有内置“训练好的意图模型”,而是:

  1. 优先规则:关键词/正则快速拦截高频意图(快、省成本);
  2. LLM 兜底分类:用提示词把候选意图列出来,让大模型选最匹配的一个;
  3. 结构化输出:让模型固定返回intentconfidenceslots,方便下游分支判断。

二、两种实现方式(你常用的)

方式1:用「问题分类器」节点(推荐,零代码)

Dify 自带节点,专门做意图/问题分类,本质是封装好的 LLM 分类模板。

配置步骤
  1. 工作流拖入问题分类器(Question Classifier)

  2. 输入变量:选sys.query(用户问题);

  3. 模型:选推理强的(如 GPT-4o-mini、DeepSeek),温度设0.2–0.3(确定性高);

  4. 添加意图标签+描述+关键词

    • 意图1:查交期 → 描述:用户问交货时间、多久能好 → 关键词:交期、多久、什么时候到;
    • 意图2:查库存 → 描述:用户问有没有货、库存多少 → 关键词:库存、有货吗、剩多少;
    • 意图3:其他 → 兜底。
  5. 输出:节点会输出category(意图名称),下游用条件分支category走不同流程。

方式2:用「LLM 节点+自定义提示词」(灵活,适合复杂意图)

自己写提示词,让模型输出结构化意图结果,适合需要槽位提取(如工厂、数量)的场景。

标准提示词模板(直接复制)
你是意图识别器,只做分类和提取。 候选意图: 1. query_delivery:查交期(关键词:交期、交货、多久、什么时候) 2. query_stock:查库存(关键词:库存、有货、剩多少) 3. create_order:下单(关键词:买、订、下单、来一份) 4. other:其他问题 用户输入:{{sys.query}} 输出JSON(严格): { "intent": "意图名称", "confidence": 0.xx, "slots": { "factory": "工厂(有就填,没有null)", "qty": "数量(数字,没有0)" } }
配置
  1. 拖入LLM 节点,粘贴上面提示词;
  2. 开启结构化输出,JSON Schema 如下:
{"type":"object","properties":{"intent":{"type":"string"},"confidence":{"type":"number","minimum":0,"maximum":1},"slots":{"type":"object","properties":{"factory":{"type":["string","null"]},"qty":{"type":"number","minimum":0}}}},"required":["intent","confidence","slots"]}
  1. 下游用条件分支判断:
    • intent == "query_delivery"→ 走查交期分支;
    • intent == "query_stock"→ 走查库存分支;
    • 兜底走其他分支。

三、意图识别怎么判断“来自哪个分支”

你之前问“节点怎么判断来自哪个分支”,结合意图识别,答案是:

  1. 分支标记法(最常用)

    • 每个条件分支出口,加一个赋值节点,设置变量from_branch = "查交期分支"
    • 下游节点直接读取from_branch,就能知道来自哪个分支。
  2. 意图回溯法

    • 意图识别结果intent就是“来源”:
      • intent = "query_delivery"→ 来自查交期分支;
      • intent = "create_order"→ 来自下单分支。

四、常见问题(你遇到的)

1. 为什么上面分支能走完,下面不行、不报错?

  • 大概率是条件分支判断不严谨:下面分支的条件没触发(如意图识别结果和分支条件不匹配);
  • 下游节点有必填字段没传(如工厂编码为空),但节点没报错,直接静默终止。

2. 为什么走完“直接回复16”就不往下走了?

  • “直接回复16”是终止节点(如「回复用户」且勾选「结束流程」);
  • 把该节点的结束流程关掉,或移到流程最后,就能继续往下走。

五、最佳实践(直接能用)

  1. 简单意图:用问题分类器节点(零代码、快);
  2. 复杂意图+槽位:用LLM节点+结构化输出(灵活、能提参数);
  3. 分支判断:用赋值节点打标记,下游读标记判断来源;
  4. 模型参数:温度0.2–0.3,减少随机性,提高意图准确率。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 9:14:21

Godot Engine 最新版官方文档(简体中文完整翻译 精简梳理)

Godot Engine 最新版官方文档(简体中文完整翻译 & 精简梳理)该页面是 Godot 引擎最新版本官方英文文档,下文按原文结构逐板块翻译、整理核心内容:一、开篇与总览1. 介绍与前置内容简介:入门前必读内容、Godot 引擎…

作者头像 李华
网站建设 2026/6/9 9:11:07

Claude Code 新手避坑指南:10 个常见错误与解决方案

前言 Claude Code 能力很强,但新手上手时容易在环境配置、提示词写法、费用控制等方面踩坑。本文整理 10 个高频问题及对应解法,帮你少走弯路。 错误 1:连接超时,请求发不出去 现象:安装完运行命令提示 connect ETI…

作者头像 李华
网站建设 2026/6/9 9:09:25

【信息科学与工程学】【物理/化学科学和工程技术】知识体系87——声学基础01

声学在1~3nm先进电子元件中的关键应用与特性整理如下。表格涵盖了GPU、内存、CPU、NP芯片、光模块、电模块、ASIC芯片及交换网板中的电学相关声学问题,包括材料声学性质、振动效应、系统支撑设计、声隔层、防振设计、声容网络、声感知、芯片微通道、多层堆叠结构声学、信号完整…

作者头像 李华
网站建设 2026/6/9 9:07:43

窗口比较器LM393还能这么玩?手把手教你DIY一个低成本水位报警器

LM393窗口比较器的创意实践:打造智能水位报警系统从理论到实践的跨越电子爱好者们常常会遇到一个尴尬的局面:课堂上精心设计的电路在现实中似乎找不到用武之地。那些在模电课设中反复调试的窗口比较器电路,难道只能停留在实验报告里吗&#x…

作者头像 李华
网站建设 2026/6/9 9:07:22

WDF驱动开发老版本实战包:XP兼容PDF教程+完整样例源码+编译日志

本文还有配套的精品资源,点击获取 简介:专为Windows XP及早期WDF环境整理的驱动开发实操资料,包含《Windows设备驱动程序WDF开发.pdf》系统教程,覆盖KMDF/UMDF框架结构、驱动初始化、PnP与电源管理、IO处理、过滤驱动、USB/PCI…

作者头像 李华