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

Firebase云函数调用Document AI API报400错误:无有效处理架构

问题描述

在Firebase Cloud Function中处理Google Cloud Storage上传的PDF时,函数能正常触发,但调用Google Cloud Document AI自定义处理器时持续报错:400 No valid schema provided for processing。

已完成以下排查:

  • 验证过处理器ID正确
  • 测试用服务账号拥有Document AI、Cloud Storage和Firebase的所有者权限
  • 更换过不同的PDF文件测试

确认问题出在请求结构上,但无法定位具体错误点。

问题代码
from google.cloud import documentai_v1beta3 as documentai
from google.api_core.client_options import ClientOptions
import os
from google.cloud import storage

def process_pdf(event, context):
    # 补充blob获取逻辑(原代码遗漏部分)
    bucket = storage.Client().get_bucket(event['bucket'])
    blob = bucket.blob(event['name'])

    location = 'us' 
    opts = ClientOptions(api_endpoint=f"{location}-documentai.googleapis.com")
    documentai_client = documentai.DocumentProcessorServiceClient(client_options=opts)

    project_id = os.environ.get('PROJECT_ID')
    processor_id = "{{MY_PROCESSOR_ID}}"  # 替换为实际处理器ID
    name = documentai_client.processor_path(project_id, location, processor_id)

    content = blob.download_as_bytes()
    raw_document = documentai.RawDocument(content=content, mime_type="application/pdf")
    request = documentai.ProcessRequest(name=name, raw_document=raw_document)

    try:
        result = documentai_client.process_document(request=request)
    except Exception as e:
        print(f"Error processing the document: {type(e).__name__} - {str(e)}")
        return
解决方案

这个错误的核心原因是自定义Document AI处理器关联了Schema,但请求中未指定要使用的Schema资源名称,具体修复步骤如下:

  1. 获取Schema完整资源名称
    登录Google Cloud控制台,进入Document AI页面,找到你的自定义处理器:

    • 进入处理器详情页,切换到「Schema」标签
    • 复制Schema的完整资源名称,格式示例:projects/[你的项目ID]/locations/us/processors/[处理器ID]/schemas/[Schema ID]
  2. 修改请求代码,添加schema_name参数
    在构建ProcessRequest时,补充schema_name字段,指定上面复制的Schema资源名称:

    request = documentai.ProcessRequest(
        name=name,
        raw_document=raw_document,
        schema_name="你的Schema完整资源名称"
    )
    
  3. 额外验证点

    • 确认处理器的Schema状态为「已启用」
    • 如果使用了Schema版本,需指定对应版本的资源名称(格式在原Schema名称后加上/versions/[版本号])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 22:45:06