说到底,想让扣子知识库真正理解你的文档、精准召回信息,可不是上传完成就万事大吉那样简单——这背后是一套环环相扣的准备工作。分段逻辑错了、清洗规则太松、字段还没对齐,后续提问时,模型大概率会答非所问,甚至漏掉最要紧的关键点。

上传前必须做的三件事
先打开那份原始文档,用记事本或Word看一眼它的真实结构。如果全文就是纯段落堆叠,没有一点标题层级,就别硬选「按标题分段」——选了也是白费功夫。反过来,如果每一段都带着编号,像「1.」「②」「(三)」这种,那它们就是天然的分段标识符,一定要在清洗页面里手动填进去。
接着,把文档里所有无关内容清干净。页眉页脚、重复出现的水印、扫描件OCR留下的乱码、编辑备注括号(比如【待确认】)、作者署名行,这些通通得删。它们混在正文里,会污染向量切片,让模型误判语义边界,结果就是召回内容变得莫名其妙。
清洗前还有一个关键动作:务必另存为UTF-8编码的TXT文件。这个习惯要养成,特别是当原文来自微信公众号复制粘贴、Notion导出或PDF OCR时,那些隐藏的格式控制符(比如零宽空格、软回车)最容易导致分段错位,而且肉眼根本看不见,排查起来很头疼。
分段设置实操指南
进入知识库创建流程,上传文件后点击「下一步」,在「数据清洗」页面操作。
方法一:自动分段(适合结构清晰的长文)
直接启用「自动分段与清洗」,系统会按语义断句。但有一个坑必须留意:如果原文的平均段落长度明显偏短,比如全是三十字以内的要点罗列,自动模式会把它们硬凑成一个大段落,这样一来,信息的精细度就全毁了。
方法二:自定义分段(推荐用于笔记、SOP、FAQ类内容)
关闭自动模式,分段标识符填「。!?;」,分段最大长度设为300,勾选「去除空白行」,然后点击「预览分段效果」。你会看到每句话独立成块,检索时单句命中率远高于拼接段落。
方法三:强制按换行分段(仅限纯文本清单)
标识符填「n」,最大长度留空,预处理规则中取消勾选「合并连续空白行」。这招专治从Excel复制过来的条目列表,确保每一行都是一个独立的知识点,不会被吞掉换行符。
字段对齐:让知识库记住“这是什么”
当你要上传多份同类文档(比如10篇产品说明书)时,必须统一字段结构。进入「添加文档」页面后,先别急着点「上传」,先点一下「添加字段」:
① 第一个字段:字段名填「适用机型」,类型选「单行文本」,值来源选「从文档中提取」→ 在弹窗里输入正则表达式 适用机型[::]\s*(\S+),然后测试提取结果是否准确;
② 第二个字段:字段名填「故障代码」,类型选「多行文本」,值来源选「手动填写」→ 后续每上传一份说明书,都补上对应的代码列表;
③ 第三个字段:字段名填「更新日期」,类型选「日期」→ 手动填入文档的实际发布日,不是你上传当天的日期。
需要特别强调的是,字段一旦保存,后续所有上传的文档都必须填写完整。如果有文档没填全,它在知识库中就无法被按字段过滤或排序,等于半废状态,白白浪费了上传的功夫。
验证召回效果的两个动作
等到知识库状态变成「已就绪」,别急着接入Bot。先做两件事,验证一下效果。
在知识库详情页点击「测试查询」,输入一个冷门但明确的术语——比如文档里只出现过一次的某个型号缩写。看看返回的片段是否包含上下文完整的句子,而不是孤零零的一个词。这个测试能直观地告诉你,模型是否真的理解了文档的语义边界。
然后,打开「分段管理」页,随机点开3个分段,检查顶部显示的「来源文档名」和「位置」是否真实存在。如果显示的是「unknown_001」或者页码为0,那就说明原始文件的编码或结构有问题,必须退回第一步重新处理。这一步虽然简单,但能帮你省下后续大量的排查时间。
