必须使用Q&A分段模式并严格按“Q:”“A:”分行书写FAQ,确保每对问答独立成块;上传前需纯文本、UTF-8编码、禁用表格图片;启用混合检索并验证分块与召回效果。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在Dify中快速构建高精度FAQ问答系统,必须让每条“问题→答案”对独立成块并保留语义完整性,否则模型会把“如何重置密码?”和“重置后邮箱收不到验证码”混在同一向量里,导致检索错位、回答张冠李戴。
准备结构化FAQ文档
将原始FAQ整理为纯文本格式(.txt或.md),每组问答严格按“Q:”“A:”开头分行书写,中间空一行。例如:
Q: 账号被锁定怎么办?
A: 请访问登录页点击“解锁账号”,输入绑定手机号后按提示操作,5分钟内自动恢复。
Q: 订单支付失败有哪些原因?
A: 常见原因包括银行卡余额不足、支付通道临时维护、设备风险识别触发拦截。
⚠️ 注意:禁止使用表格、图片、超链接或Markdown嵌套列表——Dify的Q&A分段模式无法解析这些格式,会直接跳过整段内容。
单文件控制在2万字以内,超过则拆分为faq_part1.txt、faq_part2.txt。若原始数据来自Excel,先用公式拼接为“Q:”+A2+“\nA:”+B2格式,再复制粘贴为纯文本。
启用Q&A分段模式上传
登录Dify控制台→左侧【知识库】→【新建知识库】→填写名称(如“客服FAQ-QA模式”)→在【分块策略】下拉菜单中【必须选择“Q&A分段”】→点击【创建】。
进入该知识库→点击【上传文件】→拖入已准备好的.txt或.md文件→等待右上角状态变为“✅ 已完成处理”。
这一步操作起来很简单,但效果差异极大:Q&A分段模式会调用内置小模型,逐条识别“Q:”“A:”标记,把每个问答对切为独立chunk,确保“Q:怎么开发票?”永远和它对应的“A:…”绑定在同一向量中,不会被固定长度切片撕裂。
验证分块结果与手动修正
上传完成后,点击任一文档右侧的【查看分块】按钮。
检查前3个分块是否均为完整问答对。若出现“Q:退款时效是?”单独成块、无对应A:内容,说明原文本中A:行首有空格或用了全角冒号(:),需返回源文件修正。
发现错误分块时,不要点击【重新处理全部文件】——它只会用原文件再跑一遍Q&A识别,错误依旧。正确做法是:下载该文档→用记事本打开→删除所有全角符号和行首空格→保存为UTF-8编码→重新上传同名文件→勾选【覆盖已有文件】。
配置混合检索提升命中率
点击知识库右上角【设置】→【检索设置】→开启【混合检索】开关。
将“向量检索权重”设为70%,“关键词检索权重”设为30%。
在【元数据过滤】区域添加键值对:category: faq。后续应用调用时可加条件过滤,避免把产品手册里的技术参数混进FAQ回答里。
这一步做完,知识库就已具备精准匹配“忘记密码”“登不上账号”“密码输错锁定了”等不同表述的能力,同时还能准确抓取“FAQ-2024Q3”这类带编号的精确词条。
通过调试界面验证FAQ召回
第一步:进入【应用】→选择已关联该知识库的问答应用→点击【调试】。
第二步:在提问框输入“账号登录不了”,点击【运行】。
第三步:查看右侧【检索日志】面板,确认返回的3个chunk均来自你上传的faq_*.txt文件,且每个chunk都包含完整Q+A结构。
第四步:点开任一chunk右侧的【预览】,核对原文是否与你本地文件一致——如果显示乱码,说明上传时未用UTF-8编码保存,需重新上传。
第五步:观察回答内容是否直接引用了A:部分原文,而非泛泛而谈。若出现“建议您联系客服”之类模糊回复,说明Prompt中未强制约束“仅基于知识库作答”,需返回【提示词编排】补上对应指令。


















