You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Document AI API OCR响应pages数组为空,无法提取单页文本求助

问题

使用Google Document AI API进行PDF文本OCR提取时,OCR操作执行成功,能通过document.text获取完整文档内容,但document.pages数组始终为空,无法按页提取文本。

简化代码如下:

from google.cloud import documentai_v1beta3 as documentai

@classmethod
def extract_text(cls, book_link: str):
    """Extract text from book using OCR"""

    # Upload the book to GCS
    filename = cls._upload_file_to_gcs(book_link=book_link)

    # Create the Batch Process Request
    gcs_input_uri = f"gs://{BUCKET}/input/{filename}"
    operation = cls._create_batch_process_request(gcs_input_uri=gcs_input_uri)

    # Wait for the operation to finish
    try:
        operation.result(timeout=300)
    # Catch exception when operation doesn't finish before timeout
    except (RetryError, InternalServerError) as e:
        raise exceptions.APIException(
            detail={e.message}
        )

    metadata = documentai.BatchProcessMetadata(operation.metadata)

    if metadata.state != documentai.BatchProcessMetadata.State.SUCCEEDED:
        raise exceptions.APIException(
            detail={metadata.state_message}
        )

    output_documents = cls._get_output_documents(metadata=metadata)

    # Delete the input file from GCS
    cls.gcs_bookmapping_bucket.delete_blob(blob_name=f"input/{filename}")

    # Extract text from the output documents
    book_text = []
    for document in output_documents:
        for page in document.pages: # **here document.pages is always empty**
            book_text.append(
                cls._layout_to_text(layout=page.layout, text=document.text)
            )


    return book_text

已确认输入PDF包含多页,排除输入数据问题;先后尝试过documentai_v1beta3和documentai_v1版本,问题仍未解决。如何实现按页提取文本?

解决方法
  • 配置批量请求的分页输出参数:在创建BatchProcessRequest时,必须设置document_output_config.split_pages=True。未开启该参数时,API会将所有页面文本合并到document.text中,但不会填充pages数组。开启后,API会为每个页面生成独立的输出文档,或在主文档中正确填充pages数组(取决于具体输出配置),这样就能按页处理内容。
  • 检查输出文档读取逻辑:如果开启了split_pages,输出会生成多个对应单页的文档文件,需确保_get_output_documents方法能正确遍历所有输出文件并加载每个页面的document对象。若之前只读取了单个输出文件,会导致无法获取分页数据。
  • 验证处理器配置:确保使用的是支持分页输出的最新OCR处理器(如官方"Document OCR"处理器),避免使用旧版或功能受限的处理器。同时检查处理器设置中是否启用了页面级数据返回选项。

另外,也可以先通过单文件非批量请求测试,确认pages数组是否正常填充,以此排查是否为批量请求的配置问题。

内容的提问来源于stack exchange,提问作者Raja Rehan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 17:32:06