必须启用语义注解并确保embedding_model与知识库一致(如bge-m3),再通过条件分支或HTTP请求节点比对相似度(阈值0.93),命中则调用预设答案,未命中进入常规流程。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当你在Dify中部署FAQ知识库或客服问答系统时,用户反复提交语义相同但措辞不同的问题(如“怎么重置密码”和“忘记登录密码怎么办”),会导致冗余调用、响应延迟甚至答案冲突——必须通过语义相似度去重工作流提前拦截重复提问。
启用语义注解并配置相似度匹配
进入 Dify 应用后台 →「语义注解」→ 点击右上角「启用」开关。这一步是前提,未开启则后续所有相似度逻辑均不生效。
在语义注解列表中添加标准问答对,例如问题填写“如何修改手机号”,答案填写对应处理流程。系统会自动为该问题生成 Sentence-BERT 向量指纹。
【必须确认 embedding_model 参数与知识库一致】:若知识库使用 bge-m3,此处也需设为同一模型,否则向量空间错位,相似度计算失效。
构建去重判断工作流节点
方法一:使用「条件分支」+「向量相似度比对」节点
在工作流画布中拖入「条件分支」节点 → 点击编辑 → 在「判断逻辑」中选择「语义相似度匹配」→ 关联已配置的语义注解集 → 设置相似度阈值为 0.93。
方法二:手动接入外部相似度服务(适用于需动态阈值场景)
添加「HTTP 请求」节点 → 目标 URL 填写 StructBERT 模型 API 地址(如 http://your-server:8000/v1/similarity)→ 请求体传入用户原始提问与所有标准问句 → 解析返回的最高相似分值 → 用「数值比较」节点判断是否 ≥ 0.93。
注意:若采用方法二,务必在请求头中携带 Authorization,否则调用将被拒绝。
配置去重后的分流路径
第一步:当语义相似度 ≥ 0.93 时,走「命中路径」→ 直接调用「语义注解回复」节点输出预设答案。
第二步:当相似度
第三步:将「未命中路径」末端的最终答案,自动同步写入语义注解库(需开启「自动收录」开关)。这能让系统持续学习新问法,避免同类问题下次再走长路径。
这一步操作起来很简单,直接在「LLM 回复」节点右侧勾选「同步至语义注解」即可,无需额外编码。











