跳到主要内容

chunk优化

  • 使用chunking_strategy 切片策略
    • 根据识别出的标题、章节结构进行分块
    • 解决语义断裂导致回答截断
    • 这样搜索会更精准、也能省token
  • chunk_size 控制块大小
  • 配置chunk_overlap避免语义被切断、保留上下文重叠
  • 文档生成chunk之后,是分批给到Embedding来生成向量

chunk分批生成向量​

  • 如果文档过大,一次性把chunk给到Embedding模型,生成向量,会造成部分chunk生成向量失败
    • 有些模型,可能不支持大批量的chunk文档请求
      • Embedding 服务通常有单次请求输入数量 / Token 数限制
    • 一次提交太多 Chunk,HTTP 请求体会很大
    • 容易遇到超时、限流 429、网络错误
    • 失败的话重试成本高
    • 如果一个 PDF 很大,切完以后可能有几百、几千个 Chunk。此时不建议把所有 Chunk 一次性传给 Embedding API
  • Chunk 分批调用 Embedding
  • 比如每20个chunk为一组,分批处理生成向量,当完成之后,在统一写入向量数据库
    • 每批生成完成成功后,每批写数据库

优化方案流程​

text
PDF 解析
↓
切成 chunk(当前约 800 字符/块)
↓
每 20 个 chunk 组成一批
↓
发送给 Embedding 模型生成 20 个向量
↓
继续处理下一批
↓
全部完成后统一写入数据库