🐸 青蛙编程网

检索增强 RAG

RAG(Retrieval-Augmented Generation,检索增强生成)= 先查资料,再让大模型照着资料回答。 相当于给 AI 配一场「开卷考试」:遇到问题先去你的知识库里翻,翻到原文再落笔作答。

前置:大语言模型 LLM——会调 API 即可,本教程沿用那边的 OpenAI 兼容 SDK 写法。 基线:Python 3.12+ · NumPy 2.5.4 · openai 3.35.1 · ChromaDB 1.5.9 · rank-bm25 0.2.2 · jieba 0.42.1 · LangChain 1.4.x(第 11 章:langchain-openai 1.7.x · langchain-chroma 1.1.0 · langchain-text-splitters 1.x) 进阶(第 8、9 章):MinerU 4.0.12(要求 Python >=3.10,<3.15,须单独建 3.12 环境)· PaddleOCR 3.7.0 + PaddlePaddle 3.3.1 · pypdfium2 5.x

为什么需要 RAG

痛点 RAG 怎么解
模型不知道你公司的内部资料 把资料检索出来放进提示词
模型的知识有截止日期 资料随时更新,答案跟着更新
答案无从追溯、像在瞎编 答案带出处,可逐句核对
每次问答都烧 token 小模型 + 少量精准上下文,成本骤降

RAG 五步

步骤 干什么 对应章节
解析 Parsing 原始文档(PDF / 扫描件 / 图片)变成可切文本 第 8 章 · 第 9 章
切分 Chunking 长文档切成小段 第 3 章
向量化 Embedding 每段文字变成一串数字 第 4 章
检索 Retrieval 用问题找出最相关的几段 第 5 章 · 第 6 章
生成 Generation 把资料塞进提示词,让模型作答 第 2 章 · 第 10 章

前七章的资料都是现成的 .md / .txt。真实项目里最难的往往是第一步「解析」——PDF 直接抽文本会乱序、表格会散架、扫描件根本抽不出来。第 8、9 章专门补这一环。

技术路线

章节 核心内容
1. RAG 是什么 原理、适用场景、常见误区
2. 环境搭建与第一个 RAG 三步闭环跑通
3. 文档切分 切多大、怎么切、要不要重叠
4. 向量与嵌入 文字怎么变成数字,相似度怎么算
5. 向量数据库 Chroma 落地、持久化、元数据过滤
6. 检索优化 混合检索、RRF 融合、重排、查询改写
7. 评估与常见问题 命中率、MRR、忠实度
8. 进阶:MinerU 解析 PDF 四档质量 tier、命令行与 JSON、按标题切块
9. 进阶:PaddleOCR 处理扫描件 文字层判断、置信度过滤、阅读顺序、页眉清理
10. 综合练习 知识库问答助手
11. 上框架:LangChain 版 RAG 组件对照、LCEL 链、v1 搬家要点、PDF / 扫描件接入

本教程前十章不引 LangChain:核心用 NumPy 手写,让你看清每一步到底在干什么;手搓完了,第 11 章用 LangChain 1.x 把同一个知识库助手重写一遍,对照着看框架省了哪步。 第 8、9 章的解析工具也只调命令行 / SDK,不引解析框架——保持「看得见每一步」的初衷。

从 1. RAG 是什么 开始吧!