收藏 | Python新手也能学会!手把手教你用LangChain加载和标准化文档,开启大模型RAG开发之旅
本文介绍了如何使用LangChain库加载和标准化不同格式(如PDF、TXT、HTML)的文档,将其转换为结构化的Document对象,为大模型RAG开发流程奠定基础。文章详细讲解了加载器的使用,包括内置加载器和自定义加载器的创建方法,帮助读者轻松应对多样化的文档处理需求。
1 语义搜索引擎构建流程
在正式介绍之前,我们先来简单了解一下整个语义搜索引擎的构建思路,这样后续每一步的目的也会更加清晰。
你有没有想过,为什么 ChatGPT 不能直接回答你公司内部文档里的问题?根本原因在于大模型的知识是训练时"固化"进去的,它根本看不到你的文档。而 RAG 要解决的,正是这个问题——让模型在回答时,能实时"翻阅"你指定的资料。
整体来看,我们要做的事情是:给定一份文档,然后把它构建成一个"能理解语义"的搜索系统。当用户提出一个问题时,系统能从文档里找出最相关的内容。
举一个具体的例子:
- 问:Nike 2023 年营收是多少?
- 系统:从年报文档里找出那一段相关文字
这个过程,就是语义搜索。
总体来看,整个构建流程可以分为4步,如图1所示。

图 1. 语义检索构建流程
从图1可以看出,这4个步骤分别是:①读入文档;②文本切块;③文本变向量;④存储与检索。每一步都有大量的工作要做,尤其是前两步,因为会涉及到各类格式的文档处理,如 word、PDF、html 等等。不过好在 LangChain 针对每一步都已经提供了标准化的封装方法,我们只需要合理调用或略微修改就能适配绝大多数场景,这也是我们选择基于 LangChain 进行开发的核心原因。
下面我们开始逐一进行介绍。
2 文档加载与标准化
在实际情况中,文档可能会以不同的格式存储,例如 PDF、txt、html 和 word 等等。如果每一种格式的,载入都需要我们自己编码实现,然后再统一封装成固定的数据类型输出,那将会是一个相当繁琐的过程。
好在 LangChain 已经提供了各种类型文档的加载模块。在 LangChain 里,所有文本加载完成后都会统一变成一个叫 Document 的对象,它包含以下三样东西:
page_content:文本内容metadata:元信息(比如来源、页码)id:可选标识
例如读取 PDF 时,LangChain 会将每一页变成一个 Document 对象,并自动记录每一页的页码以及来源文件路径。
2.1 PDF 文件加载
首先,我们需要安装两个核心依赖包,安装命令如下:
pip install langchain_community langchain_core
安装完成以后,便可以通过如下方式根据路径加载 PDF 文件:
1 from langchain_community.document_loaders import PyPDFLoader
2
3 def load_pdf_file(file_path=None):
4 loader = PyPDFLoader(file_path)
5 docs = loader.load() # 返回的是一个包含多个 Document 的列表
6 print(len(docs)) # 每个 Document 对象表示一页 PDF
7 print(docs[0].page_content) # 输出这一页的文本内容
8 print(docs[0].metadata) # 元数据
9 return docs
在上述代码中,第5行返回的便是一个包含多个 Document 对象的列表,列表中的每个元素对应 PDF 中的一页。
这里以一个共有3页的 PDF 为例,执行上述代码后,将会输出类似如下的结果:
3
前言 作为《跟我一起学机器学习》的姊妹篇,两年之后《跟我一起学深度学习》一书也终于出版了……
{'producer': 'macOS 版本15.5(版号24F74) Quartz PDFContext', 'creator': 'PyPDF',
'creationdate': "D:20260213071757Z00'00'", 'source': '../data/DLWM.pdf',
'total_pages': 3, 'page': 0, 'page_label': '1'}
从输出结果可以看到,metadata 中不仅记录了来源文件路径,还自动保存了总页数、当前页码等信息,这些在后续做结果溯源时会非常有用。
2.2 txt 和 html 文件加载
除了 PDF 以外,纯文本文件和 html 网页文件也是很常见的存储形式,我们可以通过如下方式分别进行加载:
1 def load_text_file(file_path=None):
2 loader = TextLoader(file_path)
3 docs = loader.load()
4 print(len(docs)) # 始终只有1个元素
5 print(docs[0].page_content)
6 print(docs[0].metadata)
7 return docs
8
9def load_html_file(file_path=None):
10 loader = BSHTMLLoader(file_path)
11 docs = loader.load()
12 print(len(docs)) # 始终只有1个元素
13 print(docs[0].page_content)
14 print(docs[0].metadata)
15 return docs
上述代码执行完成后,同样会得到 Document 对象列表。不过这里有一点需要注意:由于 txt 和 html 文件没有明确的分页标志,所以返回的列表中只会有一个元素,整个文件的内容都存放在 docs[0].page_content 中。
除此以外,document_loaders 还提供了相当丰富的文档类型支持,包括 word 文件(Docx2txtLoader)、CSV 文件(CSVLoader)、B 站字幕文件(BiliBiliLoader)、对象存储文件(S3FileLoader)等等,如图2所示。大家可以根据实际需要自行探索。

