Skip to main content
Azure AI Document Intelligence(前身为 Azure Form Recognizer)是一种基于机器学习的服务,可从数字或扫描的 PDF、图像、Office 和 HTML 文件中提取文本(包括手写内容)、表格、文档结构(例如标题、章节标题等)和键值对。 Document Intelligence 支持 PDFJPEG/JPGPNGBMPTIFFHEIFDOCXXLSXPPTXHTML 格式。
使用 Document Intelligence 的加载器当前实现可以逐页处理内容,并将其转换为 LangChain 文档。默认输出格式为 markdown,可以轻松与 MarkdownHeaderTextSplitter 配合使用,实现语义文档分块。您也可以使用 mode="single"mode="page" 以单页或按页分割的纯文本形式返回内容。

前提条件

在以下 3 个预览区域之一创建 Azure AI Document Intelligence 资源:East USWest US2West Europe —— 如果您尚未创建,请按照此文档进行操作。您需要将 <endpoint><key> 作为参数传递给加载器。
pip install -qU  langchain langchain-community azure-ai-documentintelligence

示例 1

第一个示例使用本地文件,该文件将被发送到 Azure AI Document Intelligence。 初始化文档分析客户端后,我们可以创建 DocumentIntelligenceLoader 的实例:
from langchain_community.document_loaders import AzureAIDocumentIntelligenceLoader

file_path = "<filepath>"
endpoint = "<endpoint>"
key = "<key>"
loader = AzureAIDocumentIntelligenceLoader(
    api_endpoint=endpoint, api_key=key, file_path=file_path, api_model="prebuilt-layout"
)

documents = loader.load()
默认输出包含一个格式为 markdown 内容的 LangChain 文档:
documents

示例 2

输入文件也可以是公开的 URL 路径,例如 raw.githubusercontent.com/Azure-Samples/cognitive-services-REST-api-samples/master/curl/form-recognizer/rest-api/layout.png
url_path = "<url>"
loader = AzureAIDocumentIntelligenceLoader(
    api_endpoint=endpoint, api_key=key, url_path=url_path, api_model="prebuilt-layout"
)

documents = loader.load()
documents

示例 3

您也可以指定 mode="page" 来按页加载文档。
from langchain_community.document_loaders import AzureAIDocumentIntelligenceLoader

file_path = "<filepath>"
endpoint = "<endpoint>"
key = "<key>"
loader = AzureAIDocumentIntelligenceLoader(
    api_endpoint=endpoint,
    api_key=key,
    file_path=file_path,
    api_model="prebuilt-layout",
    mode="page",
)

documents = loader.load()
输出将以列表形式存储,每页作为独立的文档:
for document in documents:
    print(f"Page Content: {document.page_content}")
    print(f"Metadata: {document.metadata}")

示例 4

您还可以指定 analysis_feature=["ocrHighResolution"] 来启用附加功能。更多信息请参见:aka.ms/azsdk/python/documentintelligence/analysisfeature
from langchain_community.document_loaders import AzureAIDocumentIntelligenceLoader

file_path = "<filepath>"
endpoint = "<endpoint>"
key = "<key>"
analysis_features = ["ocrHighResolution"]
loader = AzureAIDocumentIntelligenceLoader(
    api_endpoint=endpoint,
    api_key=key,
    file_path=file_path,
    api_model="prebuilt-layout",
    analysis_features=analysis_features,
)

documents = loader.load()
输出包含使用高分辨率附加功能识别的 LangChain 文档:
documents