⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考英文原版。
什么是分段?
导入知识库的文档会被拆分为较小的片段,称为分段。分段的概念类似于将一本大书整理成章节和段落——你无法在一大块文本中快速找到特定信息,但组织良好的章节能使检索变得高效。 当用户提出问题时,系统会在这些分段中搜索相关信息,并将其作为上下文提供给 LLM。如果没有分段,每次查询都需要处理整个文档,这将既缓慢又低效。 关键分段参数-
分隔符:文本被拆分的字符或字符序列。例如,
\n\n在段落换行处拆分,\n在行换行处拆分。分隔符在分段过程中会被移除。例如,使用A作为分隔符会将CBACD拆分为CB和CD。为避免信息丢失,请使用文档中不会自然出现的非内容字符。 - 分段最大长度:每个分段的最大字符数。超过此限制的文本将被强制拆分,无论分隔符设置如何。
通用模式与父子模式
知识库创建后,分段模式无法更改。但分隔符和分段最大长度等分段设置可以随时调整。
模式概述
- 通用模式
- 父子模式
在通用模式下,所有分段共享相同的设置。匹配的分段将直接作为检索结果返回。分段设置除了分隔符和分段最大长度外,你还可以配置分段重叠长度来指定相邻分段之间重叠的字符数。这有助于保持语义连接,防止重要信息被拆分到不同的分段边界。例如,设置 50 个字符的重叠,一个分段的最后 50 个字符也会出现在下一个分段的前 50 个字符中。
快速对比
| 维度 | 通用模式 | 父子模式 |
|---|---|---|
| 分段策略 | 单层:所有分段使用相同设置 | 双层:父分段和子分段分别设置 |
| 检索流程 | 匹配的分段直接返回 | 子分段用于匹配查询;父分段返回以提供更广泛的上下文 |
| 兼容的索引方式 | 高质量、经济 | 仅高质量 |
| 最佳适用场景 | 简单、独立的内容,如术语表或常见问题 | 信息密集型文档,如技术手册或研究论文,上下文很重要 |
分段前的文本预处理
在将文本拆分为分段之前,你可以清理无关内容以提高检索质量。-
替换连续的空格、换行符和制表符
- 三个或更多连续换行符 → 两个换行符
- 多个空格 → 单个空格
- 制表符、换页符和特殊 Unicode 空格 → 普通空格
-
删除所有 URL 和电子邮件地址
消除很少有助于有效检索的 URL 和电子邮件地址。此设置在全文模式下被忽略。
启用摘要自动生成
仅适用于自托管部署。