AI知识分享AI知识分享
✿导航
  • 人工智能
  • 神经网络
  • 机器学习
  • 深度学习
  • 强化学习
  • 自然语言处理
  • 计算机视觉
  • 数学基础
  • 大模型基础
  • 动手学深度学习
  • 理论理解
  • 工程实践
  • 应用开发
  • AI For Everyone
  • AIGC_2024大会
  • AIGC_2025大会
  • Agentic AI
  • Transformer
  • PyTorch
  • HuggingFace
  • LangChain
  • 蒸馏
  • RAG
  • 目标检测
  • MCP
  • Cursor
  • 概念
  • 意图识别
  • 工具
  • 学习路线
  • PyTorch 资料
  • 公式学习
  • PyTorch 基础练习
✿导航
  • 人工智能
  • 神经网络
  • 机器学习
  • 深度学习
  • 强化学习
  • 自然语言处理
  • 计算机视觉
  • 数学基础
  • 大模型基础
  • 动手学深度学习
  • 理论理解
  • 工程实践
  • 应用开发
  • AI For Everyone
  • AIGC_2024大会
  • AIGC_2025大会
  • Agentic AI
  • Transformer
  • PyTorch
  • HuggingFace
  • LangChain
  • 蒸馏
  • RAG
  • 目标检测
  • MCP
  • Cursor
  • 概念
  • 意图识别
  • 工具
  • 学习路线
  • PyTorch 资料
  • 公式学习
  • PyTorch 基础练习
  • Transformer

    • Transformer - 概述
    • Transformer - Encoding and Decoding Context with Attention
    • Transformer - Tokenizers
    • Transformer - 架构
    • Transformer - Block
    • Transformer - 自注意力
    • Transformer - MoE
    • Transformer - Transformer
  • PyTorch

    • PyTorch - Dataset
    • PyTorch - TensorBoard
    • PyTorch - transforms
    • PyTorch - DataLoader
    • PyTorch - nn
    • PyTorch - Model
    • PyTorch - train
    • PyTorch - Optimizer
    • PyTorch - Practice
    • PyTorch - 使用笔记
    • PyTorch - Deep Learning 总览
    • PyTorch - Workflow
    • PyTorch - Classification
    • PyTorch - 课程外链索引
    • PyTorch - Python 笔记
  • HuggingFace

    • HuggingFace - Transformers
    • HuggingFace - Pipeline
    • HuggingFace - Tokenizer
    • HuggingFace - Model
    • HuggingFace - Datasets
    • HuggingFace - Evaluate
    • HuggingFace - Trainer
    • HuggingFace - Gradio / 杂记
  • LangChain

    • LangChain - Model
    • LangChain - Chain
    • LangChain - Memory
    • LangChain - Loader
    • LangChain - Vector Stores
    • LangChain - RAG基础
    • LangChain - RAG

LangChain - Loader

概念

LangChain内置了许多种类的文档加载器

  • 文档加载器均继承于BaseLoader类,返回Document类型的对象;
  • load方法一次性批量加载(返回 list[Document]),如内容过多可能list太大,出现内存溢出问题;
  • lazy_load方法会得到生成器对象,可用for循环依次获取单个Document对象,适用于大文档避免内存存不下。

CSVLoader

CSVLoader用于加载CSV文件,加载成功得到的即Document对象

使用方法:

image-20260501091100773

JSONLoader

JSONLoader用于将JSON数据加载为Document类型对象。

使用JSONLoader需要额外安装: pip install jq

jq是一个跨平台的json解析工具,LangChain底层对JSON的解析就是基于jq工具实现的。

将JSON数据的信息抽取出来,封装为Document对象,抽取的时候依赖jq_schema语法。

使用方法

JSONLoader使用jq的解析语法,常见如:

  • .表示根、[]表示数组
  • .name表示从根取name的值
  • .hobby[1]表示取hobby对应数组的第二个元素
  • .[]表示将数组内的每个字典(JSON对象)都取到
  • .[].name表示取数组内每个字典(JSON)对象的name对应的值

JSONLoader初始化有4个主要参数:

  • file_path:文件路径,必填
  • jq_schema:jq解析语法,必填
  • text_content:抽取到的是否是字符串,默认True,非必填
  • json_lines:是否是JsonLines文件,默认False,非必填
    • JsonLines文件:每一行都是一个独立的字典(Json对象)

运行demo

image-20260501091857604

PyPDFLoader

LangChain内支持许多PDF的加载器,选择其中的PyPDFLoader使用。

loader = PyPDFLoader(
    file_path="./data/pdf1.pdf",

    # single模式,不管有多少页,只返回1个Document文档
    # 默认Page模式,每一个页面生成一个Document文档
    mode="single",
    password='password', # 文件密码
)

运行demo

image-20260501092641494

TextLoader

TextLoader是一个简单的加载器,可以加载文本文件内容,返回仅有一个Document对象的list。

RecursiveCharacterTextSplitter递归字符文本分割器,是LangChain官方推荐的默认分割器。

  • 基于文本的自然段落分割大文档为小文档
  • 可以指定小文档的最大字符数、重叠字符数
  • 可以手动指定段落划分的依据(符号)以及字符数量统计函数

image-20260501093257589

最近更新: 2026/5/4 10:38
Contributors: klc407073648
Prev
LangChain - Memory
Next
LangChain - Vector Stores