花十分钟搭一个能用的知识库问答(Dify/Coze实测)
手把手用低代码平台搭建企业内部知识库问答:文档预处理、分段策略、召回参数调优、评测与上线,附常见失败原因排查表。
目标设定
这篇的目标很具体:用低代码平台,做一个能回答内部制度问题的机器人,准确率在一周内达到可上线水平。
不追求通用,不追求炫技。三个限定条件:文档量在200份以内、用户是内部员工、允许拒答。
第一步:先别急着传文档
90%的知识库项目失败在第一步。上传一堆PDF之前,先做三件事:
1. 盘点文档的真实状态。 导出你的文档目录,标出四类:可以用、要清理、要重写、根本不该进知识库。实践中”要清理”的往往占一半——旧版本、草稿、互相矛盾的制度文件。
2. 确定”权威版本”。 同一件事有三份文件是常见情况。必须先定哪一份说了算,否则模型会给你三个答案。
3. 选20个真实问题做测试集。 从群里翻最近三个月的提问,挑20个,写出标准答案。没有测试集,后面所有调优都是玄学。
第二步:文档预处理
这一步比模型选择重要得多。
- PDF转文本后必须人工抽查:扫描件、双栏排版、表格是重灾区。转出来是一堆乱码的文档,不如不放。
- 表格单独处理:制度里的假期天数、报销标准大多是表格。建议转成Markdown表格或直接写成FAQ对,不要交给默认切片。
- 加上元数据:每份文档至少标注部门、生效日期、文档类型。后面过滤时非常有用。
第三步:分段策略
默认分段(按固定字数切)在制度类文档上表现很差。建议:
| 文档类型 | 分段方式 | 段长 |
|---|---|---|
| 制度条款 | 按章节/条款切 | 400–600字 |
| FAQ | 一问一答为一段 | 不强求长度 |
| 操作手册 | 按步骤切 | 300–500字 |
| 表格 | 转结构化或逐行转文本 | — |
关键原则:每一段单独拿出来读,应该是一个完整意思。 如果一段话离开了上下文就读不懂,说明切错了。
重叠部分建议10%–15%,不要太多,否则检索时会出现三条几乎一样的召回结果。
第四步:召回参数调优
低代码平台通常暴露这几个参数:
- Top-K:初值设4。太小容易漏,太大引入噪音。制度类问题一般3–5够用。
- 相似度阈值:这条最有用。设一个下限,让低置信度的检索直接触发”我没找到相关规定”的回复,而不是硬编。
- 混合检索:如果平台支持关键词+向量混合,一定打开。制度里的专有名词(“OA”、“专项奖”)向量检索经常召不回来。
第五步:提示词设计
系统提示词只要做三件事:
1. 只能基于提供的资料回答,资料中没有的内容明确说"未找到相关规定"
2. 引用时注明来源文档和章节
3. 遇到需要审批/决策的问题,引导联系具体部门,不要给建议
第三条最容易被忽略。制度问答里最危险的不是答错,而是模型基于部分条款给出一个听起来合理的”操作建议”。
第六步:评测与上线
用第一步的20个问题跑一遍,按四类记录:
- 答对且带引用:合格
- 答对但没引用:可接受,但去查为什么没召回来源
- 拒答:查是文档缺失还是检索失败
- 答错:最高优先级,逐条看召回内容
合格线建议设在答对率≥85%,答错率≤3%。答错比拒答严重得多。
常见失败原因排查表
| 现象 | 可能原因 | 处理 |
|---|---|---|
| 总是答”未找到” | 阈值过高 / 分段过大 | 降阈值,缩小段长 |
| 答案来自旧文件 | 没做元数据过滤 | 加生效日期过滤 |
| 引用错章节 | 元数据没写入段 | 重新导入并带元数据 |
| 答得对但没有细节 | Top-K太小 | 提到6–8 |
| 回答自相矛盾 | 同一问题多份文档 | 清理冲突文档 |
| 专有名词召回失败 | 纯粹向量检索 | 开混合检索 |
第七步:持续维护
上线不是终点。建议加一个”未解决问题”收集入口,每周看一次。员工问了但答不上的问题,就是知识库最大的价值缺口。
另外,文档更新后要触发重新索引。很多团队忘了这一步,导致机器人一直在说三个月前的旧规定。
结语
知识库问答的技术门槛已经很低,真正的门槛在文档治理和评测上。这两件事没有任何AI能替你做,但它们决定了项目成败。花两小时整理文档,胜过花两天调参数。