Saiba como resolver alguns erros apresentados pela IA Documental. Este tópico aborda erros cuja resolução requer mais passos do que os que podem ser descritos numa mensagem de erro.
Consulte a documentação da API Cloud para ver as práticas recomendadas de processamento de erros.
Autorizações
A resolução requer a execução de alguns passos, conforme descrito na mensagem de erro.
As credenciais padrão da aplicação não estão disponíveis
Se receber esta mensagem:
The Application Default Credentials are not available. They are available if running in Compute Engine. Otherwise, the environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined pointing to a file defining the credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information.
O Document AI usa Credenciais padrão da aplicação para autenticação.
Tem de ter uma conta de serviço para o seu projeto, transferir a chave (ficheiro JSON) para o seu ambiente de desenvolvimento e, em seguida, definir a localização desse ficheiro JSON para uma variável de ambiente denominada GOOGLE_APPLICATION_CREDENTIALS.
Além disso, a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS
tem de estar disponível no contexto em que chama a API Document AI. Por exemplo, se definir a variável a partir de uma sessão de terminal, mas executar o código no depurador do IDE, o contexto de execução do código pode não ter acesso à variável. Nessa circunstância, o seu pedido ao Document AI pode falhar por falta de autenticação adequada.
Para mais informações sobre como definir a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS, consulte o início rápido do Document AI ou a documentação sobre a utilização das Credenciais padrão da aplicação.
Autorização recusada
Se receber esta mensagem:
ERROR: (gcloud.auth.application-default.print-access-token) File
(pointed by GOOGLE_APPLICATION_CREDENTIALS environment variable) does not exist!
{
"error": {
"code": 403,
"message": "The request is missing a valid API key.",
"status": "PERMISSION_DENIED"
}
}
Verifique se tem um ficheiro JSON de chave da conta de serviço válido na localização armazenada na variável de ambiente GOOGLE_APPLICATION_CREDENTIALS e se a variável aponta para o local correto.
Para diagnosticar este erro, tente abrir o ficheiro de chave da conta de serviço a partir da pasta a partir da qual está a tentar chamar a API Document AI.
cat $GOOGLE_APPLICATION_CREDENTIALS
Proibido: 403 A API POST não foi usada ou está desativada
Se receber a mensagem:
Forbidden: 403 POST Document AI API has not been used in project # before or it is disabled. Enable it by visiting [url], then retry. If you enabled this API recently, wait a few minutes for the action to propagate and retry.
- Aceda ao link especificado na mensagem de erro e ative a API Document AI. Aguarde vários minutos e, em seguida, tente novamente.
- Verifique se tem um ficheiro JSON de chave da conta de serviço válido armazenado na variável de ambiente
GOOGLE_APPLICATION_CREDENTIALS. Para diagnosticar este erro, tente abrir o ficheiro de chave da conta de serviço a partir da pasta a partir da qual está a tentar chamar a API Document AI.cat $GOOGLE_APPLICATION_CREDENTIALS
Erro ao escrever o resultado final
Se receber uma mensagem como a seguinte ao receber os resultados de um pedido de processo em lote:
{
"name": "projects/project-name/operations/operation-id",
"metadata": {
"@type": "type.googleapis.com/google.cloud.document.v1beta1.OperationMetadata",
"state": "SUCCEEDED",
"createTime": "2019-09-19T02:02:15.885267760Z",
"updateTime": "2019-09-19T02:02:31.896425001Z"
},
"done": true,
"error": {
"code": 5,
"message": "Error writing final output to: gs://bucket-name/filename.json"
}
}
A sua conta de serviço pode não ter as autorizações corretas para criar objetos no seu contentor do Cloud Storage. Certifique-se de que atribuiu as autorizações corretas à sua conta de serviço, conforme descrito no início rápido.
Também pode ter escrito incorretamente o nome do contentor do Cloud Storage. Verifique se o contentor ao qual está a tentar aceder existe.
P4SA sem acesso ao Cloud Storage
Quando a conta de serviço por produto (P4SA) do Document AI não tem autorização para aceder a alguns recursos do Cloud Storage.
message: "Cloud DocumentAI P4SA doesn't have access to this Cloud Storage resource:"
A conta de serviço não pode criar um objeto no Cloud Storage
Quando a conta de serviço por produto (P4SA) da IA Documental não tem autorização para criar um objeto no Google Cloud Storage.
message: "Service account service-123@gcp-sa-prod-dai-core.iam.gserviceaccount.com
does not have permission storage.objects.create to create
Google Cloud Storage object in bucket gs://foo."
A conta de serviço do Document AI pode não ter as autorizações corretas para criar objetos no seu contentor do Cloud Storage. Certifique-se de que atribuiu as autorizações corretas à conta de serviço da IA Documental, conforme descrito na configuração do acesso a ficheiros entre projetos.
Também pode ter escrito incorretamente o nome do contentor do Cloud Storage. Verifique se o contentor ao qual está a tentar aceder existe.
O autor da chamada não consegue obter objetos no Cloud Storage
Quando o autor da chamada da API Document AI não tem autorização para obter objetos no Cloud Storage.
message: "The caller does not have permission storage.objects.get to get Google
Cloud Storage objects in bucket gs://foo."
O autor da chamada da API pode não ter as autorizações corretas para obter objetos no seu contentor do Cloud Storage. Certifique-se de que atribuiu as autorizações corretas ao autor da chamada.
Também pode ter escrito incorretamente o nome do contentor do Cloud Storage. Verifique se o contentor ao qual está a tentar aceder existe.
Argumentos inválidos
A resolução requer a execução de alguns passos, conforme descrito na mensagem de erro.
Versão da API não suportada
Quando é feito um pedido a uma versão da API que não suporta a operação.
message: "The requested operation is unsupported for the API version."
Tipo de processador não suportado
Quando é feito um pedido a um método de API que não suporta o tipo de processador fornecido.
message: "The requested operation is unsupported for the processor type: ${PROCESSOR_TYPE}."
Pedido errado
Quando é feito um pedido de API, mas os campos do pedido têm uma ou mais violações.
Cada violação é captada como um field_violations nos google.rpc.BadRequest
detalhes.
message: "Request contains an invalid argument."
details {
[type.googleapis.com/google.rpc.BadRequest] {
field_violations { field: "foo" description: "bar" }
}
}
Falha ao processar todos os documentos em lote
Quando ocorre uma falha no processamento de todos os documentos num pedido de processamento em lote.
message: "Failed to process all documents."
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "FAILED_TO_PROCESS_ALL_DOCUMENTS"
domain: "documentai.googleapis.com"
}
}
Não existem documentos
Quando são necessários ou esperados documentos, mas não é fornecido nenhum, como quando importa documentos através do URI do Cloud Storage.
message: "No valid documents found in ${training|test} directory. Ensure files are in a supported MIME type. For details, see https://cloud.google.com/document-ai/docs/file-types."
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "NO_DOCUMENTS"
domain: "documentai.googleapis.com"
}
}
Os parâmetros gcsUriPrefix e gcsOutputConfig.gcsUri têm de começar por gs:// e terminar com um caráter de barra invertida (/). Verifique a configuração dos URI do contentor.
Exemplo: gs://bucket/directory/
O treino não é suportado
Quando é feito um pedido de versão do processador de treino num tipo de processador que não suporta o treino.
message: "Training is not supported on processor type: ${DOCUMENT_TYPE}_PROCESSOR."
Nenhum documento selecionado
Quando são esperados documentos, mas nenhum é selecionado no conjunto de dados, como quando cria tarefas de etiquetagem de dados.
message: No documents selected. Please select at least one document."
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "NO_DOCUMENTS_SELECTED"
domain: "documentai.googleapis.com"
}
}
Tipo de documento não encontrado
Quando a classe de um documento (como uma licença, um passaporte ou uma fatura) não corresponde à classificação necessária para o tipo de processador. Um exemplo é quando o passo do classificador no analisador W2 não encontra elementos numa fatura.
Isto também pode aparecer como Couldn't preview the document: Unable to find a document of type: 'foo' na Google Cloud consola.
Esta mensagem de erro aplica-se a processadores antigos.
message: "Unable to find a document of type: 'foo'"
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "DOCUMENT_OF_TYPE_NOT_FOUND"
domain: "documentai.googleapis.com"
}
}
O limite de tamanho do documento foi excedido
Quando o limite superior do tamanho do ficheiro de um documento é excedido durante a importação do conjunto de dados ou durante a execução da previsão.
message: "Document size (2) exceeds limit: 1 (bytes)."
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "DOCUMENT_SIZE_LIMIT_EXCEEDED"
domain: "documentai.googleapis.com"
metadata { key: "limit" value: "1" }
metadata { key: "size" value: "2" }
}
}
Limite de documentos excedido
Quando o limite superior da contagem de documentos foi excedido.
message: "Document count exceed the limit: 5 got 6"
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "DOCUMENT_LIMIT_EXCEEDED"
domain: "documentai.googleapis.com"
metadata { key: "document_limit" value: "5" }
metadata { key: "documents" value: "6" }
}
}
Tipo MIME não suportado
Quando foi fornecido um tipo MIME não suportado. O sistema valida o formato do ficheiro (tipo MIME) quando importa um conjunto de dados ou faz uma chamada de previsão. Aceda a Ficheiros suportados (e para o analisador de esquemas) para ver os tipos de ficheiros disponíveis. Se o formato de ficheiro não for suportado, é apresentada a seguinte mensagem de erro:
message: "INVALID_ARGUMENT: Unsupported MIME type: 'foo'."
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "UNSUPPORTED_MIME_TYPE"
domain: "documentai.googleapis.com"
metadata { key: "mime_type" value: "foo" }
}
}
Nenhuma página
Quando foi facultado um documento sem páginas, mas são necessárias uma ou mais páginas.
message: "No pages were found in the document."
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "NO_PAGES"
domain: "documentai.googleapis.com"
}
}
Número de página negativo
Quando um documento indica um valor negativo para um dos seus números de páginas.
message: "Page number cannot be negative."
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "NEGATIVE_PAGE_NUMBER"
domain: "documentai.googleapis.com"
}
}
Números de páginas duplicados
Quando um documento indica o mesmo número de página uma ou mais vezes.
message: "Duplicate page number detected (page numbers to indices): [{1, [1, 2]}, {4, [4, 5]}]."
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "DUPLICATE_PAGE_NUMBERS"
domain: "documentai.googleapis.com"
metadata {
key: "page_number_to_indices"
value: "[{1, [1, 2]}, {4, [4, 5]}]"
}
}
}
Limite de páginas excedido
Quando o limite superior do número total de páginas de um documento é excedido. Encontra este erro durante a importação ou a previsão do conjunto de dados quando um documento no conjunto de dados tem demasiadas páginas, excedendo os limites do processador.
message: "Document pages exceed the limit: 5 got 6"
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "PAGE_LIMIT_EXCEEDED"
domain: "documentai.googleapis.com"
metadata { key: "page_limit" value: "5" }
metadata { key: "pages" value: "6" }
}
}
Limite de páginas excedido no modo sem imagens
Encontra este erro durante a importação ou a previsão do conjunto de dados quando um documento no conjunto de dados tem demasiadas páginas, excedendo os limites do processador. Pode pedir que o seu projeto seja adicionado a uma lista de autorizações para ativar o modo sem imagens. Isto aumenta o limite de páginas para 30.
message: "Document pages in non-imageless mode exceed the limit: 15 got 16. Try using imageless mode to increase the limit to 30."
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "PAGE_LIMIT_EXCEEDED_IN_IMAGELESS_MODE"
domain: "documentai.googleapis.com"
metadata { key: "page_limit" value: "15" }
metadata { key: "pages" value: "16" }
metadata { key: "imageless_page_limit" value: "30" }
}
}
Alteração do estado da versão do processador pré-treinado
Quando foi emitido um pedido para alterar o estado de uma versão do processador pré-treinado. Encontra este erro quando tenta eliminar uma versão de processador pré-treinado.
message: "ProcessorVersion with id 'xyz' is pretrained by Google and cannot change states."
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "PRETRAINED_PROCESSOR_VERSION_STATE_CHANGE"
domain: "documentai.googleapis.com"
metadata { key: "processor_id" value: "abc" }
metadata { key: "target_state" value: "DELETING" }
metadata { key: "version_id" value: "xyz" }
}
}
Validação do conjunto de dados
Quando um conjunto de dados não cumpre os critérios de validação, por exemplo, devido a âncoras de páginas em falta, dados incorretos ou detalhes incompletos em alguns atributos do objeto proto do documento.
message: "Invalid dataset. See operation metadata for specific errors."
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "INVALID_DATASET"
domain: "documentai.googleapis.com"
}
}
Documento não inline para revisão por humanos
Quando uma revisão humana foi iniciada para um documento que não foi definido inline.
message: "The document for review must be provided inline."
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "HUMAN_REVIEW_NON_INLINED_DOCUMENT"
domain: "documentai.googleapis.com"
}
}
Tipo de documento inválido
Quando o tipo de documento é inválido ou não é suportado pelo processador. Um tipo de documento refere-se à categoria do documento (por exemplo, W2) e não o formato de ficheiro ou o tipo MIME, como PDF ou JPEG.
message: "Invalid document type: 'foo'."
details {
[type.googleapis.com/google.rpc.ErrorInfo] {
reason: "INVALID_DOCUMENT_TYPE"
domain: "documentai.googleapis.com"
metadata { key: "type"