文本分块导出 JSONL

按固定字符窗口与重叠切分纯文本,导出 JSONL 便于 RAG 入库。

字符数: 262

RAG 文本分块参数与 JSONL 导出指南

RAG 系统不会把整本文档直接塞进模型上下文,而是先切成可检索的片段,再写入向量库。分块过大影响召回精度,分块过小又会丢失上下文。

FormaX 的 RAG Chunker 使用固定字符窗口和 overlap,适合快速验证知识库、客服文档、产品手册和 Markdown 资料。它不是 tokenizer,但足够用于原型和参数探索。

参数调优方法

  1. 从 400 字符 chunk、50 到 80 字符 overlap 开始测试。
  2. 技术文档和 API 文档可适当增大 chunk,聊天记录和 FAQ 可适当减小。
  3. 导出 JSONL 后保留 chunk_index、start 和 end,方便答案引用原文。
  4. 上线前用真实用户问题评估召回结果,而不是只看分块数量。

JSONL 输出形态

{"chunk_index":0,"text":"...","metadata":{"start":0,"end":400,"source":"formax-rag-chunker"}}

适用边界

  • 字符窗口不等于 token 窗口,接入具体 embedding 模型前应重新评估长度。
  • 分块前建议去除页眉、页脚、版权重复文本和导航噪声。
  • 重叠越大并不一定越好,它会增加向量数量、存储成本和重复召回。

FAQ

chunk size 应该设置多少?

没有固定答案。可以从 400 字符开始,观察真实问题召回的片段是否完整,再按文档类型调整。

为什么需要 overlap?

overlap 能减少句子或段落在边界被切断导致的漏召回,但过大会造成重复和成本上升。