分块策略
分块策略决定了文档如何被分割成小块以便于检索。选择合适的分块策略可以显著提高检索质量。
📊 策略概览
| 策略 | 适用场景 | 特点 |
|---|---|---|
| 智能分块 | 通用文档 | 自动识别文档结构 |
| 句子分块 | 精确检索 | 按句子边界分割 |
| 语义分块 | 复杂文档 | 基于语义相似度分割 |
🧠 智能分块
智能分块是默认策略,能够自动识别文档结构并进行合理分割。
工作原理
- 识别段落、标题、列表等结构
- 保持语义完整性
- 自动调整分块大小
适用场景
- 结构化文档(如技术文档、报告)
- 混合内容文档
- 大多数通用场景
配置参数
| 参数 | 描述 | 默认值 |
|---|---|---|
chunk_size | 目标分块大小(字符数) | 500 |
chunk_overlap | 分块重叠大小 | 50 |
📝 句子分块
句子分块按句子边界分割文档,适合需要精确检索的场景。
工作原理
- 识别句子边界(句号、问号、感叹号等)
- 将相邻句子组合成分块
- 保持句子完整性
适用场景
- FAQ 文档
- 问答对内容
- 需要精确匹配的场景
配置参数
| 参数 | 描述 | 默认值 |
|---|---|---|
separator | 句子分隔符 | .!? |
buffer_size | 句子缓冲数量 | 1 |
🔗 语义分块
语义分块基于内容的语义相似度进行分割,适合复杂文档。
工作原理
- 计算相邻文本的语义相似度
- 在语义变化点进行分割
- 保持主题连贯性
适用场景
- 长篇文章
- 主题多样的文档
- 需要保持上下文连贯的场景
配置参数
| 参数 | 描述 | 默认值 |
|---|---|---|
breakpoint_threshold | 语义断点阈值 | 0.5 |
buffer_size | 上下文缓冲大小 | 1 |
⚙️ 通用配置
分块大小
分块大小影响检索的精度和召回率:
| 大小 | 优点 | 缺点 |
|---|---|---|
| 小分块 (200-300) | 精确匹配 | 可能丢失上下文 |
| 中等分块 (400-600) | 平衡精度和上下文 | 通用选择 |
| 大分块 (800-1000) | 保留更多上下文 | 可能包含无关内容 |
分块重叠
重叠可以避免重要信息被分割:
- 无重叠 (0):分块独立,节省存储
- 小重叠 (20-50):基本连续性
- 大重叠 (100+):强上下文保持
💡 选择建议
按文档类型
| 文档类型 | 推荐策略 | 原因 |
|---|---|---|
| 技术文档 | 智能分块 | 保持结构完整 |
| FAQ | 句子分块 | 精确匹配问答 |
| 长篇文章 | 语义分块 | 保持主题连贯 |
| 代码文档 | 智能分块 | 识别代码块 |
按使用场景
| 场景 | 推荐配置 |
|---|---|
| 精确问答 | 句子分块 + 小分块 |
| 知识检索 | 智能分块 + 中等分块 |
| 上下文理解 | 语义分块 + 大分块 |
🔄 重新分块
如果检索效果不理想,可以重新分块:
- 进入知识库的文档列表
- 选择需要重新分块的文档
- 点击 重新索引
- 选择新的分块策略和参数
- 确认重新处理
重新分块会删除旧的分块并创建新的分块。