Cloud Document AI API 之前未在项目 xxxxxx 中使用过或已禁用

Cloud Document AI API has not been used in project xxxxxx before or it is disabled

调用 google 文档 api 时,出现以下错误。 apis 已启用,即使在等待几个小时后仍然出现相同的错误。任何建议

RpcException: Status(StatusCode="PermissionDenied", Detail="Cloud Document AI API 之前未在项目 xxxxxxx 中使用过或已禁用。 通过访问 https://console.developers.google.com/apis/api/documentai.googleapis.com/overview?project=xxxxxxx 启用它,然后重试。 如果您最近启用了此 API,请等待几分钟,让操作传播到我们的系统并重试。", DebugException="Grpc.Core.Internal.CoreErrorDetailException: {"创建":"@1646997388.673000000","描述": “从对等 ipv4:234.234324.324234:443”收到错误,“文件”:“……\src\core\lib\surface\call.cc”,“file_line”:1070,“[=44” =]”: “Cloud Document AI API 之前未在项目 xxxxxx 中使用过或已被禁用。 通过访问 https://console.developers.google.com/apis/api/documentai.googleapis.com/overview?project=xxxx 启用它,然后重试。 如果您最近启用了此 API,请等待几分钟,让操作传播到我们的系统,然后重试。",""grpc_status":7}")

 ByteString content = ByteString.CopyFrom(bytes);

            DocumentProcessorServiceClient documentProcessorServiceClient = new DocumentProcessorServiceClientBuilder
            { CredentialsPath = "D:\poised-aleph-3xx-6a3xxxx4343a03.json" }
            .Build();

            ProcessRequest request = new ProcessRequest
            {
                ProcessorName = ProcessorName.FromProjectLocationProcessor("invoiceprocessor", "us", "343431"),
                SkipHumanReview = true,
                RawDocument = new RawDocument
                {
                    MimeType = "application/pdf",
                    Content = content
                }
            };

            request.RawDocument.MimeType = "application/pdf";
            request.RawDocument.Content = content;

            // Make the request
            ProcessResponse response = await 
 documentProcessorServiceClient.ProcessDocumentAsync(request);

修复正确的项目 ID 后,如开发者控制台 -> 预测端点所示

Detail="Permission 'documentai.processors.processOnline' denied on resource 
'//documentai.googleapis.com/projects/8xxxxxxxx7/locations/us/processors/axxxxxxxxxx1f' (or it may not exist)."

将文档 AI 角色添加到服务帐户

最终修复

由于@anand (OP) 已经修复了上述更新问题中提到的第一个问题,因此 OP 得到了以下最近的错误

RpcException: Status(StatusCode="PermissionDenied", Detail="Permission 'documentai.processors.processOnline' denied on resource 
'//documentai.googleapis.com/projects/xxxx/locations/us/processors/xxxxxx' (or it may not exist)."

此错误与用于验证 API 的服务帐户的权限有关。

您可以通过导航到 IAM 和管理 > IAM 来更新您的服务帐户权限

您可以浏览列表并从该页面编辑您的服务帐户的权限。您可以按照此 documentation 了解如何为 Document AI 设置服务帐户身份验证。

由于您的错误消息显示您在 documentai.processors.processOnline 上遇到问题,您可以将 Cloud DocumentAI API User 角色授予您的服务帐户,因为它具有以下权限,也涵盖了您的错误消息中的权限:

documentai.operations.getLegacy, documentai.processors.processOnline, documentai.processors.processBatch.

您也可以参考此 Document AI IAM Roles Documentation 以获取有关 Document AI pre-defined 角色的更多信息。