Google Cloud 文档 AI
Document AI 是 Google Cloud 提供的一个文档理解平台,用于将文档中的非结构化数据转换为结构化数据,使其更易于理解、分析和使用。
了解更多:
该模块包含一个基于Google Cloud的DocAI的PDF
解析器。
你需要安装两个库来使用这个解析器:
%pip install --upgrade --quiet langchain-google-community[docai]
首先,您需要设置一个Google云存储(GCS)桶,并按照此处描述创建您自己的光学字符识别(OCR)处理器:https://cloud.google.com/document-ai/docs/create-processor
GCS_OUTPUT_PATH
应该是 GCS 上的一个文件夹路径(以 gs://
开头),而 PROCESSOR_NAME
应该类似于 projects/PROJECT_NUMBER/locations/LOCATION/processors/PROCESSOR_ID
或 projects/PROJECT_NUMBER/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION_ID
。您可以通过编程方式获取它,或者从 Google Cloud Console 中的 Processor details
选项卡的 Prediction endpoint
部分复制。
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')
现在我们终于可以从解析结果生成文档了:
docs = list(parser.parse_from_results(results))
print(len(docs))
11