news 2026/4/18 13:04:31

收藏级教程!使用LangChain搭建检索增强生成(RAG)系统|小白程序员入门必看

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
收藏级教程!使用LangChain搭建检索增强生成(RAG)系统|小白程序员入门必看

在大模型应用开发领域,支持特定知识问答的聊天机器人是极具实用价值的方向之一。这类应用能够精准应答特定数据源相关的问题,其核心依赖的技术便是检索增强生成(RAG)

本文将以实操为核心,带大家从零开始基于文本数据源构建一个简易问答应用,过程中完整拆解RAG系统的经典架构,兼顾理论讲解与代码实践,无论是刚入门大模型的小白,还是想拓展技术栈的程序员,都能轻松跟上节奏。

一、先搞懂:什么是RAG?

简单来说,RAG是一种为大模型“补充专属知识”的增强技术。我们知道,主流LLM(大语言模型)虽然具备强大的通用推理能力,但知识边界受限于训练数据——不仅无法覆盖私有数据,也无法获取训练截止日期之后的新信息。

而实际开发中,我们常需要构建能理解企业内部文档、最新行业数据或个人专属资料的AI应用,这就需要把这些特定信息“喂给”模型。这种先检索所需信息、再将信息融入提示词供模型生成答案的过程,就是检索增强生成(Retrieval Augmented Generation,简称RAG)

LangChain作为大模型应用开发的主流框架,提供了一系列专门用于搭建问答应用和RAG系统的组件,极大降低了开发门槛。

注意:本文聚焦非结构化数据(如PDF、文档文本)的RAG实现,若你关注结构化数据(如数据库表)的RAG应用,后续会更新基于SQL数据的问答教程,可关注收藏不迷路~

二、RAG系统的核心架构:两大核心组件

任何一个完整的RAG应用,都离不开两个核心模块,整个流程分为“离线准备”和“在线服务”两个阶段:

  • 索引模块(离线执行):负责从原始数据源中提取信息、处理并建立索引,为后续检索做准备;
  • 检索与生成模块(在线执行):接收用户实时查询,从索引中检索相关信息,再传递给大模型生成精准答案。

从原始数据到最终答案的完整流程,可拆解为以下5个关键步骤,配合图示更易理解:

(一)索引阶段:3步搞定数据准备

索引阶段的核心目标是把原始数据处理成可高效检索的格式,具体分为加载、拆分、存储3步:

  1. 数据加载:通过文档加载器(DocumentLoader)读取原始数据(如PDF、TXT、网页等),将其转化为LangChain可处理的Document对象;
  2. 文本拆分:用文本拆分器将长文档拆分成短文本块——既适配大模型的上下文窗口限制,也能提升检索精准度;
  3. 向量存储:通过嵌入模型(Embedding Model)将文本块转化为向量,再存入向量数据库,完成索引构建。

索引阶段流程图示:

(二)检索与生成阶段:2步实现精准问答

  1. 检索:接收用户查询后,先将查询转化为向量,通过检索器从向量数据库中匹配出最相关的文本块;
  2. 生成:将用户查询和检索到的相关文本块一起传入大模型,让模型基于限定上下文生成答案,确保准确性。

检索与生成阶段流程图示:

三、实操前置:环境与工具准备

开始搭建前,先完成基础工具配置,这里兼顾“低成本”和“易上手”,选用开源工具为主:

1. 配置大模型(LLM)

首先初始化我们要用到的大模型,代码示例如下:

2. 配置嵌入模型(Embedding Model)

嵌入模型用于将文本转化为向量,为了节约成本,这里选用开源的BGE系列模型(性能优异且免费),配置代码:

3. 向量数据库选型:Qdrant

本文选用Qdrant作为向量存储工具——它是用Rust编写的开源向量数据库,支持高效的相似性搜索,部署和使用都很简便。如果不熟悉Qdrant,可参考这篇文章快速入门:《Qdrant:使用Rust编写的开源向量数据库&向量搜索引擎》

工具准备完成后,我们就按照“索引→检索→生成”的流程,一步步搭建完整的RAG系统。

四、分步搭建:完整RAG系统实现

第一步:索引阶段——数据加载(Document Loading)

LangChain官方提供的DocumentLoader数量有限,对于常见的PDF文件,推荐使用社区贡献的PDF DocumentLoader(需提前安装对应依赖)。代码实现如下,可直接加载本地PDF文件:

执行后会得到一个Document对象列表,每个Document对象包含两个核心属性:

  • page_content:字符串类型,存储对应页面的文本内容;
  • metadata:字典类型,存储文档元信息(如页码、文件路径等)。

我们可以通过打印列表长度,快速确认PDF的页数(每页对应一个Document对象),示例如下:

实用拓展:除了PDF,LangChain还支持加载TXT、Word、网页、数据库等多种数据源,官方集成的DocumentLoader清单可参考:https://python.langchain.com/docs/integrations/document_loaders/

第二步:索引阶段——文本拆分(Text Splitting)

为什么要拆分文本?核心原因有两个:一是多数LLM的上下文窗口有限(常见8k-32k tokens),长文本无法直接输入;二是即使是超长上下文模型,也难以在海量文本中精准定位关键信息。拆分后能大幅提升检索效率和答案精准度。

