RAG 切分:先保住完整证据,再调长度
切分参数的目标是让需要的证据能被一起找到,而不是把所有文档切成一样长。本文讨论调试过程;RAG 的概念解释 由 Wiki 维护。
用一个退款条款做检查
假设原文是:“签收七天内可以申请退款,仅适用于未拆封商品。”这是教学示例,不是任何公司的实际规则。
如果两个条件被切进不同片段,召回“七天内”仍可能让回答漏掉“未拆封”。因此先观察切分后的文本,再观察召回,最后观察生成回答;不能只看最终答案是否流畅。
从结构切分起步
先按标题、段落和条款切分,超长单元再细分。表格保留表头、单位与行列关系;代码尽量保留函数边界。固定字符长度可以控制大小,但字符不是 Token,没有通用的最佳长度或重叠比例。
| 观察到的问题 | 优先检查 | 可以比较的调整 |
|---|---|---|
| 条件被截断 | 片段正文和边界 | 保留完整条款、读相邻片段 |
| 相关词很多但答案不相关 | 片段是否混合多个主题 | 缩小结构单元 |
| 上下文重复 | 重叠范围及返回结果 | 合并相邻片段或去重 |
| 表格内容无法解释 | 解析是否保留表头与单位 | 先修解析,重叠不能补回丢失内容 |
一次只改变一个因素
固定问题、所需证据和检索/生成模型,比较切分变化。记录证据覆盖、片段数、上下文重复和费用,不能用教学演示分数直接选择生产参数。
每段至少关联文档、位置、标题路径、版本和权限。重新切分后同步更新索引,引用应能回到对应版本。
参考:LangChain TextSplitter。本文为工程建议,整理与来源复核:2026-10-14。