在 Dify 中,“关键词优化”通常涉及两个层面:一是优化用户输入的查询关键词,以提升知识库检索的准确性;二是优化知识库本身的内容关键词,以提高被检索到的概率。以下是针对不同场景的实用技巧。
🔍 场景一:优化用户输入(查询侧)
此场景的目标是让用户的提问能更精准地命中知识库内容。
1. 使用精准、具体的词汇
避免宽泛、口语化的提问,使用与知识库中一致的专有名词和短语。
不佳示例:
咋退款、东西坏了咋办优化示例:
退款流程、产品故障如何报修
2. 组合核心关键词
将问题的核心要素拆解为关键词进行组合搜索,效果通常优于长句。
长句提问:
我想问一下这个软件在苹果电脑上能不能用关键词组合:
软件名称 + macOS + 兼容性
3. 在 Prompt 中规范提问方式(适用于 Chatflow)
如果你使用的是 Chatflow,可以在系统提示词中引导用户提供结构化信息,例如:
text
请尽量使用产品名称、功能模块、具体问题点来描述您的需求,例如:“XX软件在Windows11上无法启动”。
4. 开启查询扩展 (Query Expansion)
Dify 的某些版本支持“查询扩展”功能,它会利用 LLM 自动将用户的简短提问扩展为多个语义相似的查询,从而提升召回率。建议开启此功能,尤其适用于用户提问较为随意的场景。
✍️ 场景二:优化知识库内容(文档侧)
此场景的目标是让知识库内容更容易被正确的关键词检索到。
1. 在文档中显式列出关键词
在文档开头或结尾,以“关键词:”的形式列出核心词汇及其同义词。这能帮助 Embedding 模型更好地理解文本主题。
text
关键词:退款、退货、售后、Return、Refund
2. 统一并规范专业术语
确保同一概念在全站文档中使用统一的名称。例如,确定统一使用“工作台”,而不是混用“操作台”、“控制面板”等词汇。
3. 使用列表和标题结构化内容
清晰的层级结构有助于 Dify 更准确地进行文本分段和语义理解。使用###创建小标题,并使用列表来罗列关键信息。
⚙️ 场景三:优化检索策略(系统配置侧)
通过调整 Dify 的检索设置,可以从技术层面提升关键词匹配的效果。
1. 优先使用「混合检索」
在知识库设置的“索引模式”中,选择“高质量模式”并启用混合检索(向量检索 + 关键词检索)。这能同时确保语义理解和精确的关键词匹配。
向量检索:理解语义,如“设备损坏”匹配“故障报修”。
关键词检索 (BM25):精确匹配,如“Model-X”等专有名词。
2. 调整检索阈值与 TopK
检索阈值 (Score Threshold):设定一个相似度下限(如 0.6),过滤掉低质量结果。建议从默认值(如 0.7)开始测试,根据效果微调。
TopK:控制返回的结果数量。若结果过少,可适当提高(如从 3 增至 5);若结果太杂,则降低该值。
3. 启用 Rerank 模型
如果 Dify 版本支持,强烈建议开启Rerank 模型。它能在混合检索的基础上,对返回的结果进行二次精排,将最相关的文档置顶,显著提升准确率。
4. 配置同义词与自定义词典
同义词映射:在系统或预处理脚本中建立映射关系,如
{“手机”: [“智能手机”, “移动电话”]}。自定义词典:对于“OAuth2.0”等特殊术语,将其加入分词器的自定义词典,可防止被错误切分。
🤖 场景四:在 Agent 中动态优化关键词
如果你在使用 Agent 模式,可以让 LLM 参与关键词的优化过程。
意图提取:让 Agent 先分析用户问题,提取核心意图和实体。
关键词扩展:基于提取的意图,调用同义词库或使用 LLM 生成扩展关键词。
动态检索:使用优化后的关键词列表进行知识库查询。
Agent 优化流程示例:
text
用户输入 → 提取核心意图 → 扩展同义词/相关词 → 使用新关键词检索知识库 → 生成最终回答
💡 总结:关键词优化 Checklist
你可以参照以下清单,系统性地优化 Dify 的关键词策略:
用户侧:引导使用规范、完整的关键词提问。
知识库侧:文档中明确列出关键词,并保持术语统一。
配置侧:开启混合检索、合理设置阈值与 TopK、启用 Rerank 模型。
高级侧:为 Agent 配置关键词扩展和动态优化逻辑。