图 2. LangChain Loader
这里你可能会想到一个问题:如果一个 txt 文件有几十万字,全部塞进一个 Document 的 page_content 里,后续处理不会出问题吗?这正是语义搜索第二步要解决的核心问题,我们下一节详细来看。
3 自定义加载器
如果 document_loaders 中还是没有你需要的加载器类型,也可以通过下面这个方法来手动构建 Document 对象:
1 def construct_document():
2 docs = [
3 Document(page_content="自己构建一个docs,这是第一页的内容",
4 metadata={"source": "可以注明来源、章节、文件路径等"}),
5 Document(page_content="这是第二页的内容",
6 metadata={"source": "mammal-pets-doc"},
7 id=3)]
8 print(len(docs)) # 2
9 print(docs[0].page_content) # 自己构建一个docs,这是第一页的内容
10 print(docs[0].metadata) # {'source': '可以注明来源、章节、文件路径等'}
11 print(docs[1])
12 return docs
从上述代码可以看出,我们只需要将处理完成的文本信息填入 Document 类的对应属性,最终返回一个列表即可。当然,更标准的做法是模仿 TextLoader 的写法,自定义一个类并继承自 BaseLoader,然后重写其中的 lazy_load() 方法,这样也能无缝接入 LangChain 的整个处理管道。
以上所有完整示例代码,可参见 Code/Chapter03/C01_file_loader.py 文件。
到此,我们就把各种格式的原始文件统一转成了结构化的 Document 对象,完成了语义搜索引擎构建的第一步。大家在实际项目中有没有遇到过一些比较特殊的文档格式,或者在加载过程中踩过什么坑?欢迎在评论区聊聊。
那么如何学习大模型 AI ?
对于刚入门大模型的小白,或是想转型/进阶的程序员来说,最头疼的就是找不到系统、全面的学习资源,要么零散不成体系,要么收费高昂,白白浪费时间走弯路。今天就给大家精心整理了一份全面且免费的AI大模型学习资源包,覆盖从入门到实战、从理论到面试的全流程,所有资料均已整理完毕,免费分享给各位!
核心包含:AI大模型全套系统化学习路线图(小白可直接照做)、精品学习书籍+电子文档、干货视频教程、可直接上手的实战项目+源码、2026大厂面试真题题库,一站式解决你的学习痛点,不用再到处搜集拼凑!
👇👇扫码免费领取全部内容👇👇

1、大模型系统化学习路线
学习大模型,方向比努力更重要!很多小白入门就陷入“盲目看视频、乱刷资料”的误区,最后越学越懵。这里给大家整理的这份学习路线,是结合2026年大模型行业趋势和新手学习规律设计的,最科学、最系统,从零基础到精通,每一步都有明确指引,帮你节省80%的无效学习时间,少走弯路、高效进阶。
2、大模型学习书籍&文档
理论是实战的根基,尤其是对于程序员来说,想要真正吃透大模型原理,离不开优质的书籍和文档支撑。本次整理的书籍和电子文档,均由大模型领域顶尖专家、大厂技术大咖撰写,涵盖基础入门、核心原理、进阶技巧等内容,语言通俗易懂,既有理论深度,又贴合实战场景,小白能看懂,程序员能进阶,为后续实战和面试打下坚实基础。

3、AI大模型最新行业报告
无论是小白了解行业、规划学习方向,还是程序员转型、拓展业务边界,都需要紧跟行业趋势。本次整理的2026最新大模型行业报告,针对互联网、金融、医疗、工业等多个主流行业,系统调研了大模型的应用现状、发展趋势、现存问题及潜在机会,帮你清晰了解哪些行业更适合大模型落地,哪些技术方向值得重点深耕,避免盲目学习,精准对接行业需求。值得一提的是,报告还包含了多模态、AI Agent等前沿方向的发展分析,助力大家把握技术风口。

4、大模型项目实战&配套源码
对于程序员和想落地能力的小白来说,“光说不练假把式”,只有动手实战,才能真正巩固所学知识,将理论转化为实际能力。本次整理的实战项目,涵盖基础应用、进阶开发、多场景落地等类型,每个项目都附带完整源码和详细教程,从简单的ChatPDF搭建,到复杂的RAG系统开发、大模型部署,难度由浅入深,小白可逐步上手,程序员可直接参考优化,既能练手提升技术,又能丰富简历,为求职和职业发展加分。

5、大模型大厂面试真题
2026年大模型面试已从单纯考察原理,转向侧重技术落地和业务结合的综合考察,很多程序员和新手因为缺乏针对性准备,明明技术不错,却在面试中失利。为此,我精心整理了各大厂最新大模型面试真题题库,涵盖基础原理、Prompt工程、RAG系统、模型微调、部署优化等核心考点,不仅有真题,还附带详细解题思路和行业踩坑经验,帮你精准把握面试重点,提前做好准备,面试时从容应对、游刃有余。

6、四阶段精细化学习规划(附时间节点,可直接照做)
结合上述资源,给大家整理了一份可直接落地的四阶段学习规划,总时长约2个月,小白可循序渐进,程序员可根据自身基础调整节奏,高效掌握大模型核心能力,快速实现从“入门”到“能落地、能面试”的跨越。
第一阶段(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 项目
-
内容安全
-
互联网信息服务算法备案
-
…
👇👇扫码免费领取全部内容👇👇

3、这些资料真的有用吗?
这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。

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

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)