提升扣子知识库分块质量需兼顾语义完整性与信息密度:识别语义边界(标题、空行、横线等),按主谓结构或信息单元拆分,控制字符数380~420,扁平化嵌套列表,并注入type标签、核心实体及双向ref锚点。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

提升扣子知识库的分块质量直接影响问答召回率,分块过大导致关键信息被淹没,分块过小则破坏语义连贯性,造成片段孤立、上下文断裂。
明确知识文档的语义边界
先通读原始文档,识别自然段落中的主题切换点——比如章节标题、空行分隔、列表起始、问题-答案对的显式标记。这些不是格式装饰,而是作者埋下的语义锚点。
遇到技术文档中“配置步骤”与“常见报错”之间用横线分隔,必须将横线视为分块分界,【跨横线合并会导致召回时无法匹配用户‘报错’类提问】。
对无明显分隔的长段落,按句子主干拆分:每个独立主谓结构(尤其含动词+宾语或判断谓语)可单独成块,但需检查前后句是否存在指代关系(如“该参数”“上述方法”),有则必须合并。
控制单块文本长度与信息密度
方法一:字符数硬约束法
设定上限为380~420字符(含标点与空格),超出即切分。优先在句号、分号、冒号后切,避免在逗号、顿号后硬截断。
方法二:信息单元打包法
识别最小完整信息单元:一个定义(含术语+解释)、一个操作指令(含动作+对象+条件)、一个错误现象+原因+解决方案,三者任一构成一块。不追求字数均等,而求信息自足。
方法三:嵌套结构扁平化
遇到带编号的多级列表(如1.1.2),展开为独立块:“1.1.2 启用调试模式 → 在 config.yaml 中将 debug 设为 true → 重启服务生效”,删除层级缩进,保留逻辑动词链。
注入结构化元数据提升召回权重
第一步:为每块添加 type 标签
在块首行手动插入【type:config】【type:troubleshoot】【type:api_ref】等,标签必须与内容严格一致,错标会导致路由失效。
第二步:提取核心实体并标注
在块末尾添加 #entity:MySQL #entity:timeout_error 这类标签,实体须来自用户真实提问高频词,而非泛泛的“数据库”“错误”。
第三步:设置显式关联锚点
若某块解释了“access_token 过期”,则在块内写入 ←ref:auth_flow→,并在“认证流程”块中对应位置写 →ref:token_expire←。双向锚点让系统在召回时触发链式检索。











