返回知识库

AI 与提示 · 知识与检索

文本分块Chunking

文本分块(chunking)把长文档切成可嵌入、可检索的片段。真正要调的不是一个神奇字数,而是块边界:每块应尽量保住一个完整主题,并带标题、来源与版本;重叠只能保住接缝,不能修复混题。

把一篇手册切成可检索纸片

分块不是把字数凑齐,而是决定检索会拿回哪一段上下文。用同一篇客服手册复现硬切失败,再比较重叠补丁和按标题恢复。

这是一篇准备进入 RAG 的真实客服手册。左边看原文切口,右边看系统实际存入和取回的纸片;目标是让「怎么退款」命中一张能独立回答的片段。

KNOWLEDGE / handbook.md客服处理手册固定 28 字

退款政策

购买后七天内可申请退款。请在「我的订单」找到订单号,再联系客|服提交。

固定长度切口:完整句子被分到两张纸片

账号与登录

忘记密码可在登录页点「忘记密码」重置;收不到邮件时检查垃圾箱。

隐私与数据

你可以在隐私设置里提交删除请求。

RAG 提问“购买后怎么申请退款?”
索引纸片失败:按字符硬切1 条风险命中
  1. chunk-01handbook.md · 1–28 字
    退款政策

    购买后七天内可申请退款。请在「我的订单」找到订单号,再联系客

    命中,但句子被切断需要修复
  2. chunk-02handbook.md · 29–56 字
    无标题

    服提交。账号与登录:忘记密码可在登录页点「忘记密码」重置。

    退款 + 账号混在一块需要修复
  3. chunk-03handbook.md · 57–84 字
    隐私与数据

    我们仅根据业务目的保留数据;你可以在隐私设置里提交删除请求。

    完整可入索引

检索命中退款片段,却在「联系客|服」处断开,还把账号主题混入下一块。 先试重叠看它能修什么,再按标题恢复。

从刚才三种切口,记住四件事

面板里的纸片已经把边界、重叠、粒度和元数据表现出来;这里给它们命名。

边界决定可回答性
命中片段若在句中断开,模型看到的就只是半句话;按标题或段落边界切,片段才容易独立回答。
粒度是一组取舍
块太大容易混入多个主题,向量语义被稀释;块太小会丢上下文。优先保住一个完整任务或主题,再校准长度。
重叠只修接缝
重叠让边界附近的文字同时出现在相邻块,能保住跨边界句子;它不会自动把两个主题拆开。
片段必须可回原文
稳定 id、标题、来源、版本和顺序要跟着每块进入索引,检索结果才能引用、更新和删除。

什么时候用,什么时候别硬切

把分块放在文档解析之后、embedding 之前;先看内容结构,再决定切法。

  • 手册、FAQ、产品文档:优先按标题、段落或 FAQ 项切,让一个块只讲一个主题。
  • 对话、评论、转写:没有稳定标题时按句递归合并,避免从句中断开;必要时增加少量重叠。
  • 代码、表格、列表:整体结构本身有意义,不要为了固定字数把函数、行或表头拆散。
  • 不适合只看字符数:字符数只能做模型窗口和成本上限,不能代替语义完整度判断。

怎么用:从原文到可验收的块

最短路径是先定结构边界,再用真实查询检验取回片段,而不是只看平均长度。

  1. 1解析结构保留标题、段落、页码和来源。
  2. 2按语义切先保完整主题,再设最大长度与少量重叠兜底。
  3. 3拿真实问题检索检查命中块能否独立回答、是否混题、能否回链。
  4. 4版本化写入文档更新时替换旧块,避免新旧答案同时被召回。

同一手册,只改切口

都回答「购买后怎么申请退款」,差别只在固定长度硬切还是按标题切。

正例按「退款政策」标题切

条件、订单号、提交路径落在同一块,并带 handbook.md#refund;命中后能直接回答并引用。

反例每 28 字机械切一刀

「联系客服」被切成两半,下一块又混入账号内容;即使相似度命中,拿回的上下文仍不可答。

快速自测

检索已经命中含「退款」的块,但块里只有申请条件,没有提交路径,还混入登录说明。第一步该改什么?

继续查证

术语的技术定义和行为以这些一手或权威资料为准。

下一步学

和本知识点经常一起出现的概念。