本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版。
什么是分段?#
导入知识库的文档会被拆分为较小的片段,称为 分段。分段的概念类似于将一本大书整理成章节和段落,你无法在一大块文本中快速找到特定信息,但组织良好的章节能使检索变得高效。
当用户提出问题时,系统会在这些分段中搜索相关信息,并将其作为上下文提供给 LLM。如果没有分段,每次查询都需要处理整个文档,这将既缓慢又低效。
关键分段参数
-
分隔符:文本被拆分的字符或字符序列。例如,
\n\n在段落换行处拆分,\n在行换行处拆分。Note分隔符在分段过程中会被移除。例如,使用
A作为分隔符会将CBACD拆分为CB和CD。为避免信息丢失,请使用文档中不会自然出现的非内容字符。
-
分段最大长度:每个分段的最大字符数。超过此限制的文本将被强制拆分,无论分隔符设置如何。
通用模式与父子模式#
知识库创建后,分段模式无法更改。但分隔符和分段最大长度等分段设置可以随时调整。
模式概述#
在通用模式下,所有分段共享相同的设置。匹配的分段将直接作为检索结果返回。
分段设置
除了分隔符和分段最大长度外,你还可以配置 分段重叠长度 来指定相邻分段之间重叠的字符数。这有助于保持语义连接,防止重要信息被拆分到不同的分段边界。
例如,设置 50 个字符的重叠,一个分段的最后 50 个字符也会出现在下一个分段的前 50 个字符中。
在父子模式下,文本被拆分为两层:较小的 子分段 和较大的 父分段。当查询匹配到子分段时,其整个父分段将作为检索结果返回。
这解决了一个常见的检索困境:较小的分段能够实现精确的查询匹配但缺乏上下文,而较大的分段提供丰富的上下文但降低了检索准确性。
父子模式兼顾两者:以精准检索,以上下文响应。
父分段设置
父分段可以在 段落 或 全文 模式下创建。
文档根据指定的分隔符和分段最大长度被拆分为多个父分段。
适用于结构良好的长文档,其中每个部分都能独立提供有意义的上下文。
整个文档作为单个父分段。
适用于小型、内容紧密的文档,其中完整的上下文对于理解任何具体细节都是必要的。
在 全文 模式下:
-
仅处理前 10,000 个 token。超出此限制的内容将被截断。
-
父分段创建后无法编辑。如需修改,必须上传新文档。
子分段设置
每个父分段会使用其自己的分隔符和分段最大长度设置进一步拆分为子分段。
避免为父分段和子分段使用互为子集的分隔符,因为这可能导致意外的分段行为。
例如,推荐使用 ?? 和 ##,而不是 ?? 和 ?。
快速对比#
| 维度 | 通用模式 | 父子模式 |
|---|---|---|
| 分段策略 | 单层:所有分段使用相同设置 | 双层:父分段和子分段分别设置 |
| 检索流程 | 匹配的分段直接返回 | 子分段用于匹配查询;父分段返回以提供更广泛的上下文 |
| 兼容的索引方式 | 高质量、经济 | 仅高质量 |
| 最佳适用场景 | 简单、独立的内容,如术语表或常见问题 | 信息密集型文档,如技术手册或研究论文,上下文很重要 |
分段前的文本预处理#
在将文本拆分为分段之前,你可以清理无关内容以提高检索质量。
-
替换连续的空格、换行符和制表符
-
三个或更多连续换行符 → 两个换行符
-
多个空格 → 单个空格
-
制表符、换页符和特殊 Unicode 空格 → 普通空格
-
-
删除所有 URL 和电子邮件地址
Info此设置在 全文 模式下被忽略。
预览分段#
点击 预览 查看你的内容将如何被分段。将显示有限数量的分段供快速审阅。
如果结果与你的预期不完全匹配,请选择最接近的配置,你可以稍后手动微调分段。详情请参阅维护知识库内容。
对于多个文档,点击预览面板顶部的文件名以在它们之间切换。