提高dify问题分类的准确性

张开发
2026/4/13 17:25:17 15 分钟阅读

分享文章

提高dify问题分类的准确性
1. 模型与参数先把 “硬件” 拉满模型选择分类任务必须用强推理模型GPT-3.5-turbo / GPT-4通义千问 Pro / 文心 4.0 / 字节豆包 Pro小模型7B、1.8B分类准确率天生差不建议用于意图判断。参数设置关键Temperature 0 ~ 0.1越低越稳定、越不会乱分类。Top P 0.1 ~ 0.3禁止开启 “创意模式”“自由发挥”2. 只让分类器看当前问题不要看历史对话这是90% 人准确率低的核心原因。用户前面聊别的后面突然问新问题分类器会被上下文带偏。正确做法Question Classifier 的输入只传plaintextsys.query不要传入历史对话、不要传入系统提示。3. 类别设计必须清晰、互斥、不重叠类别越模糊准确率越低。原则类别之间不能有歧义一个问题只能属于一个类别类别数量不要太多建议 38 类必须加一个【其他】兜底错误示例投资、融资、找机构、找资金 → 应该合并为【找投资】需求、项目、产品、痛点 → 合并为【找需求】4. 提示词结构固定格式 高准确率给你一个Dify 分类器专用高准确率提示词直接复制plaintext你是一个严格的意图分类器。 规则 1. 只根据用户当前这句话判断不看上下文。 2. 必须且只能选择一个类别。 3. 语义不明确时一律返回【其他】。 类别定义 【找投资】 用户询问融资、投资人、基金、投资偏好、合作、资金、IPO、并购、退出。 【找需求】 用户询问项目、产品需求、市场机会、客户痛点、解决方案、功能设计。 【AI赛道】 涉及大模型、LLM、RAG、Agent、提示词、AI应用、AIGC、向量库。 【智能制造】 涉及机器人、工业自动化、芯片、硬件、装备、产线、工厂、精密制造。 【其他】 不属于以上任何类别。 用户问题{user_query} 只输出类别名称不要任何多余内容。5. 给每个类别提供 35 个示例句非常有效LLM 最喜欢示例有示例准确率直接提升一档。在提示词里加plaintext示例 1. 我想融资 → 【找投资】 2. 有什么好项目 → 【找需求】 3. 怎么做RAG → 【AI赛道】 4. 工业机器人前景 → 【智能制造】 5. 今天吃什么 → 【其他】6. 禁止输出解释只输出类别名分类器一旦开始解释就容易跑偏。强制要求只输出类别名称不要理由不要分析不要 JSON除非你必须用 JSON简单输出最稳定。7. 用 “强制格式指令” 锁死输出在最后加一句plaintext输出格式仅输出【】内的类别名称不输出任何其他内容。8. 避免类别太细、太相似例如不要分早期投资、成长期投资、PE 投资统一叫【找投资】细分类可以在后续节点再判断不要让分类器一次性做太难的任务。9. 测试集验证 Bad Case 优化准备 2050 条测试问句反复跑把分错的句子加入提示词作为反例。例如plaintext反例 “我有项目想找钱” → 不属于【找需求】属于【找投资】反例越多模型越不容易错。10. 进阶用 JSON 结构化输出更稳定如果你希望后续流程更稳可以让分类器输出 JSONplaintext{ category: 找投资 }JSON 格式比纯文本更不容易乱输出。最简单总结照着做就能提高用强模型温度 0.1只看当前问题不看历史类别少、清晰、互斥提示词给定义 示例强制只输出类别收集错例优化提示词

更多文章