Skip to main content
本笔记本介绍了如何使用 Unstructured 文档加载器 来加载多种类型的文件。Unstructured 目前支持加载文本文件、PowerPoint、HTML、PDF、图像等多种格式。 有关在本地设置 Unstructured 的更多说明,包括设置所需的系统依赖项,请参阅 Unstructured

概述

集成详情

加载器特性

设置

凭证

默认情况下,langchain-unstructured 安装的是一个占用空间较小的版本,需要将分区逻辑卸载到 Unstructured API,这需要一个 API 密钥。如果您使用本地安装,则不需要 API 密钥。要获取您的 API 密钥,请访问此网站获取 API 密钥,然后在下面的单元格中设置:

安装

常规安装

运行本笔记本其余部分需要以下包。

本地安装

如果您希望在本地运行分区逻辑,则需要安装一系列系统依赖项,如 Unstructured 文档此处 所述。 例如,在 Mac 上,您可以使用以下命令安装所需的依赖项:
您可以使用以下命令安装本地所需的 pip 依赖项:

初始化

UnstructuredLoader 允许从多种不同的文件类型加载。要了解有关 unstructured 包的完整信息,请参阅其文档。在此示例中,我们展示了从文本文件和 PDF 文件加载。

加载

惰性加载

后处理

如果您需要在提取后对 unstructured 元素进行后处理,可以在实例化 UnstructuredLoader 时,将 str -> str 函数列表传递给 post_processors 关键字参数。这也适用于其他 Unstructured 加载器。下面是一个示例。

Unstructured API

如果您希望使用较小的包快速上手并获取最新的分区功能,可以 pip install unstructured-clientpip install langchain-unstructured。有关 UnstructuredLoader 的更多信息,请参阅 Unstructured 提供程序页面 当您传入 api_key 并设置 partition_via_api=True 时,加载器将使用托管的 Unstructured 无服务器 API 处理您的文档。您可以生成一个免费的 Unstructured API 密钥 如果您希望自托管 Unstructured API 或在本地运行,请查看用于自托管 Unstructured API 的 Docker 镜像说明
您还可以使用 UnstructuredLoader 通过单个 API 调用批量处理多个文件。

Unstructured SDK 客户端

使用 Unstructured API 进行分区依赖于 Unstructured SDK 客户端 如果您想自定义客户端,则必须将 UnstructuredClient 实例传递给 UnstructuredLoader。下面是一个示例,展示了如何自定义客户端的功能,例如使用您自己的 requests.Session()、传递替代的 server_url 以及自定义 RetryConfig 对象。有关自定义客户端或 SDK 客户端接受的其他参数的更多信息,请参阅 Unstructured Python SDK 文档和 API 参数 文档的客户端部分。请注意,所有 API 参数都应传递给 UnstructuredLoader
警告:下面的示例可能未使用最新版本的 UnstructuredClient,未来版本可能会有破坏性更改。有关最新示例,请参阅 Unstructured Python SDK 文档。

分块

UnstructuredLoader 不支持像旧加载器 UnstructuredFileLoader 等那样使用 mode 参数来分组文本。相反,它支持“分块”。Unstructured 中的分块与您可能熟悉的基于纯文本特征(如指示段落边界或列表项边界的字符序列 “\n\n” 或 “\n”)形成块的其他分块机制不同。相反,所有文档都使用每种文档格式的特定知识进行拆分,将文档划分为语义单元(文档元素),并且只有当单个元素超过所需的最大块大小时,我们才需要求助于文本拆分。通常,分块会组合连续元素以形成尽可能大的块,而不超过最大块大小。分块生成 CompositeElement、Table 或 TableChunk 元素的序列。每个“块”都是这三种类型之一的实例。 有关分块选项的更多详细信息,请参阅此页面,但要重现与 mode="single" 相同的行为,您可以设置 chunking_strategy="basic"max_characters=<某个非常大的数字>include_orig_elements=False

加载网页

UnstructuredLoader 在本地运行时接受 web_url 关键字参数,该参数会填充底层 Unstructured 分区url 参数。这允许解析远程托管的文档,例如 HTML 网页。 使用示例:

API 参考

有关 UnstructuredLoader 所有功能和配置的详细文档,请前往 API 参考