rag-from-scratch
LangChain 官方 RAG 入门教程,从最基础概念到生产级实践,配合视频手把手教学
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
LangChain 官方 RAG 入门教程,从最基础概念到生产级实践,配合视频手把手教学
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下,你让 AI 助手回答一个关于公司内部规章的问题——它却只能摇头说「我不知道」。这是因为大语言模型(LLM)的知识被固定在训练数据里,无法触及实时更新或私有领域的信息。RAG(检索增强生成,Retrieval Augmented Generation)正是解决这一痛点的核心技术。
langchain-ai/rag-from-scratch 是 LangChain 官方维护的 RAG 入门教程仓库,以 Jupyter Notebook 为载体,配合 YouTube 视频系列,系统性地从最基础的概念讲起,逐步深入到高级用法。整个教程按照主题拆分为 6 个 Notebook,总计覆盖 RAG 的 18 个关键知识点。

图1:RAG 核心流程——检索(Retrieval)与生成(Generation)的协同工作原理
传统 LLM 有两大硬伤:
知识陈旧。 GPT-4 等模型的知识截止日期是固定的,新的新闻、产品文档、内部制度等信息模型根本不知道。
幻觉问题。 当被问到不确定的内容时,LLM 倾向于「一本正经地胡说八道」。在需要精确回答的场景(如医疗、法律、金融),这是致命的。
RAG 通过在推理时动态检索外部文档来弥补这两个缺陷。相比微调(Fine-tuning),RAG 成本更低、时效性更强、也更容易解释——你总能找到答案是从哪篇文档里来的。这使得 RAG 成为企业级 AI 应用的主流架构。
该仓库按照 RAG 学习的自然认知顺序编排,将内容拆分为 6 个 Notebook:
LangChain 团队的设计理念是「先理解原理,再掌握工具」。教程从不用 LangChain 的高层 API 入手,而是先演示底层实现(比如直接调用向量数据库 SDK),让读者真正理解每一步在做什么,然后再介绍 LangChain 如何简化这些步骤。这种教学路径在同类教程中相当少见。
教程覆盖的技术栈横跨整个 RAG 流水线:
| 环节 | 涉及技术 |
|---|---|
| 文档解析 | PDF 提取、Markdown 转换、文本分块(Chunking) |
| Embedding | OpenAI Ada/BGE、Cohere、本地模型 |
| 向量存储 | Chroma、Pinecone、FAISS、Milvus、Weaviate |
| 检索策略 | 稀疏检索(BM25)、稠密检索、混合搜索 |
| 生成模型 | GPT-4、Claude、本地 Llama 2/3 |
| 编排框架 | LangChain LCEL(LangChain Expression Language) |
LangChain 在教程中的角色是「教学工具」而非「唯一选项」——同一个功能会同时展示 LangChain 版和原生实现,方便读者对比理解,也为将来替换技术栈预留空间。
适合人群:
上手门槛: 教程设计为零基础入门级别,但建议具备以下基础:
运行方式: 直接在本地 Jupyter Notebook/Lab 中打开对应 .ipynb 文件,依次运行 Cell,修改参数进行实验。也可以上传到 Google Colab 免本地配置。
这个教程也有其局限性:
1. 纯教学导向,非生产代码。 教程中的代码为了便于教学做了大量简化,比如直接硬编码 API Key、缺少错误处理、没有考虑并发和缓存。在生产环境中使用这些代码需要大量重构。
2. Notebook 的固有问题。 Jupyter Notebook 适合探索,但不适合版本控制和自动化测试。教程代码没有配套的测试用例,读者只能手动验证结果。
3. 部分示例依赖 LangChain 内部 API。 LangChain 作为一个快速迭代的项目,API 变更频繁。教程中的某些实现可能与最新版 LangChain API 不兼容,需要读者自行适配。
langchain-ai/rag-from-scratch 是 GitHub 上最受欢迎的 RAG 入门资源之一(⭐8,375),与其配套的 YouTube 视频播放列表也拥有数万播放量。这个项目的意义不仅在于传授知识,更在于推动了 RAG 民主化——让更多没有 AI 研究背景的开发者能够进入这个领域。
从行业趋势看,RAG 的发展方向正在从「简单检索 + 生成」向更复杂的多跳推理(Multi-hop Reasoning)、Agent 自主决策、以及结合知识图谱的结构化知识检索演进。LangChain 也在从单纯的编排框架向 RAG 应用开发平台转型,这个教程体系也在持续更新以反映这些变化。