RAG 上线前必查清单:90% 的人第 3 条就翻车
你不需要更好的 embedding 模型。你需要更好的文档。准备往 Coze 搭第一个 RAG 知识库之前我先做了一件事打开自己要上传的文档逐份审计。一共十几份——洞见卡、学习笔记、项目复盘、CSDN 选题记录。审计完发现没有一份能直接扔进知识库。每一份都有一个结构缺陷会让 RAG 检索翻车。如果我不审直接传——搭完 RAG 问第一个问题答非所问。我的第一反应大概率是调 chunk 大小、换 embedding 模型。然后浪费三天。实际上我花了 30 分钟改文档结构。以下 4 条检查项来自我逐份审计的真实发现。按翻车率从高到低排列。本文结构检查项 1-4 → 加分项一份文档的改造演示 → 完整自检清单检查项 1文档有至少两级标题吗翻车率高。翻车表现AI 在不同观点之间反复横跳。我发现了什么打开一份直播课的转录稿——23k 字。原始状态有 H1 标题直播主题往下看——全是口语段落零 H2。然后呢还有一个点就是对——讲者的观点是逐层递进的但文档里没有任何结构标记这个递进。前 20 分钟讲的是什么是系统中间 30 分钟讲怎么建立系统最后 20 分钟讲系统崩溃了怎么办——三个阶段的观点甚至相互矛盾前面的说法被后面修正了但没有一个 H2 标题标注这个递进。如果我把这份文档原样扔进 RAG——chunking 按字符数切出几十个片段每个片段都不知道自己是阶段一的初步定义还是阶段三的最终结论。用户搜系统的定义RAG 可能从三个阶段各召回一个切片拼出一个逻辑打架的回答。改了什么花 30 分钟加了 9 个 H2 标题。每个 H2 对应一个独立的语义单元。改完之后chunking 切出来的每个片段都知道自己属于哪个主题。标题是 chunking 的锚点。没有锚切片就是漂的。怎么查打开你要上传的每份文档。H1 不算那个一定有往下看——有没有 H2如果一份超过 1000 字的文档只有一级标题这条就挂了。怎么改给每份文档加两级标题H1 H2。每个 H2 章节控制在 500 字以内确保一个切片不会横跨两个语义段落。检查项 2核心概念有独立小节 第一句就是定义吗翻车率中高。翻车表现AI 回答了你的问题但只答对了一半。我发现了什么审计自己的洞见卡系列——每张都有 H1 和 Part1-4 的 H2 结构乍看没问题。但仔细查发现一个隐蔽的坑。以洞见卡 008知识短视频首条策略为例。它的核心结论是首条用纯文字动画不是妥协是数据最优解。这个结论在 Part1写得清楚。但 Part2 里大量补充了因果链收藏率权重 40%点赞仅 5%黑底白字在 TikTok 爆款中占绝大多数纯文字 30 分钟出片 vs 实拍拖几天——这些是支撑论据不是核心定义。如果 RAG 用户搜第一条视频用什么形式chunking 可能切到 Part2 的某一段数据黑底白字占绝大多数而不是 Part1 的定义。Embedding 向量代表的是这个百分比的语义不是纯文字动画是数据最优解的语义。AI 回复会变成一个数据点而不是一个判断。改了什么在文档最顶部加了一行前置定义句本文档的核心结论首条知识短视频应该用纯文字动画。不是因为制作简单是因为纯文字的揭示感最强。确保第一个 chunk 就是结论不会被论据稀释。核心概念不是藏宝。放在 RAG 能直接找到的地方——文档顶部 第一句定义。怎么查搜索你的核心概念产品名、方法论名、关键术语。它是否在文档顶部有独立定义句还是散落在不同段落的论据里怎么改每个核心概念在文档最前面给一句完整定义。不要铺垫不要先讲背景——第一句直接定义。检查项 3同一主题的分析在同一个文档里吗翻车率最高。这是最隐蔽的坑。我发现了什么审计 CSDN 选题记录时发现同一个判断散在三个地方一篇大纲里写了RAG 选题搜索量大值得写一篇洞见卡里写了CSDN 选题要优先选搜索量高的方向一篇对话记录里写了第六篇实际阅读量还没起来选题方向得再验证。三处各自没错。但如果都扔进 RAG 知识库——用户问RAG 选题值不值得写→ AI 从三处各召回一个切片→ 一个说值得一个说优先一个说要验证→ 融合结果RAG 选题既有价值也需要谨慎验证。废话文学。问了等于没问。改了什么把同一主题的所有分析合并到一份文档里用 H2 标题区分阶段第一阶段判断第二阶段验证最终结论。如果某个阶段的分析是暂时性的直接在标题里标注。不要把矛盾交给 RAG 去调和。它不会调和只会和稀泥。怎么查搜索你的知识库。同一个主题出现在几份文档里同一个概念在几份文档里有不同描述怎么改同一主题放一份文档用子标题区分阶段/场景。如果确实需要多份文档每份开头声明边界。检查项 4文档第一段是前置摘要还是背景铺垫翻车率中。翻车表现AI 告诉你什么不是对的但没说对的是什么。我发现了什么审计自己的 CSDN 文章大纲文件。打开第六篇大纲——第一段是元数据区定稿标题 / 核心论点 / 字数目标 / 修订记录。从人类视角看这些元信息很有用。但从 RAG 视角看——chunking 切出来的第一个切片全是修订记录v1→v2 改了什么跟文章的核心论点毫无关系。如果 RAG 用户搜Agent Skill 文档规范召回的第一个切片是修订记录——用户看到的不是答案是版本号。解决方式很简单在元数据区下面加一行前置摘要确保即使 chunking 切到元数据区也有一个语义锚点指向核心结论。RAG 不区分元数据和正文。你放什么在最前面它就检索什么。怎么查看每份文档的第一段。是不读完全文也能知道核心结论还是写着创建日期修订记录最近在研究 xxx怎么改每份文档最顶部加一行前置摘要——核心结论是什么。不替代原有结构只加一行。加分项一份文档的改造前后对比拿洞见卡 008 做完整演示表格维度BeforeAfter标题结构H1 Part1-4 的 H2结构已有保留原结构顶部加一行前置摘要核心概念位置在 Part1但 Part2-3 的数据和例证可能被优先召回顶部前置定义句确保第一个 chunk 就是结论概念分散结论 数据 案例分散在 4 个 Part结论前置数据支撑跟随不再有召回碎片的风险前置声明文档标题是描述性的不是结论性的第一行本文档的核心结论首条知识短视频用纯文字动画是数据最优解。同一个问题的检索对比Before用户搜第一条视频用什么形式→ 可能召回 Part2 的数据片段黑底白字占绝大多数→ 一个数据点不是一个判断After用户搜同样问题 → 第一个切片就是核心结论 完整定义 → 直接得到答案这不是调 embedding 模型能解决的。只能靠改文档。换模型、调参数是在检索层修修补补。但文档结构是散的什么算法都在垃圾堆里刨。完整的 RAG 文档结构自检清单层级标题检查检查项 1文档有至少两级标题H1 H2每个 H2 章节控制在 500 字以内没有超过 500 字仍无标题的连续段落核心概念检查检查项 2每个核心概念在文档顶部有一句完整定义定义句在最前面不被背景叙述和论据稀释核心概念没有散落在多个段落的不同位置概念分散检查检查项 3同一主题的分析在同一个文档内用子标题区分阶段如果用了多个文档覆盖同一主题每个文档开头声明了视角边界前置声明检查检查项 4文档顶部有一行前置摘要核心结论是什么前置摘要能让一个没读过文档的人立刻知道值不值得看版本号/修订记录/创建日期不会出现在 chunk 的最前面最后30 分钟省三天准备上传文档之前我先花 30 分钟逐份审计了文档结构。这 30 分钟省掉的是搭完之后面对答非所问的回答怀疑自己的 embedding 模型有问题换模型、调参数、试 reranker——至少三天。上篇讲了怎么写好一份 Skill 文档。这篇讲了我上传前逐份审计自己文档的真实发现。今天就动手打开你手上任何一份超过 1000 字的文档对照上面 4 条检查项逐条过。不需要重写内容——加标题、前置定义、合并分散概念、声明边界。改完之后再传 RAG。