大模型框架 ·
LangChain 学习 Day 4:Retrieval 与 RAG 流程
从 LLM 知识滞后、知识缺失和幻觉问题出发,梳理 RAG 的索引阶段、召回阶段和生成阶段。

今天进入 Retrieval / RAG。RAG 的出发点很清楚:大模型参数中没有最新知识,也不一定包含企业私有知识,并且在缺少依据时容易产生幻觉。RAG 通过检索外部文档,把相关内容放进上下文,再让模型基于资料回答。
完整 RAG 通常分成两个阶段。索引阶段负责把资料加载、切分、向量化并写入向量库;问答阶段负责把用户问题向量化,召回相关片段,组装提示词,再由模型生成答案。
文档加载与切分
文档加载要根据来源选择合适 Loader,例如 Markdown、DOCX、PDF。加载只是第一步,切分质量往往决定召回质量。如果 chunk 太大,会带来噪声和上下文浪费;如果 chunk 太小,又可能丢失语义完整性。
常用策略是 RecursiveCharacterTextSplitter,通过段落、句子、字符等层级递归切分,并设置 chunk size 与 overlap。Overlap 的意义是减少边界信息丢失,让相邻片段之间保留必要上下文。

Embedding 与检索
Embedding 的作用是把文本转成向量,使语义相近的文本在向量空间中距离更近。用户问题也会被转成向量,再和文档向量做相似度搜索。检索不一定只看向量相似度,还可以结合关键词、元数据过滤、时间范围和重排序。
参考 LangChain 官方 RAG 资料,检索增强的关键并不只是“把文档塞给模型”,而是按语料规模、延迟要求和答案可信度要求设计不同的检索、压缩、引用和评测流程。
实际项目里,RAG 的难点不是“能不能召回”,而是“召回内容是否真的能支撑答案”。因此需要做评测,比如命中率、引用准确性、答案忠实度和用户问题覆盖率。
面试八股问答
Q:RAG 解决了大模型哪些问题?
A:主要解决知识滞后、私有知识缺失和幻觉问题。它把外部知识通过检索方式注入上下文,让回答更可追溯、更贴近业务资料。
Q:为什么要做文本切分?
A:因为原始文档通常过长,无法直接放入上下文,也不利于精确召回。切分可以把文档变成适合向量化和检索的语义片段。
Q:RAG 系统如何评估效果?
A:可以从检索命中率、上下文相关性、答案忠实度、引用准确性、延迟和成本等维度评估。
HR / 简历表达
可以写成:“掌握 RAG 索引与问答链路,能够完成文档加载、递归切分、Embedding 向量化、向量召回、上下文组装和答案生成评测。”
今日复盘
RAG 不是简单的“知识库问答”,而是一套数据工程、检索工程和生成工程的组合。资料质量、切分策略、召回策略和评测闭环都决定最终体验。