检索增强生成(RAG)、智能体与产品落地
文档切分、嵌入(Embedding)与召回质量
学习目标
- 理解切分策略如何影响检索增强生成回答质量。
- 知道嵌入和语义检索的基本作用。
- 能设计一个简单的召回质量检查方法。
核心概念
文档切分决定模型能检索到什么粒度的信息。切得太大,片段包含太多无关内容;切得太小,语义不完整,模型拿不到足够上下文。好的切分通常沿标题、段落、列表和代码块边界进行。
嵌入(Embedding)把文本转换为向量,使系统可以通过语义相似度找到相关片段。它适合处理“意思相近但字面不同”的查询,例如用户问“怎么验收项目”,能召回“验证标准”和“提交要求”。
召回质量要单独评估。不要等最终答案错了才猜原因。先看 top_k 检索结果是否包含正确依据,再看模型是否正确使用这些依据。
示例与拆解
原文:
1项目提交要求: 21. 提交仓库链接。 32. 提供本地运行说明。 43. 附上 5 个评测问题和实际回答。
不佳切分:
项目提交要求:
这个片段缺少具体内容。更好的切分:
1{ 2 "title": "项目提交要求", 3 "text": "提交仓库链接;提供本地运行说明;附上 5 个评测问题和实际回答。", 4 "metadata": { 5 "project": "ai-knowledge-assistant", 6 "section": "submission" 7 } 8}
当用户问“最后要交哪些东西”时,这个片段更容易被召回,也更容易被引用。
常见误区
- 误区一:只调提示词,不看召回结果。如果检索没找到正确材料,再好的提示词也难回答。
- 误区二:固定按字符数切分所有内容。标题、表格、代码和列表需要不同处理。
- 误区三:忽略元数据。来源、章节、更新时间和权限都影响检索与展示。
小练习
选一篇课程文档,设计 3 个切片。为每个切片写 title、text、source 和 section,并说明它适合回答哪类问题。
实操检查点
给每个切片补一个“召回查询”。一个切片如果想不出它应该被什么问题召回,说明这个切片可能太碎、太泛或缺少元数据。
1{ 2 "chunk_id": "project_submission_requirements", 3 "title": "项目提交要求", 4 "query_it_should_answer": "项目最后要提交哪些材料?", 5 "metadata": {"project": "ai-knowledge-assistant", "section": "deliverables"} 6}
完成后用 3 个查询人工检查 top_k 是否包含目标切片。
随堂测验
完成本章测验,重点检查你是否理解检索增强生成质量首先取决于召回。
本章总结
检索增强生成的关键不只是生成,而是把正确材料检索出来。切分、嵌入、元数据和召回检查共同决定答案上限。
下一步学习指引
下一章学习记忆、状态和长期上下文,理解人工智能应用如何处理用户连续使用场景。