当前位置: 首页 > article >正文

全网最细:Rag+LangChain 文档加载全实战

一、前言在基于 LangChain 构建 RAG 检索增强生成系统时文档加载是整个项目的第一步、也是最基础最关键的一环。无论后续向量嵌入、向量数据库、检索链、大模型问答做得多完善只要文档加载解析出错、乱码、漏内容、格式解析不全整个 RAG 系统的问答准确率都会大打折扣。LangChain 官方内置了海量文档加载器支持日常开发中几乎所有常见格式TXT、Markdown、PDF、Word、Excel、CSV、网页 URL、本地文件夹批量加载等。本文聚焦纯文档加载模块,介绍环境准备 各类文档加载实战代码 逐行详细注释 常见报错解决方案 批量加载封装全程可直接复制运行适合入门学习、项目直接复用。一、环境安装仅加载依赖bash运行# 核心框架 pip install langchain langchain-community # 文档解析依赖 pip install pypdf # PDF pip install python-docx # Word pip install pandas openpyxl # Excel/CSV pip install beautifulsoup4 lxml # 网页 pip install charset-normalizer # 自动识别编码解决乱码二、核心概念仅看这一段就够加载器LoaderLangChain 针对每种文件格式提供专用加载器Document 对象加载后统一返回格式包含page_content文档文本内容metadata元数据路径、页码、标题等返回值所有加载器最终都返回列表[Document]三、实战代码全格式文档加载带超强注释3.1 TXT 文本文档加载最基础python运行# 导入TXT专用加载器 from langchain.document_loaders import TextLoader # 导入编码自动检测工具 from charset_normalizer import from_path def load_txt(file_path: str): 加载TXT文档自动解决中文乱码 # 自动检测文件编码UTF-8/GBK/ASCII 自动识别 encoding from_path(file_path).best().encoding # 初始化加载器 loader TextLoader(file_path, encodingencoding) # 执行加载 documents loader.load() # 输出加载信息 print(f【TXT加载成功】路径{file_path} | 编码{encoding} | 文本长度{len(documents[0].page_content)}) return documents # 调用 # docs load_txt(测试.txt)3.2 Markdown 文档加载python运行from langchain.document_loaders import MarkdownLoader from charset_normalizer import from_path def load_md(file_path: str): 加载MD文档自动解析语法、提取纯文本 encoding from_path(file_path).best().encoding loader MarkdownLoader(file_path, encodingencoding) documents loader.load() print(f【MD加载成功】路径{file_path} | 内容长度{len(documents[0].page_content)}) return documents # 调用 # docs load_md(说明文档.md)3.3 PDF 文档加载带页码、元数据python运行from langchain.document_loaders import PyPDFLoader def load_pdf(file_path: str): 加载PDF自动分页自带页码元数据 loader PyPDFLoader(file_path) # 分页加载每页生成一个Document对象 documents loader.load() print(f【PDF加载成功】路径{file_path} | 总页数{len(documents)}) # 打印前3页元数据页码 for i, doc in enumerate(documents[:3]): print(f 第{doc.metadata[page]1}页内容长度{len(doc.page_content)}) return documents # 调用 # docs load_pdf(企业知识库.pdf)3.4 Word.docx文档加载python运行from langchain.document_loaders import Docx2txtLoader def load_word(file_path: str): 加载Word文档仅支持 .docx不支持旧版 .doc loader Docx2txtLoader(file_path) documents loader.load() print(f【Word加载成功】路径{file_path} | 内容长度{len(documents[0].page_content)}) return documents # 调用 # docs load_word(合同模板.docx)3.5 CSV 表格加载python运行from langchain.document_loaders import CSVLoader def load_csv(file_path: str): 加载CSV表格按行解析 loader CSVLoader(file_path, encodingutf-8) documents loader.load() print(f【CSV加载成功】路径{file_path} | 总行数{len(documents)}) return documents # 调用 # docs load_csv(产品清单.csv)3.6 Excel.xlsx加载python运行from langchain.document_loaders import UnstructuredExcelLoader def load_excel(file_path: str): 加载Excel支持多工作表 loader UnstructuredExcelLoader(file_path, modeelements) documents loader.load() print(f【Excel加载成功】路径{file_path} | 数据块数量{len(documents)}) return documents # 调用 # docs load_excel(销售数据.xlsx)3.7 网页 URL 在线加载python运行from langchain.document_loaders import WebBaseLoader def load_url(url: str): 加载任意静态网页自动剔除HTML标签保留纯文本 loader WebBaseLoader(url) documents loader.load() print(f【网页加载成功】URL{url} | 标题{documents[0].metadata[title]}) return documents # 调用 # docs load_url(https://baike.baidu.com/item/人工智能)四、高级实战文件夹批量加载企业级必备4.1 批量加载指定格式文档python运行from langchain.document_loaders import DirectoryLoader def batch_load(folder_path: str): 批量加载文件夹内所有支持的文档TXT/MD/PDF/DOCX/CSV 自动跳过损坏文件、不支持格式 all_docs [] # 定义要加载的格式与对应加载器 file_types { txt: TextLoader, md: MarkdownLoader, pdf: PyPDFLoader, docx: Docx2txtLoader, csv: CSVLoader } for ext, loader_cls in file_types.items(): try: loader DirectoryLoader( pathfolder_path, globf*.{ext}, loader_clsloader_cls, silent_errorsTrue # 跳过报错文件不中断程序 ) docs loader.load() all_docs.extend(docs) print(f└─ 加载 {ext} 文件{len(docs)} 个) except: print(f└─ {ext} 文件无数据或加载失败) print(f\n【批量加载完成】总计文档{len(all_docs)} 块) return all_docs # 调用 # all_docs batch_load(./知识库)五、高频问题解决方案5.1 中文乱码所有文本加载都使用python运行encoding from_path(file_path).best().encoding自动识别编码100% 解决乱码。5.2 PDF 加载空白 / 无法读取原因扫描件 PDF图片无法提取文字必须用 OCR 工具先转文字。5.3 Word 加载失败原因只支持.docx不支持.doc旧版格式需转换格式后再加载。5.4 批量加载中断开启silent_errorsTrue跳过损坏文件。六、总结纯加载核心所有文档最终都转为 Document 对象加载器与格式一一对应专用加载器最稳定乱码用编码自动检测企业项目直接用批量加载本文代码无任何冗余可直接用于生产环境专注 RAG 落地开发只讲硬核实战关注我后续更新文档分割、向量库、检索优化、RAG 全流程干货本文全套加载工具包 批量脚本已打包点赞 收藏 评论区扣【加载】立即免费领取

