La API Vision puede detectar cualquier función de la API Vision en archivos PDF y TIFF almacenados en Cloud Storage.
La detección de funciones de PDF y TIFF debe solicitarse mediante la función files:asyncBatchAnnotate
, que realiza una solicitud sin conexión (asíncrona) y proporciona su estado mediante los recursos operations
.
La salida de una solicitud de PDF o TIFF se escribe en un archivo JSON creado en el segmento de Cloud Storage especificado.
Limitaciones
La API Vision acepta archivos PDF o TIFF de hasta 2000 páginas. Si los archivos son más grandes, se devolverá un error.
Autenticación
Las claves de API no se admiten en las solicitudes de files:asyncBatchAnnotate
. Consulta Usar una cuenta de servicio para obtener instrucciones sobre cómo autenticarte con una cuenta de servicio.
La cuenta utilizada para la autenticación debe tener acceso al segmento de Cloud Storage que especifiques para la salida (roles/editor
o roles/storage.objectCreator
o versiones posteriores).
Puedes usar una clave de API para consultar el estado de la operación. Consulta las instrucciones en Usar una clave de API.
Solicitudes de detección de funciones
Actualmente, la detección de documentos PDF o TIFF solo está disponible para los archivos almacenados en segmentos de Cloud Storage. Los archivos JSON de respuesta se guardan de forma similar en un segmento de Cloud Storage.
Línea de comandos
Para detectar texto en documentos PDF o TIFF, haz una solicitud POST y proporciona el cuerpo de la solicitud adecuado:
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 } } ] }"
Donde:
inputConfig
: sustituye al campoimage
que se usa en otras solicitudes de la API Vision. Contiene dos campos secundarios:gcsSource.uri
: el URI de Cloud Storage del archivo PDF o TIFF (al que puede acceder el usuario o la cuenta de servicio que realiza la solicitud).mimeType
: uno de los tipos de archivo aceptados:application/pdf
oimage/tiff
.
outputConfig
: especifica los detalles de la salida. Contiene dos campos secundarios:gcsDestination.uri
: un URI de Cloud Storage válido. El usuario o la cuenta de servicio que hace la solicitud debe tener permiso de escritura en el contenedor. El nombre del archivo seráoutput-x-to-y
, dondex
yy
representan los números de página del PDF o TIFF incluidos en ese archivo de salida. Si el archivo existe, su contenido se sobrescribirá.batchSize
: especifica cuántas páginas de salida se deben incluir en cada archivo JSON de salida.
Respuesta:
Una solicitud asyncBatchAnnotate
correcta devuelve una respuesta con un solo campo de nombre:
{ "name": "projects/usable-auth-library/operations/1efec2285bd442df" }
Este nombre representa una operación de larga duración con un ID asociado (por ejemplo, 1efec2285bd442df
), que se puede consultar mediante la API v1.operations
.
Para recuperar la respuesta de anotación de Vision, envía una solicitud GET al endpoint v1.operations
y pasa el ID de operación en la 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
Si la operación está en 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" } }
Una vez que se haya completado la operación, el icono state
se mostrará como DONE
y los resultados se escribirán en el archivo de Cloud Storage que hayas especificado:
{ "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 } } ] } }
El JSON de tu archivo de salida es similar al de una solicitud de detección de texto de un documento de una imagen, con la adición de un campo context
que muestra la ubicación del PDF o TIFF especificado y el número de páginas del archivo:
output-1-to-1.json
Go
Antes de probar este ejemplo, sigue las instrucciones de configuración de Go que se indican en la guía de inicio rápido de Vision con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Go de Vision.
Para autenticarte en Vision, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Antes de probar este ejemplo, sigue las instrucciones de configuración de Java que se indican en la guía de inicio rápido de Vision con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Java de Vision.
Para autenticarte en Vision, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Antes de probar este ejemplo, sigue las instrucciones de configuración de Node.js que se indican en la guía de inicio rápido de Vision con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Node.js de Vision.
Para autenticarte en Vision, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración de Python que se indican en la guía de inicio rápido de Vision con bibliotecas de cliente. Para obtener más información, consulta la documentación de referencia de la API Python de Vision.
Para autenticarte en Vision, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
gcloud
El comando gcloud
que uses dependerá del tipo de archivo.
Para realizar la detección de texto en PDF, usa el comando
gcloud ml vision detect-text-pdf
, como se muestra en el siguiente ejemplo:gcloud ml vision detect-text-pdf gs://my_bucket/input_file gs://my_bucket/out_put_prefix
Para realizar la detección de texto TIFF, usa el comando
gcloud ml vision detect-text-tiff
como se muestra en el siguiente ejemplo:gcloud ml vision detect-text-tiff gs://my_bucket/input_file gs://my_bucket/out_put_prefix
Idiomas adicionales
C#: Sigue las instrucciones de configuración de C# en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Vision para .NET.
PHP Sigue las instrucciones de configuración de PHP en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Vision para PHP.
Ruby: Sigue las instrucciones de configuración de Ruby en la página de bibliotecas de cliente y, a continuación, consulta la documentación de referencia de Vision para Ruby.