A API Vision pode detetar qualquer funcionalidade da API Vision a partir de ficheiros PDF e TIFF armazenados no Cloud Storage.
A deteção de funcionalidades a partir de PDF e TIFF tem de ser pedida através da função files:asyncBatchAnnotate
, que executa um pedido offline (assíncrono) e fornece o respetivo estado através dos recursos operations
.
A saída de um pedido PDF/TIFF é escrita num ficheiro JSON criado no contentor do Cloud Storage especificado.
Limitações
A API Vision aceita ficheiros PDF/TIFF com até 2000 páginas. Os ficheiros maiores devolvem um erro.
Autenticação
As chaves API não são suportadas para pedidos files:asyncBatchAnnotate
. Consulte o artigo
Usar uma conta de serviço para ver
instruções sobre a autenticação com uma conta de serviço.
A conta usada para a autenticação tem de ter acesso ao contentor do Cloud Storage que especificar para a saída (roles/editor
ou roles/storage.objectCreator
ou superior).
Pode usar uma chave da API para consultar o estado da operação. Consulte as instruções em Usar uma chave da API.
Pedidos de deteção de funcionalidades
Atualmente, a deteção de documentos PDF/TIFF só está disponível para ficheiros armazenados em contentores do Cloud Storage. Os ficheiros JSON de resposta são guardados de forma semelhante num contentor do Cloud Storage.
Linha de comandos
Para realizar a deteção de texto de documentos PDF/TIFF, faça um pedido POST e faculte o corpo do pedido adequado:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ https://vision.googleapis.com/v1/files:asyncBatchAnnotate -d "{ 'requests':[ { 'inputConfig': { 'gcsSource': { 'uri': 'gs://your-source-bucket-name/folder/multi-page-file.pdf' }, 'mimeType': 'application/pdf' }, 'features': [ { 'type': 'DOCUMENT_TEXT_DETECTION' } ], 'outputConfig': { 'gcsDestination': { 'uri': 'gs://your-bucket-name/folder/' }, 'batchSize': 1 } } ] }"
Onde:
inputConfig
: substitui o campoimage
usado noutros pedidos da API Vision. Contém dois campos secundários:gcsSource.uri
: o URI do Cloud Storage do ficheiro PDF ou TIFF (acessível ao utilizador ou à conta de serviço que faz o pedido)mimeType
: um dos tipos de ficheiros aceites:application/pdf
ouimage/tiff
.
outputConfig
: especifica os detalhes da saída. Contém dois campos filho:gcsDestination.uri
: um URI do Cloud Storage válido. O contentor tem de ser gravável pelo utilizador ou pela conta de serviço que está a fazer o pedido. O nome do ficheiro éoutput-x-to-y
, em quex
ey
representam os números das páginas PDF/TIFF incluídos nesse ficheiro de saída. Se o ficheiro existir, o respetivo conteúdo é substituído.batchSize
: especifica quantas páginas de saída devem ser incluídas em cada ficheiro JSON de saída.
Resposta:
Um pedido asyncBatchAnnotate
bem-sucedido devolve uma resposta com um único campo de nome:
{ "name": "projects/usable-auth-library/operations/1efec2285bd442df" }
Este nome representa uma operação de longa duração com um ID associado (por exemplo, 1efec2285bd442df
), que pode ser consultado através da API v1.operations
.
Para obter a resposta de anotação do Vision, envie um pedido GET para o ponto final v1.operations
, transmitindo o ID da operação no URL.
curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ https://vision.googleapis.com/v1/operations/1efec2285bd442df
Se a operação estiver em curso:
{ "name": "operations/1efec2285bd442df", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.OperationMetadata", "state": "RUNNING", "createTime": "2019-05-15T21:10:08.401917049Z", "updateTime": "2019-05-15T21:10:33.700763554Z" } }
Quando a operação estiver concluída, o ícone state
é apresentado como DONE
e os resultados são escritos no ficheiro do Cloud Storage que especificou:
{ "name": "operations/1efec2285bd442df", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.OperationMetadata", "state": "DONE", "createTime": "2019-05-15T20:56:30.622473785Z", "updateTime": "2019-05-15T20:56:41.666379749Z" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.vision.v1.AsyncBatchAnnotateFilesResponse", "responses": [ { "outputConfig": { "gcsDestination": { "uri": "gs://your-bucket-name/folder/" }, "batchSize": 1 } } ] } }
O JSON no seu ficheiro de saída é semelhante ao de um
pedido de deteção de texto de documentos de uma imagem, com a adição de um campo context
que mostra a localização do PDF ou TIFF especificado e o número de páginas no ficheiro:
output-1-to-1.json
Go
Antes de experimentar este exemplo, siga as Goinstruções de configuração no início rápido do Vision usando bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Go Vision.
Para se autenticar no Vision, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do Vision usando bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Java Vision.
Para se autenticar no Vision, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Antes de experimentar este exemplo, siga as Node.jsinstruções de configuração no início rápido do Vision usando bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Node.js Vision.
Para se autenticar no Vision, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do Vision usando bibliotecas cliente. Para mais informações, consulte a documentação de referência da API Python Vision.
Para se autenticar no Vision, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
gcloud
O comando gcloud
que usa depende do tipo de ficheiro.
Para realizar a deteção de texto em PDF, use o comando
gcloud ml vision detect-text-pdf
conforme mostrado no exemplo seguinte:gcloud ml vision detect-text-pdf gs://my_bucket/input_file gs://my_bucket/out_put_prefix
Para realizar a deteção de texto TIFF, use o comando
gcloud ml vision detect-text-tiff
, conforme mostrado no exemplo seguinte:gcloud ml vision detect-text-tiff gs://my_bucket/input_file gs://my_bucket/out_put_prefix
Idiomas adicionais
C#: Siga as instruções de configuração do C# na página das bibliotecas cliente e, em seguida, visite a documentação de referência do Vision para .NET.
PHP: Siga as instruções de configuração do PHP na página das bibliotecas cliente e, em seguida, visite a documentação de referência do Vision para PHP.
Ruby: Siga as instruções de configuração do Ruby na página das bibliotecas cliente e, em seguida, visite a documentação de referência do Vision para Ruby.