跳到主要内容

分块策略

分块策略决定了文档如何被分割成小块以便于检索。选择合适的分块策略可以显著提高检索质量。


📊 策略概览

策略适用场景特点
智能分块通用文档自动识别文档结构
句子分块精确检索按句子边界分割
语义分块复杂文档基于语义相似度分割

🧠 智能分块

智能分块是默认策略,能够自动识别文档结构并进行合理分割。

工作原理

  • 识别段落、标题、列表等结构
  • 保持语义完整性
  • 自动调整分块大小

适用场景

  • 结构化文档(如技术文档、报告)
  • 混合内容文档
  • 大多数通用场景

配置参数

参数描述默认值
chunk_size目标分块大小(字符数)500
chunk_overlap分块重叠大小50

📝 句子分块

句子分块按句子边界分割文档,适合需要精确检索的场景。

工作原理

  • 识别句子边界(句号、问号、感叹号等)
  • 将相邻句子组合成分块
  • 保持句子完整性

适用场景

  • FAQ 文档
  • 问答对内容
  • 需要精确匹配的场景

配置参数

参数描述默认值
separator句子分隔符.!?
buffer_size句子缓冲数量1

🔗 语义分块

语义分块基于内容的语义相似度进行分割,适合复杂文档。

工作原理

  • 计算相邻文本的语义相似度
  • 在语义变化点进行分割
  • 保持主题连贯性

适用场景

  • 长篇文章
  • 主题多样的文档
  • 需要保持上下文连贯的场景

配置参数

参数描述默认值
breakpoint_threshold语义断点阈值0.5
buffer_size上下文缓冲大小1

📑 Excel 文件

Excel 文件(.xlsx)始终按整行分块,与所选策略无关:行是表格的最小语义单位,不会被从中间切断。

工作原理

  • 每个工作表独立分块,保留 Sheet 名、物理行号和列号(Sheet 名中的换行会被折叠为空格,防止伪造行内容)
  • 多个完整行打包到同一分块,直到达到分块大小上限
  • 超过上限的单行按单元格拆分;超过上限的单个单元格值拆分为带坐标的片段,可完整重建
  • 字符重叠(chunk_overlap)不适用于 Excel
  • 公式单元格同时索引公式表达式与缓存计算结果(若工作簿保存时已计算),按公式或按结果检索均可命中

注意事项

  • 语义分块对 Excel 不生效,会自动按行分块
  • 分块大小(chunk_size)同时约束两种文本形态:嵌入文本(可读行 + Worksheet 上下文行)与展示文本(canonical 行 + Sheet 头),两种前缀各自计入分块大小,而不是额外叠加(超长 Sheet 名会截断加省略号,正常文件受 Excel 31 字符工作表命名上限约束)。文件级来源不进入嵌入文本,由检索结果的文件标题与文档范围过滤承担
  • 行数据优先于上下文:在接近下限的极小分块预算下,若保留 Sheet 前缀会导致单元格片段放不下,会丢弃前缀保住数据完整性(空 Sheet 名同样省略前缀)
  • 分层分块时,父块和子块都按整行打包
  • 分块方式由文件真实内容决定:无论知识库配置的文件类型是什么,实际为 Excel 的文件始终按行分块。仅样式数据损坏的工作簿会跳过样式后重试读取,其余无法解析的损坏工作簿会显式报错,不会静默降级

⚙️ 通用配置

分块大小

分块大小影响检索的精度和召回率:

大小优点缺点
小分块 (200-300)精确匹配可能丢失上下文
中等分块 (400-600)平衡精度和上下文通用选择
大分块 (800-1000)保留更多上下文可能包含无关内容

分块重叠

重叠可以避免重要信息被分割:

  • 无重叠 (0):分块独立,节省存储
  • 小重叠 (20-50):基本连续性
  • 大重叠 (100+):强上下文保持

💡 选择建议

按文档类型

文档类型推荐策略原因
技术文档智能分块保持结构完整
FAQ句子分块精确匹配问答
长篇文章语义分块保持主题连贯
代码文档智能分块识别代码块

按使用场景

场景推荐配置
精确问答句子分块 + 小分块
知识检索智能分块 + 中等分块
上下文理解语义分块 + 大分块

🔄 重新分块

如果检索效果不理想,可以重新分块:

  1. 进入知识库的文档列表
  2. 选择需要重新分块的文档
  3. 点击 重新索引
  4. 选择新的分块策略和参数
  5. 确认重新处理

重新分块会删除旧的分块并创建新的分块。


🔗 相关文档