故障排查官方文档8 分钟阅读交互模块页

知识库分块与索引设置估算器:自动与自定义两种模式下每个参数的实际取值

调整处理方式与分块参数,看自动与自定义两种模式下每个参数实际生效的值,以及预计生成的分块数与索引条数。

上传文档之前要定两个数:一段内容切多长,以及为每段建多长的索引。这两个数在界面上都能填,但填进去的值不一定就是最终生效的值 —— 处理方式与设置方式会改写其中一部分。下面这个模块把改写关系摊开:选好处理方式与设置方式,每一项的实际取值、被改写的项、预计的分块数与索引条数都会跟着变。

这几个设置什么时候必须认真定

文档量小、内容形态单一的时候,分块与索引用默认值就够了,不值得花时间调。需要认真定的是下面几种情况。

第一种是单个文件很长而内容密度不均,比如一份几百页的手册里既有目录也有参数表。按固定长度切会把参数表切断,检索时召回半张表,模型看不出完整的字段含义。

第二种是文档带明确结构,比如按章节组织的规范文件或标准。这类文档按段落切能保住结构,按长度切会跨越章节边界,召回时容易把两个不相关章节的内容拼在一起。

第三种是准备走问答拆分。问答拆分会调用大模型把原文改写成问答对,它的分块长度上限和索引长度都与直接分段不同,而且索引长度这一项在这种处理方式下会被改写,界面上填的值不会生效。

第四种是批量导入之前想先估一下要建多少条索引。索引条数直接决定向量库的存储量与建索引的耗时,量级如果差一个数量级,导入过程中的资源占用会完全不同。

交互模块:分块与索引设置估算

选择处理方式与设置方式,填入文件数与平均字数,模块会算出每一项实际生效的取值、哪些项被改写,以及预计的分块数与索引条数。

取值口径 v4.16.2核验日 2026-09-09索引长度 512分块长度下限 64
分块条数未提供
索引条数未提供
生效分块长度1000

按字数估算

各参数实际生效的值
参数参数名生效值状态
分段方式chunkSplitMode按段落被改写
段落 AI 识别paragraphChunkAIMode禁用被改写
段落深度paragraphChunkDeep5被改写
段落最小长度paragraphChunkMinSize100被改写
分块长度chunkSize1000被改写
索引长度indexSize512被改写
自定义分隔符chunkSplitter未提供被改写
分块长度下限minChunkSize64固定值

两种设置方式下各参数的实际取值

这张表是上面模块的完整取值依据,也可以直接对照使用。「自动」一列里写「强制」的项,表示界面上的所设值不会生效。

参数设置方式为「自动」时设置方式为「自定义」时
分段方式 chunkSplitMode强制为「按段落」按所选值
段落 AI 识别 paragraphChunkAIMode强制为「禁用」按所选值
段落深度 paragraphChunkDeep强制为 5分段方式为「按段落」时用所设值,其他方式一律置 0
段落最小长度 paragraphChunkMinSize强制为 100按所设值
分块长度 chunkSize问答拆分取模型默认长度(上限 8000),其他处理方式取 1000取所设值与「模型上下文长度、4000 取大者」两者之中的较小值
索引长度 indexSize问答拆分取向量模型的最大长度,其他处理方式取向量模型的默认长度(均为 512)问答拆分下仍被改写为向量模型最大长度,所设值不生效
自定义分隔符 chunkSplitter被清空按所填值
分块长度下限 minChunkSize6464

自动与自定义的差别,比界面上看起来的大

两种设置方式的差别不止于「几个输入框能不能编辑」。选择自动之后,分段方式被固定为按段落、段落 AI 识别被固定为禁用、段落深度固定为 5、段落最小长度固定为 100,这四项与界面上的显示无关。

更容易被忽略的是自定义分隔符。在自动方式下,这一项会被清空。所以如果先在自定义方式下填好了分隔符,之后又把设置方式切回自动,那个分隔符不会保留,而界面上不会提示这件事。需要用分隔符切分的文档,设置方式必须留在自定义。

自定义方式下也有两条改写规则。一条是分块长度会被模型上限截断,上限取「模型上下文长度」与 4000 之中的较大值,所设值超过上限时按上限生效。另一条是段落深度:只有分段方式选了按段落时才使用所设的深度值,选按长度或按分隔符时这一项被置为 0,界面上填过的深度不再起作用。

三种典型情况怎么设

结构清晰的长文档,比如产品手册、规范、标准。设置方式选自动即可,它会按段落切分并保留结构,段落深度 5 对多层标题的文档足够。如果检索时发现召回的内容经常跨章节,再切到自定义把段落深度调深。

格式统一的半结构化文档,比如按固定分隔符导出的记录、问答对文件。设置方式必须选自定义,分段方式选按分隔符,并填入实际使用的分隔符。这种情况下段落深度会被置 0,属于预期行为,不需要处理。

打算走问答拆分的文档。分块长度会按大模型的默认长度来,上限是 8000,比直接分段的 1000 大很多,因为要给模型足够的上下文去生成问答对。索引长度这一项在这种处理方式下取向量模型的最大长度,界面上填的值不生效,所以不用在这一项上花时间。

分块数与索引条数怎么估

分块数的估法是总字数除以实际生效的分块长度。这里要用实际生效的值,不是界面上填的值 —— 上面那张表里被改写的项,改写之后的数才是分母。按段落切分时实际分块数通常比这个估值多一些,因为段落边界不会正好落在长度上限处,一段不足长度上限时也会单独成块。

索引条数至少等于分块数:每一个分块默认建一条索引。如果为某些内容补了自定义索引,那部分内容的索引条数会成倍增加,一个分块配三条自定义索引就是三条。所以补自定义索引时要算一下总量,它比分块数增长得快。

这两个数决定三件事的量级。一是向量库的占用,它随索引条数与所用向量模型的维度一起增长,换一个维度更高的向量模型会成比例变大。二是建索引的耗时与调用量,每一条索引都要过一次向量模型。三是问答拆分的模型调用量,它按分块数计算,而问答拆分的分块长度上限比直接分段大得多,所以同一批文档走问答拆分时分块数会明显少于直接分段。

批量导入之前把这三个量级估出来,比导入过程中发现资源不够再中断要省事。尤其是首次导入大批文档时,先拿其中十几个文件跑一遍,用实际生成的分块数反推整批的量,比按公式估更准。

常见的三个误判

第一个是把分块长度调大当成提升召回精度的手段。分块变长之后单块内容更完整,但每一块里包含的主题也更多,语义检索时相似度会被无关内容摊薄。这两个方向哪个更划算取决于文档形态,调之前先在小批量上试。

第二个是把索引长度理解为分块长度。这是两个不同的量:分块长度决定一段内容有多长,索引长度决定为这段内容建索引时截取多长。索引长度的可选值是固定的十四档,而且会按向量模型的上限过滤,超过模型上限的档位在界面上不会出现。

第三个是分块长度设得过小。系统的分块长度下限是 64,低于这个值不会生效;而实际使用中长度过小会让每一块都缺少上下文,召回之后模型拿到的是碎片,反而更容易答错。

版本差异与失效说明

本页取值来自 v4.16.2。分块与索引的相关取值在这个版本与开发分支上一致,但索引长度的默认值与可选范围取决于所使用的向量模型的配置,更换向量模型之后需要重新确认。处理方式的可选项在版本之间有增减,升级后请以所部署版本为准。

继续阅读

本页参数与判定规则取自 FastGPT 开源仓库 v4.16.2,核验日 2026-09-09。

参考资料