本文选用LangChain推荐的RecursiveCharacterTextSplitter——它会使用换行符、逗号等常用分隔符递归拆分文本,直到每个块的大小符合设定要求,适配大多数通用文本场景。

拆分配置说明:

  • chunk_size=1000:每个文本块的字符数限制为1000(可根据模型上下文窗口调整);
  • chunk_overlap=200:相邻文本块保留200字符重叠——避免拆分时割裂语句的上下文关联;
  • add_start_index=True:保留每个文本块在原始文档中的起始字符索引,存入元数据,方便后续追溯来源。

代码实现如下:

第三步:索引阶段——向量存储(Vector Storage)

文本拆分完成后,需要将这些文本块转化为向量并存储,才能实现后续的相似性检索。核心逻辑:

  1. 通过嵌入模型(前文配置的BGE模型)生成每个文本块的向量;
  2. 将文本块内容、向量、元数据一同存入Qdrant向量数据库,建立索引。

首先初始化Qdrant向量存储,代码如下:

初始化完成后,调用add_documents方法将拆分后的文本块存入数据库,每个文本块会自动生成唯一ID用于关联:

第四步:检索阶段——构建检索器(Retriever)

检索器是连接向量数据库和生成模块的关键,负责根据用户查询精准匹配相关文本块。LangChain提供了统一的Retriever接口,简化了开发流程。

最常用的检索器是VectorStoreRetriever,它基于向量数据库的相似性搜索功能实现检索。任何VectorStore都可以通过as_retriever()方法快速转化为Retriever,代码极简:

通过调整检索器的参数(如search_kwargs={"k":3}),可控制返回的相关文本块数量,k值越大覆盖信息越全,但可能引入冗余信息,建议根据实际场景调试。

第五步:生成阶段——构建完整链路(Retrieval Chain)

最后一步是将“检索”和“生成”串联起来,形成完整的问答链路。LangChain提供了两个核心函数简化链路搭建:

  • create_stuff_documents_chain:定义上下文拼接逻辑——将检索到的相关文本块融入提示词模板,传递给大模型;
  • create_retrieval_chain:添加检索步骤,自动将用户查询传递给检索器,再将检索结果传入生成环节,最终返回查询、上下文、答案三部分内容。

完整链路搭建代码:

关键优化:显示答案来源(提升可信度)

在实际问答应用中,向用户展示答案的来源(即检索到的文本块)至关重要,既能提升可信度,也方便用户追溯核对。我们可以通过解析链路返回的context字段,提取元信息并展示,代码实现:

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

为什么要学习大模型?

我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着AI技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。

大模型入门到实战全套学习大礼包

1、大模型系统化学习路线

作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!


2、大模型学习书籍&文档

学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。

3、AI大模型最新行业报告

2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

4、大模型项目实战&配套源码

学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。

5、大模型大厂面试真题

面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余

适用人群

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 11:32:18

开关电源环路面积压缩避坑指南

问:以反激式开关电源为例,如何综合运用各种技巧压缩环路面积?答:我们以一款 5V/2A 反激式开关电源为例,具体步骤如下:首先,布局阶段将输入滤波电容、MOS 管、变压器、肖特基二极管、输出滤波电容…

作者头像 李华
网站建设 2026/4/18 5:15:30

还在为AutoGLM部署发愁?掌握这4种高可用方案,轻松应对千万级请求

第一章:还在为AutoGLM部署发愁?掌握这4种高可用方案,轻松应对千万级请求在面对高并发、大规模用户请求的场景下,AutoGLM 的稳定部署与高可用性成为系统架构的关键挑战。通过合理设计部署架构,可以有效提升服务的容错能…

作者头像 李华
网站建设 2026/4/18 11:32:10

比Open-AutoGLM更强的已上线:抢占下一代AI建模先机(限时解读)

第一章:比Open-AutoGLM更强的已上线:抢占下一代AI建模先机新一代AI建模平台AutoGenius Pro正式上线,凭借其在多智能体协同、动态任务分解与自适应优化方面的突破性进展,全面超越现有的Open-AutoGLM框架。该平台不仅支持更高效的自…

作者头像 李华
网站建设 2026/4/18 8:37:18

ZIP密码恢复终极指南:使用bkcrack快速解锁加密文件

忘记ZIP文件密码是许多用户经常遇到的困扰,现在有了bkcrack这款免费开源工具,您可以轻松解决这个问题。bkcrack采用先进的已知明文分析技术,专门针对传统PKWARE加密方案,让您无需原始密码即可恢复文件内容。 【免费下载链接】bkcr…

作者头像 李华
网站建设 2026/4/18 6:01:17

Crow Translate:免费开源的终极翻译解决方案

Crow Translate:免费开源的终极翻译解决方案 【免费下载链接】crow-translate Crow Translate - 一个用C/Qt编写的简单轻量级翻译器,支持使用Google、Yandex、Bing等API进行文本翻译和朗读。 项目地址: https://gitcode.com/gh_mirrors/cr/crow-transl…

作者头像 李华
网站建设 2026/4/18 3:13:31

Dify如何设置条件分支控制AI执行路径?

Dify如何设置条件分支控制AI执行路径? 在构建智能客服、自动化审批或内容生成系统时,你是否遇到过这样的问题:用户一句话可能指向多个意图,而模型输出的结果又充满不确定性?传统的线性流程在这种场景下显得捉襟见肘——…

作者头像 李华