Skip to main content
Document AI 是 Google Cloud 的文档理解平台,可将文档中的非结构化数据转换为结构化数据,使其更易于理解、分析和使用。 了解更多: 该模块包含一个基于 Google Cloud DocAI 的 PDF 解析器。 使用此解析器需要安装以下两个库:
pip install -qU  langchain-google-community[docai]
首先,您需要按照以下说明设置 Google Cloud Storage(GCS)存储桶并创建光学字符识别(OCR)处理器:cloud.google.com/document-ai/docs/create-processor GCS_OUTPUT_PATH 应为 GCS 上某个文件夹的路径(以 gs:// 开头),PROCESSOR_NAME 格式应为 projects/PROJECT_NUMBER/locations/LOCATION/processors/PROCESSOR_IDprojects/PROJECT_NUMBER/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION_ID。您可以通过编程方式获取,或从 Google Cloud Console 中”处理器详情”标签页的”预测端点”部分复制。
GCS_OUTPUT_PATH = "gs://BUCKET_NAME/FOLDER_PATH"
PROCESSOR_NAME = "projects/PROJECT_NUMBER/locations/LOCATION/processors/PROCESSOR_ID"
from langchain_core.document_loaders.blob_loaders import Blob
from langchain_google_community import DocAIParser
现在,创建一个 DocAIParser
parser = DocAIParser(
    location="us", processor_name=PROCESSOR_NAME, gcs_output_path=GCS_OUTPUT_PATH
)
在此示例中,您可以使用上传到公共 GCS 存储桶的 Alphabet 财报文件。 2022Q1_alphabet_earnings_release.pdf 将文档传入 lazy_parse() 方法:
blob = Blob(
    path="gs://cloud-samples-data/gen-app-builder/search/alphabet-investor-pdfs/2022Q1_alphabet_earnings_release.pdf"
)
每页生成一个文档,共 11 个:
docs = list(parser.lazy_parse(blob))
print(len(docs))
11
您可以逐个对 blob 进行端到端解析。如果有大量文档,建议批量处理,甚至将解析与结果处理分离。
operations = parser.docai_parse([blob])
print([op.operation.name for op in operations])
['projects/543079149601/locations/us/operations/16447136779727347991']
您可以检查操作是否已完成:
parser.is_running(operations)
True
完成后,可以解析结果:
parser.is_running(operations)
False
results = parser.get_results(operations)
print(results[0])
DocAIParsingResults(source_path='gs://vertex-pgt/examples/goog-exhibit-99-1-q1-2023-19.pdf', parsed_path='gs://vertex-pgt/test/run1/16447136779727347991/0')
现在可以从解析结果生成 Documents:
docs = list(parser.parse_from_results(results))
print(len(docs))
11