相关文章:

全网最细:Rag+LangChain 文档加载全实战

一、前言在基于 LangChain 构建 RAG 检索增强生成系统时,文档加载是整个项目的第一步、也是最基础最关键的一环。无论后续向量嵌入、向量数据库、检索链、大模型问答做得多完善,只要文档加载解析出错、乱码、漏内容、格式解析不全,整个 RAG 系…...

VSCode远程开发速度瓶颈诊断图谱,覆盖SSH/WSL2/Docker/Kubernetes四大场景(附2026专属perf trace模板)

更多请点击: https://intelliparadigm.com 第一章:VSCode 2026远程开发速度瓶颈的全局认知与基准定义 随着 VSCode 2026 版本对 Remote-SSH、Dev Containers 和 GitHub Codespaces 的深度集成,远程开发已成主流范式。然而,开发者…...

通过Taotoken CLI工具一键配置团队开发环境中的大模型密钥

通过Taotoken CLI工具一键配置团队开发环境中的大模型密钥 1. Taotoken CLI 工具概述 Taotoken CLI 工具(taotoken/taotoken)是为开发者提供的命令行工具,用于快速配置大模型 API 密钥与聚合端点地址。该工具支持交互式菜单操作&#xff0c…...

5分钟快速上手:Retrieval-based-Voice-Conversion-WebUI语音转换终极指南

5分钟快速上手&#xff1a;Retrieval-based-Voice-Conversion-WebUI语音转换终极指南 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI Easily train a good VC model with voice data < 10 mins! 项目地址: https://gitcode.com/GitHub_Trending/re/Retrieval-b…...

企业级Docker存储架构设计(含K8s节点适配):单机TB级持久化方案与IO隔离实践

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;企业级Docker存储架构设计概览 在高可用、多租户的企业生产环境中&#xff0c;Docker 存储架构绝非仅依赖默认的 overlay2 文件系统即可胜任。它需兼顾性能隔离、数据持久化、跨节点一致性、快照备份与…...

【软考高级架构】案例题考前突击11:秒杀场景及其技术解决方案

在电商大促、直播带货等业务场景中,秒杀活动因其“瞬时高并发、库存有限、时间敏感”的特性,成为最考验系统架构设计能力的战场之一。秒杀的本质,是在极短时间内将有限的商品库存公平、准确地分配给海量涌入的用户。 一. 秒杀场景的核心痛点 1. 瞬时高并发冲击下的流量洪峰…...

RediSearch v2.10.30 发布:修复严重漏洞,新增多项指标

直击 RediSearch v2.10.30 发布现场RediSearch 是 RedisLabs 团队开发的一个高性能全文搜索引擎&#xff0c;可作为一个 Redis Module 运行在 Redis 上。RediSearch v2.10.30 现已发布&#xff0c;这是 RediSearch 2.10 的一个维护版本。更新紧迫性为 HIGH&#xff0c;存在一个…...

如何用学之思开源考试系统解决企业培训与学校考试数字化转型难题

