本文介绍了如何使用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 文件1from langchain_community.document_loadersimportPyPDFLoader23defload_pdf_file(file_pathNone):4loaderPyPDFLoader(file_path)5docsloader.load()# 返回的是一个包含多个Document的列表6print(len(docs))# 每个Document对象表示一页 PDF7print(docs[0].page_content)# 输出这一页的文本内容8print(docs[0].metadata)# 元数据9returndocs在上述代码中第5行返回的便是一个包含多个Document对象的列表列表中的每个元素对应 PDF 中的一页。这里以一个共有3页的 PDF 为例执行上述代码后将会输出类似如下的结果3前言 作为《跟我一起学机器学习》的姊妹篇两年之后《跟我一起学深度学习》一书也终于出版了……{producer:macOS 版本15.5版号24F74 Quartz PDFContext,creator:PyPDF,creationdate:D:20260213071757Z0000,source:../data/DLWM.pdf,total_pages:3,page:0,page_label:1}从输出结果可以看到metadata中不仅记录了来源文件路径还自动保存了总页数、当前页码等信息这些在后续做结果溯源时会非常有用。2.2 txt 和 html 文件加载除了 PDF 以外纯文本文件和 html 网页文件也是很常见的存储形式我们可以通过如下方式分别进行加载1defload_text_file(file_pathNone):2loaderTextLoader(file_path)3docsloader.load()4print(len(docs))# 始终只有1个元素5print(docs[0].page_content)6print(docs[0].metadata)7returndocs89defload_html_file(file_pathNone):10loaderBSHTMLLoader(file_path)11docsloader.load()12print(len(docs))# 始终只有1个元素13print(docs[0].page_content)14print(docs[0].metadata)15returndocs上述代码执行完成后同样会得到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对象1defconstruct_document():2docs[3Document(page_content自己构建一个docs这是第一页的内容,4metadata{source:可以注明来源、章节、文件路径等}),5Document(page_content这是第二页的内容,6metadata{source:mammal-pets-doc},7id3)]8print(len(docs))#29print(docs[0].page_content)# 自己构建一个docs这是第一页的内容10print(docs[0].metadata)#{source:可以注明来源、章节、文件路径等}11print(docs[1])12returndocs从上述代码可以看出我们只需要将处理完成的文本信息填入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%免费】