非结构化 Unstructured

本页介绍如何在 LangChain 中使用 unstructured (opens in a new tab) 生态系统。来自 Unstructured.IO (opens in a new tab) 的 unstructured 软件包从原始源文件(如 PDF 和 Word 文档)中提取干净的文本。

本页分为两个部分:安装和设置,以及特定 unstructured 包装器的参考。

安装和设置

如果您正在使用本地运行的加载程序,请使用以下步骤在本地运行 unstructured 及其依赖项。

  • 使用 pip install "unstructured[local-inference]" 安装 Python SDK。

  • 如果您的系统中尚未安装以下系统依赖项,请安装它们。 根据您要解析的文档类型,您可能不需要全部安装。

    • libmagic-dev(文件类型检测)
    • poppler-utils(图片和 PDF)
    • tesseract-ocr(图片和 PDF)
    • libreoffice(MS Office 文档)
    • pandoc(EPUBs)
  • 如果您使用“hi_res”策略解析 PDF 文件,请运行以下命令安装 detectron2 模型,unstructured 用于布局检测:

    • pip install "detectron2@git+https://github.com/facebookresearch/detectron2.git@e2ce8dc#egg=detectron2"
    • 如果未安装 detectron2,unstructured 将退回到使用“fast”策略处理 PDF 文件,该策略直接使用 pdfminer,不需要 detectron2。

如果您想更快地开始运行,可以简单地运行 pip install unstructured 并使用 UnstructuredAPIFileLoader 或 UnstructuredAPIFileIOLoader。这将使用托管的 Unstructured API 处理您的文档。请注意,目前(截至 2023 年 5 月 1 日),Unstructured API 是开放的,但很快将需要一个 API 密钥。一旦 API 密钥可用,Unstructured 文档页面 (opens in a new tab) 将提供生成 API 密钥的说明。如果您想自主托管 Unstructured API 或在本地运行它,请参阅 这里 (opens in a new tab) 的说明。

包装器

数据加载器

langchain 内的主要 非结构化 包装器是数据加载器。以下显示了如何使用最基本的非结构化数据加载器。在 langchain.document_loaders 模块中还有其他特定于文件的数据加载器可用。

from langchain.document_loaders import UnstructuredFileLoader
 
loader = UnstructuredFileLoader("state_of_the_union.txt")
loader.load()
 

如果使用 UnstructuredFileLoader(mode="elements") 实例化加载器,则在可用时,加载器将跟踪其他元数据,如页码和文本类型(即标题、叙述文本)。