使用Doc AI托管版Custom Document Extractor时Processor ID未找到问题
解决Doc AI托管版自定义提取器Processor ID未识别的问题
核心问题分析
使用控制台「部署与使用」标签页的托管版自定义文档提取器时,出现PROCESSOR_NOT_FOUND错误,且list_processors接口无法识别该ID,但通用开箱即用处理器正常工作,说明问题出在托管版处理器的调用方式、位置参数或权限配置上。
排查与解决步骤
确认托管版处理器的完整资源路径
托管版自定义提取器的处理器ID并非单独字符串,而是包含完整层级的资源名称。控制台「部署与使用」页的托管版处理器,完整名称格式为:projects/{project_id}/locations/{location}/processors/{processor_id},检查代码中是否直接使用短ID而非完整路径。修正位置参数(location)
托管版处理器的位置可能不是us或eu这类全局区域,而是具体区域(如us-central1)。到控制台查看托管版处理器的详情页,确认实际部署区域,替换代码中的location参数。检查API调用权限
- 确保当前账号拥有
documentai.processors.get和documentai.processors.list权限,可通过IAM角色roles/documentai.admin或roles/documentai.user授予。 - 验证本地Google Cloud认证是否正确,可执行
gcloud auth application-default login重新认证,或确认服务账号密钥文件配置无误。
- 确保当前账号拥有
调整list_processors代码的区域参数
若托管版处理器部署在特定区域,修改代码中的location值:from google.cloud import documentai_v1 def list_processors(project_id, location): client = documentai_v1.DocumentProcessorServiceClient() parent = f"projects/{project_id}/locations/{location}" response = client.list_processors(parent=parent) for processor in response: print(f"Processor name: {processor.name}") print(f"Processor display name: {processor.display_name}\n") project_id = "你的项目ID" location = "us-central1" # 替换为托管版处理器实际部署的区域 list_processors(project_id, location)直接使用完整处理器名称调用
在调用自定义提取器时,直接传入控制台复制的完整处理器资源名称,而非单独ID:def process_document(): client = documentai_v1.DocumentProcessorServiceClient() # 替换为控制台复制的完整处理器名称 processor_name = "projects/你的项目ID/locations/us-central1/processors/你的托管版处理器ID" # 后续处理逻辑...
内容的提问来源于stack exchange,提问作者Energy Plat
相关产品推荐
相关产品推荐

