非结构化 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") 实例化加载器,则在可用时,加载器将跟踪其他元数据,如页码和文本类型(即标题、叙述文本)。