如何用学之思开源考试系统解决企业培训与学校考试数字化转型难题 【免费下载链接】xzs-mysql 学之思开源考试系统是一款 java vue 的前后端分离的考试系统。主要优点是开发、部署简单快捷、界面设计友好、代码结构清晰。支持web端和微信小程序&#xff0c;能覆盖到pc机和手机等…...

Sensor Etch 艺术模式:倾斜、声音、网络速度等多因素打造独特艺术体验

【导语&#xff1a;Sensor Etch 的艺术模式融合倾斜动作、声音输入、摄像头及网络速度等多元素&#xff0c;为用户带来别具一格的艺术创作体验&#xff0c;下面将深入剖析其特点与实现细节。】艺术模式的多元交互元素在 Sensor Etch 的艺术模式中&#xff0c;包含了倾斜动作、麦…...

如何用semi-utils在3分钟内为你的照片批量添加专业水印?

如何用semi-utils在3分钟内为你的照片批量添加专业水印&#xff1f; 【免费下载链接】semi-utils 一个批量添加相机机型和拍摄参数的工具&#xff0c;后续「可能」添加其他功能。 项目地址: https://gitcode.com/gh_mirrors/se/semi-utils 你是否曾经为给上百张照片手动…...

告别在线工具!用Python+Skyfield库本地计算卫星轨道与星下点(以高分五号为例)

用PythonSkyfield构建本地卫星轨道计算系统&#xff1a;以高分五号为例 当你在深夜调试代码时突然发现依赖的卫星轨道计算网站无法访问&#xff0c;或是需要批量处理上百颗卫星的TLE数据时&#xff0c;在线工具的局限性就暴露无遗。作为长期与遥感数据打交道的开发者&#xff0…...

fre:ac音频转换器:专业级开源解决方案的终极指南

fre:ac音频转换器&#xff1a;专业级开源解决方案的终极指南 【免费下载链接】freac The fre:ac audio converter project 项目地址: https://gitcode.com/gh_mirrors/fr/freac 在数字音频处理领域&#xff0c;寻找一款既功能强大又完全免费的音频转换工具曾是许多用户的…...

用PySide6和OpenCV打造你的第一个桌面摄像头应用(附完整源码)

用PySide6和OpenCV构建工业级摄像头监控系统 在智能监控和人机交互应用蓬勃发展的今天&#xff0c;能够快速开发稳定可靠的摄像头应用程序已成为开发者的必备技能。本文将带你从零开始&#xff0c;使用PySide6和OpenCV构建一个具备完整错误处理机制、自适应界面和性能优化的工业…...

别再手动转格式了!用Python+ezdxf批量处理DWG到DXF,还能一键导出WKB给GIS用

用Python自动化DWG到DXF转换与GIS集成实战指南 在建筑设计与地理信息系统&#xff08;GIS&#xff09;的交叉领域&#xff0c;数据格式转换一直是工程师们日常工作中的痛点。每当需要将AutoCAD的DWG图纸导入到QGIS或ArcGIS中进行分析时&#xff0c;传统的手动导出导入流程不仅耗…...

WarcraftHelper:让经典魔兽争霸3在现代系统上完美运行的兼容性解决方案

WarcraftHelper&#xff1a;让经典魔兽争霸3在现代系统上完美运行的兼容性解决方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 魔兽争霸3作为一款…...

2026年华为云简洁教程:OpenClaw怎么搭建及大模型API Key、Skill配置全攻略

2026年华为云简洁教程&#xff1a;OpenClaw怎么搭建及大模型API Key、Skill配置全攻略。OpenClaw作为阿里云生态下新一代的开源AI自动化代理平台&#xff0c;曾用名Moltbot/Clawdbot&#xff0c;凭借“自然语言交互自动化任务执行大模型智能决策”的核心能力&#xff0c;正在重…...

3分钟搞定M3U8视频下载:告别命令行,拥抱图形化下载神器

3分钟搞定M3U8视频下载&#xff1a;告别命令行&#xff0c;拥抱图形化下载神器 【免费下载链接】N_m3u8DL-CLI-SimpleG N_m3u8DL-CLIs simple GUI 项目地址: https://gitcode.com/gh_mirrors/nm3/N_m3u8DL-CLI-SimpleG 还在为在线视频无法保存而烦恼吗&#xff1f;面对复…...

qmc-decoder终极指南:三步解锁QQ音乐加密文件,实现跨平台音乐自由

qmc-decoder终极指南&#xff1a;三步解锁QQ音乐加密文件&#xff0c;实现跨平台音乐自由 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾在QQ音乐下载了心爱的歌曲…...

N_m3u8DL-RE架构深度解析:现代流媒体下载引擎的设计哲学与技术实现

N_m3u8DL-RE架构深度解析&#xff1a;现代流媒体下载引擎的设计哲学与技术实现 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_…...

