LangChain

非结构化 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"
    • 如果未安装detectron2unstructured将退回到使用“fast”策略处理PDF文件,该策略直接使用pdfminer,不需要detectron2

如果您想更快地开始运行,可以简单地运行pip install unstructured 并使用UnstructuredAPIFileLoaderUnstructuredAPIFileIOLoader。这将使用托管的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")实例化加载器,则在可用时,加载器将跟踪其他元数据,如页码和文本类型(即标题、叙述文本)。