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 或在本地运行,请查看 Docker 镜像自托管 Unstructured API 的说明
您还可以使用 UnstructuredLoader 通过 Unstructured API 在单个 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 参考