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

LlamaIndex 第六篇 SimpleDirectoryReader

SimpleDirectoryReader 是将本地文件数据加载到 LlamaIndex 的最简单方式。虽然在实际生产场景中,您更可能需要使用 LlamaHub 提供的多种数据读取器(Reader),但 SimpleDirectoryReader 无疑是快速入门的理想选择。

支持的文件类型

默认情况下,SimpleDirectoryReader 会尝试读取所有文件,并将其视为纯文本处理。除普通文本外,它还明确支持以下文件类型(通过文件扩展名自动识别):

  • .csv - comma-separated values

  • .docx - Microsoft Word

  • .epub - EPUB ebook format

  • .hwp - Hangul Word Processor

  • .ipynb - Jupyter Notebook

  • .jpeg, .jpg - JPEG image

  • .mbox - MBOX email archive

  • .md - Markdown

  • .mp3, .mp4 - audio and video

  • .pdf - Portable Document Format

  • .png - Portable Network Graphics

  • .ppt, .pptm, .pptx - Microsoft PowerPoint

您可能会注意到这里缺少 JSON 文件类型——针对 JSON 格式,我们推荐使用专用的 JSON Loader 工具。

基本的用法

最基本的用法是传入一个 input_dir 参数,系统将自动加载该目录下所有支持的文件类型:

from llama_index.core import SimpleDirectoryReaderreader = SimpleDirectoryReader(input_dir="path/to/directory")
documents = reader.load_data()

子目录读取功能说明

默认情况下,SimpleDirectoryReader 仅读取目录顶层的文件。如需读取子目录中的文件,需设置参数 recursive=True

SimpleDirectoryReader(input_dir="path/to/directory", recursive=True)

文件加载迭代处理

您还可以使用 iter_data() 方法在文件加载时进行迭代处理:

reader = SimpleDirectoryReader(input_dir="path/to/directory", recursive=True)
all_docs = []
for docs in reader.iter_data():# <do something with the documents per file>all_docs.extend(docs)
文件加载限制机制

除了加载目录中的所有文件,您还可以直接传入文件路径列表进行选择性加载:

# 通过明确路径列表加载特定文件
selected_files = ['/data/reports/Q1.pdf','/data/notes/meeting.docx'
]
reader = SimpleDirectoryReader(input_files=selected_files  # 关键参数
)

或者,您可以通过 exclude 参数指定需要排除的文件路径列表:

reader = SimpleDirectoryReader(input_dir="./project_docs",exclude=["temp/backup.pdf",      # 特定文件排除"drafts/",              # 整个目录排除"*.tmp"                # 通配符模式排除]
)

您还可以通过设置 required_exts 参数,指定仅加载特定扩展名的文件:

reader = SimpleDirectoryReader(input_dir="./documents",required_exts=[".pdf", ".docx", ".pptx"],  # 白名单扩展名exclude=[".~lock.*"]  # 可搭配黑名单使用
)

您可以通过设置 num_files_limit 参数来限制最大文件加载数量:

reader = SimpleDirectoryReader(input_dir="./big_data",num_files_limit=1000,  # 最多加载1000个文件file_ordering="modified_desc"  # 按修改时间降序优先加载
)
指定文件编码

SimpleDirectoryReader 默认要求文件采用 UTF-8 编码,但您可以通过 encoding 参数自定义编码格式:

reader = SimpleDirectoryReader(input_dir="./text_data",encoding="utf-8",  # 默认编码fallback_encodings=["gbk", "iso-8859-1"]  # 备选编码
)

相关文章:

  • PostgreSQL 的 pg_advisory_lock 函数
  • Redhat 系统详解
  • Windows系统下【Celery任务队列】python使用celery 详解(二)
  • Windows 下 dll转换成lib
  • vue知识点总结 依赖注入 动态组件 异步加载
  • 【星海随笔】信息安全相关标准
  • Windows下Dify连接Ollama无效
  • 反向沙箱介绍
  • C++ —— 类的嵌套和循环依赖问题
  • KERNEL32!NlsServerInitialize函数分析创建了一个目录对象和目录对象下面的5个对象
  • 【MySQL】-- 事务
  • 华为5.7机考第一题充电桩问题Java代码实现
  • 嵌入式系统架构验证工具:AADL Inspector v1.10 全新升级
  • 优雅草星云智控系统产品发布会前瞻:SNMP协议全设备开启指南-优雅草卓伊凡
  • 代码随想论图论part06冗余连接
  • 【MySQL】存储引擎 - ARCHIVE、BLACKHOLE、MERGE详解
  • 多模型协同预测在风机故障预测的应用(demo)
  • Java设计模式之抽象工厂模式:从入门到精通
  • 服务器配置错误导致SSL/TLS出现安全漏洞,如何进行排查?
  • 在自然语言处理任务中,像 BERT 这样的模型会在输入前自动加上一些特殊token
  • 常州市委原常委、组织部部长陈翔调任江苏省民宗委副主任
  • 司法部:建立行政执法监督企业联系点,推行行政执法监督员制度
  • 多地跟进官宣下调公积金贷款利率,最低降至2.1%
  • 公元1057年:千年龙虎榜到底有多厉害?
  • 建筑瞭望|融入自然的新泳池,治愈了中央公园的历史旧伤
  • 董卓的前半生:边荒之地的工具人