首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >AI大模型企业应用实战(11)-Document Loader文件加载器机制

AI大模型企业应用实战(11)-Document Loader文件加载器机制

原创
作者头像
JavaEdge
修改2026-04-25 07:32:35
修改2026-04-25 07:32:35
4990
举报
文章被收录于专栏:AIGC大模型应用AIGC大模型应用

0 前言

loader机制让大模型具备实时学习的能力:

1 加载markdown

准备一个 md 文件:

代码语言:python
复制
# 使用loader来加载markdown文本
from langchain_community.document_loaders import TextLoader

loader = TextLoader("loader.md")
loader.load()

[Document(metadata={'source': 'loader.md'}, page_content='# 我是一个markdown加载示例\n- 第一项目\n- 第二个项目\n- 第三个项目\n\n## 第一个项目\n编程严选网,最厉害专业的AI研究基地\n\n## 第二个项目\nAIGC打造未来AI应用天地\n\n## 第三个项目\n编程严选网是一个非常牛逼的AI媒体')]

2 加载cvs

代码语言:python
复制
#使用 CSVLoader 来加载 csv 文件
from langchain.document_loaders.csv_loader import CSVLoader

#loader = Loader(file_path="loader.")
loader = CSVLoader(file_path="loader.csv")
data = loader.load()
print(data)

先下包:

代码语言:python
复制
! pip install "unstructured[xlsx]"

unstructured处理非结构化文档的 Python 库,支持解析多种格式的文件,包括 PDF、Word、HTML、Markdown、图片等。而RAG核心需求之一就是从各种格式文档中提取文本内容,再将其向量化存入知识库供后续检索。

xlsx是unstructured的一个可选依赖组(extras)。其采用模块化设计,核心包本身很轻量,只有在需要处理特定格式时才安装对应的额外依赖。该扩展专门用于支持解析 Excel 文件(.xlsx 格式),它会额外安装 openpyxl 等处理 Excel 所需的依赖库。

代码语言:python
复制
# 某目录下有excel文件,要把目录下所有的xlxs文件加载进来
from langchain_community.document_loaders import DirectoryLoader

# 目录下的.html和.rst文件不会被这种loader加载
# loader = DirectoryLoader("目录地址",glob="指定加载说明格式的文件")
loader = DirectoryLoader(path="./example/",glob="*.xlsx")
docs = loader.load()
len(docs)

3 加载html

3.1 UnstructuredHTMLLoader

LangChain 中用于加载和解析 HTML 文件的文档加载器。基于 unstructured 库实现,智能地从 HTML 文件中提取文本内容,自动过滤掉 HTML 标签、脚本、样式等无关内容,只保留有意义的文本信息。

与普通的 HTML 解析器相比,其

3.1.1 核心优势

使用 unstructured 库的智能文档分析能力,能够识别 HTML 文档的结构(如标题、段落、列表、表格等),并将其转换为结构化的文本块。这对于 RAG 场景非常有价值,因为保留文档结构有助于提高后续检索的准确性。

3.1.2 使用方式

返回的是一个 Document 对象列表,每个 Document 包含两个核心属性:

  • page_content:提取出来的纯文本内容
  • metadata:包含文件来源路径等元数据信息
UnstructuredHTMLLoader v.s BSHTMLLoader(基于 BeautifulSoup)
  • 前者对复杂 HTML 结构的处理更智能,但需额外安装 unstructured 依赖
  • 后者更轻量,但对复杂布局的解析能力相对有限

处理结构复杂的网页时,推荐优先使用UnstructuredHTMLLoader。

代码语言:python
复制
from langchain_community.document_loaders import UnstructuredHTMLLoader

loader = UnstructuredHTMLLoader("loader.html")
data = loader.load()
data

加载 html 所有内容:

代码语言:python
复制
from langchain.document_loaders import BSHTMLLoader
loader = BSHTMLLoader("loader.html")
data = loader.load()
data

只加载去除标签后的关键内容:

代码语言:java
复制
from langchain_community.document_loaders import BSHTMLLoader
loader = BSHTMLLoader("loader.html")
data = loader.load()
data

4 加载JSON

先装 jq 包:

代码语言:python
复制
 ! pip install jq
代码语言:python
复制
from langchain_community.document_loaders import JSONLoader
loader = JSONLoader(
    file_path = "simple_prompt.json",jq_schema=".template",text_content=True
)
data = loader.load()
print(data)

[Document(metadata={'source': '/Users/javaedge/soft/PyCharmProjects/AIAgent/base/simple_prompt.json', 'seq_num': 1}, page_content='给我讲一个关于{name}的{what}故事')]

5 加载PDF

先装包:

代码语言:python
复制
! pip install pypdf
代码语言:python
复制
from langchain.document_loaders import PyPDFLoader
loader = PyPDFLoader("loader.pdf")
pages = loader.load_and_split()
pages[0]

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0 前言
  • 1 加载markdown
  • 2 加载cvs
  • 3 加载html
    • 3.1 UnstructuredHTMLLoader
      • 3.1.1 核心优势
      • 3.1.2 使用方式
      • UnstructuredHTMLLoader v.s BSHTMLLoader(基于 BeautifulSoup)
  • 4 加载JSON
  • 5 加载PDF
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档