
很多人在用扣子(Coze)做个人助理或者企业客服时,经常遇到一个头疼的问题:明明把几十页的文档传进了知识库,机器人回答时却还在胡说八道,或者回答“我不知道”。
我自己做过几十个针对不同业务场景的智能体。刚开始我也以为只要把资料一股脑扔进知识库就行,结果测试时准确率连 60% 都不到。后来经过反复测试和调优,我发现决定问答准确率的不是大模型有多聪明,而是知识库的数据切分与检索配置。只要掌握了正确的方法,把准确率做到 90% 以上并不困难。
今天我就把这套经过实际验证的完整操作流程写出来,带你从零开始做一套高精准的问答机器人。
第一步:清洗源文件,选对数据格式
很多人直接把排版复杂的 PDF 或者扫描件扔进扣子,这是最容易踩雷的坑。PDF 内部包含大量页眉、页脚、双栏排版和不可见的换行符,平台解析时很容易把一段话切得支离破碎。
先做格式清洗,然后把清洗后的内容导入扣子。这样做更好,因为纯净、结构清晰的文本能让切片算法准确识别段落边界。
在实际操作中,不同格式的文件对解析效果影响很大:
| 数据源格式 | 解析准确度 | 适用场景 | 常见避坑点 |
|---|---|---|---|
| Markdown (.md) | 高 | 规范的制度文档、操作手册、带有层级结构的技术说明 | 标题层级必须规范(#、##、### 一级级写,不要跳级) |
| 纯文本 (.txt) | 中高 | 短篇事实说明、无复杂排版的常见问题解答 | 缺少格式标记,长文容易丢失层级信息 |
| Excel / CSV | 高(需转表格库) | 产品参数对比表、价格表、员工通讯录、明确维度的结构化数据 | 单张表格不宜超过 50 列,表头命名必须直观,不要使用合并单元格 |
| Word (.docx) | 中 | 内部规章、公文、带轻度格式的说明书 | 尽量剔除浮动图片、复杂文本框以及多层嵌套表格 |
| PDF (扫描件/多栏) | 低 | 原生无电子版的文件 | 严禁直接上传未做 OCR 的扫描件,公式和双栏排版极易错位 |
我个人的处理习惯是:只要是文本类内容,统一用编辑器整理成 Markdown 格式。遇到产品规格参数,优先整理成结构化的 Excel 表格,以独立的“表格知识库”形式导入,而不是混在文章里。
第二步:配置分块策略,切碎不如切准
把文件传上去之后,扣子会要求你选择分片策略。很多人直接默认一路点击“下一步”,这是导致回答答非所问的核心原因。
系统默认的切片往往机械地按照字符数硬切,常常把一个关键结论的上半句留在上一个切片,下半句甩到下一个切片,上下文直接脱节。
而且,切片大小直接决定了召回的精准度。切片过长,无关内容太多,会稀释核心信息;切片过短,模型看不懂语境。
| 分块策略 | 单块长度推荐 | 重叠度 (Overlap) | 优缺点分析 | 最佳适用场景 |
|---|---|---|---|---|
| 自动分块 | 平台默认 | 默认设置 | 省事,但经常在关键句子中间硬生生切断,破坏语义连贯性 | 仅适合快速验证 DEMO,不建议生产环境使用 |
| 自定义切分(按标识符) | 500 – 800 字符 | 10% – 15%(约 50-80 字) | 兼顾上下文完整与检索精准度,重叠区域能保住跨切片的关联信息 | 绝大多数企业规范、业务手册、知识指南 |
| QA 问答对切分 | 1 问 + 1 答(完整) | 0 | 问答匹配度最高,语义指向明确,极少出现多余噪音 | 客户常见咨询、售后排障字典、客服标准话术库 |
| 按层级/标题切分 | 视章节字数而定 | 少量重叠 | 结构语义完整,但若某小节字数过长可能超出单次检索承载 | API 文档、条款清晰的法律规章 |
具体操作建议:
先选择自定义切分。把分块最大字符数设置为 600 字符,重叠字符数设置为 60 字符,分段标识符选择双换行符。
如果是售后问答库,直接把文档整理成“Q: 怎么退货?nA: 在个人中心点击申请售后…”这种问答对,上传时选择按问答分段。这样做可以让检索时的问题与知识库片段产生更高的向量相似度。
第三步:调优检索策略与召回参数
分块完成后,把知识库关联到智能体(Agent)。这时候必须进入知识库的高级召回设置,配置匹配规则。
在扣子中,搜索策略分为三种:语义检索、全文检索和混合检索。
| 检索方式 | 底层机制 | 优势 | 缺陷 | 推荐配置场景 |
|---|---|---|---|---|
| 语义检索 (Vector) | 向量空间相似度计算 | 能理解近义词、同义词和自然语言的语义转述 | 对专有名词、特定型号、数字代码不敏感,容易张冠李戴 | 咨询意图多变的日常问答、口语化提问 |
| 全文检索 (Keyword) | 关键词倒排索引 (BM25) | 对精确型号、特定代号、专业技术词汇 100% 精确捕获 | 无法处理近义词,一旦用户输入错别字或换个说法就无法命中 | 查物料编码、法律特定法条编号、错误代码 |
| 混合检索 (Hybrid) | 向量 + BM25 综合排序 | 既能识别用户口语化表达,又能牢牢锁死专有名词和型号 | 运算开销相对高一点点,但整体效果最稳健 | 绝大多数严肃问答场景的首选方案 |
除了选定混合检索,还要重点调整以下核心参数:
1.Top K(召回分段数):建议设置为 3 到 5。如果设得太大(比如设为 10),塞给大模型的内容太多,不仅消耗 Token,还会引入噪声干扰模型判断;如果设为 1,一旦第一名不够精准,机器人就直接瞎编。
2.最低匹配度(Score Threshold):建议设置为 0.65 到 0.75 之间。一定要设置过滤阈值,避免把毫不相干的低分切片送进大模型。
3.开启查询重写(Query Rewrite):当用户在第二轮对话中问“那它的价格呢?”,如果直接拿这句话去查知识库,不可能查出任何结果。开启重写后,系统会结合上下文自动把问题补全为“某某产品的价格是多少?”,检索命中率直接翻倍。
第四步:写好防幻觉系统提示词(Prompt)
做完检索配置,最后一道防线是智能体的人设与提示词。如果不给模型立规矩,即便知识库检索不到内容,大模型也会靠着自己的通用预训练常识自由发挥,这就是幻觉的来源。
在智能体的“人设与回复逻辑”中,不要写假大空的话,直接给出清晰、具体的约束规则。你可以直接参考这个模板结构:
# 角色
你是一个专业的产品支持助手,负责根据知识库内容解答用户提问。
# 工作流程
1. 仔细阅读检索到的知识库参考内容。
2. 先判断参考内容中是否包含回答用户问题所需的关键事实。
3. 如果包含,直接提炼事实给出准确、简明扼要的答案,不添加多余说明。
4. 如果参考内容完全没有提及,直接回复:“抱歉,当前知识库中没有记录关于此问题的相关信息,请联系人工客服核实。”,绝对不要结合自身记忆进行猜测或编造。
# 回复限制
- 回答必须严格基于知识库事实,严禁脱离参考内容自由发挥。
- 涉及数据、价格、操作步骤时,必须与知识库原文完全一致。
- 语气保持客观、专业、直接。
在这套规则约束下,大模型就变成了一个“只认事实的总结归纳员”,而不是信马由缰的创作者。
第五步:测试与排错闭环
做完前面四步,不要急着发布。建立一个包含 15 到 20 个真实问题的测试集,在调试预览区逐个测试。
测试时如果发现回答错误,不要盲目去改提示词,先按以下两步诊断原因:
第一步,查看右侧调试面板中的召回切片。看系统有没有检索出正确的文档段落。
如果根本没有召回正确段落,或者召回的都是不相关的废话,说明问题出在前面:要么是文件切片切得不对,导致关键词被拆散;要么是检索策略没开混合检索;要么是关键词没有命中。回去重新调整切片大小和检索配置。
第二步,如果召回切片完全正确,但模型的输出依然错误,这说明检索没有问题,问题出在大模型的阅读理解或提示词约束上。这时再去调整提示词中的限制说明,或者在提示词中加入两个真实问答样例(Few-Shot),引导模型按标准格式提取信息。
做知识库智能体就像整理仓库:先分类打包,再编好目录标签,最后让仓库管理员照单取货。把这些具体步骤执行到位,机器人的专业度和精准度就会有质的变化。
原创文章,作者:七点互动,如若转载,请注明出处:https://ai.qidianhudong.com/aiyy/4414.html