Pycharm效率翻倍秘籍:从文件模板、字体缩放快捷键到中文插件完整配置流程

PyCharm效率翻倍秘籍&#xff1a;从文件模板到中文插件的终极配置指南 每次打开PyCharm&#xff0c;你是否总在重复那些机械操作&#xff1f;创建新文件要手动添加注释头&#xff0c;调试代码时频繁调整字体大小&#xff0c;面对全英文界面还要分心查词典。这些看似微小的效率损…...

SAP CPI集成流调试与排错全攻略:从消息监控到模拟执行的实战技巧

SAP CPI集成流调试与排错全攻略&#xff1a;从消息监控到模拟执行的实战技巧 当集成流在测试或生产环境中出现"Completed"但数据不符预期&#xff0c;或是直接"Failed"时&#xff0c;如何快速定位问题根源&#xff1f;本文将系统性地拆解SAP Cloud Platfor…...

物联网项目踩坑实录:RS485温湿度传感器数据上传,为什么我的TCP服务器收不到数据?

物联网项目实战&#xff1a;RS485温湿度传感器数据上传的七大常见故障排查指南 当你满怀期待地将RS485温湿度传感器通过4G DTU连接到远程TCP服务器&#xff0c;却发现数据链路像被施了魔法般毫无反应——这种挫败感每个物联网开发者都深有体会。本文不会重复那些基础教程&#…...

B站m4s视频转换完整指南:一键永久保存你的缓存视频

B站m4s视频转换完整指南&#xff1a;一键永久保存你的缓存视频 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经收藏了B站上精彩的视频…...

别再死记硬背了!从MOS管沟道宽长比到单元延时,用大白话讲透STA里的RC充放电模型

从MOS管到时序报告&#xff1a;用物理直觉理解STA中的RC延时模型 每次打开时序报告看到密密麻麻的延时数据时&#xff0c;你是否好奇过这些数字背后的物理意义&#xff1f;为什么一个简单的反相器会有几十皮秒的延时&#xff1f;为什么调整MOS管的宽长比能改变单元速度&#xf…...

深入理解RH850 CAN模块的“状态机”:通信、错误处理与Bus-Off恢复机制全解析

RH850 CAN模块状态机深度解析&#xff1a;从通信机制到Bus-Off恢复实战 1. RH850 CAN模块状态机架构精要 在现代汽车电子系统中&#xff0c;CAN总线如同神经脉络般连接着各个ECU单元。RH850微控制器的RS-CAN模块通过精心设计的状态机机制&#xff0c;为工程师提供了灵活可靠的通…...

告别BDC!手把手教你用ABAP函数WS_DELIVERY_UPDATE实现VL02N交货过账(附完整代码与调试技巧)

从BDC到标准函数&#xff1a;实战解析WS_DELIVERY_UPDATE在交货单过账中的高效应用 在SAP系统开发中&#xff0c;交货单过账&#xff08;VL02N&#xff09;是物流模块的核心操作之一。传统BDC录屏方式虽然直观&#xff0c;但面对复杂业务场景时往往显得笨拙且难以维护。本文将深…...

AI-Rules:为AI应用构建声明式规则引擎,实现智能与规则的解耦

1. 项目概述&#xff1a;AI-Rules&#xff0c;一个为AI应用量身定制的规则引擎在AI应用开发领域&#xff0c;我们常常面临一个核心矛盾&#xff1a;一方面&#xff0c;我们希望模型能够灵活、智能地处理复杂多变的输入&#xff1b;另一方面&#xff0c;业务场景又要求输出必须严…...

OpenClaw技能库实战:29个核心技能构建AI自动化工作流

1. 项目概述&#xff1a;一站式OpenClaw技能库的构建与实战价值如果你正在寻找一个能帮你把AI从“聊天机器人”变成“全能数字员工”的工具&#xff0c;那么OpenClaw很可能已经进入了你的视野。但真正的问题来了&#xff1a;安装好OpenClaw之后&#xff0c;下一步该做什么&…...

AI记忆工程:上下文压缩与管理全解析,AI开发实战

AI记忆工程&#xff1a;构建大模型的“海马体”——上下文管理与压缩深度解析在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;LLM&#xff09;虽然具备了惊人的通用能力&#xff0c;但在处理长对话、复杂任务链以及长期知识保持时&#xff0c;仍面临着“遗忘”与“…...

手把手教你用OpenCV和PyTorch为MPII数据集实现数据增强(旋转/缩放/翻转/噪声)

深度学习实战&#xff1a;MPII人体姿态数据集增强全流程解析 在计算机视觉领域&#xff0c;人体姿态估计一直是极具挑战性的研究方向。MPII Human Pose数据集作为该领域的基准测试集&#xff0c;包含了约25,000张图像和超过40,000个标注了16个关节点的样本。对于刚入门的研究者…...