Puntos de control
Enable the Document AI API.
/ 20
Configure your Vertex AI Workbench instance
/ 20
Make a synchronous process document request.
/ 20
Prepare your environment for asynchronous API calls
/ 20
Make an asynchronous process document request
/ 20
Procesa documentos con Python usando la API de Document AI
- GSP925
- Descripción general
- Configuración y requisitos
- Tarea 1. Crea y prueba un procesador general de formularios
- Tarea 2. Configura tu instancia de Vertex AI Workbench para realizar llamadas a la API de Document AI
- Tarea 3. Realiza una solicitud síncrona de procesamiento de documento
- Tarea 4. Ejecuta el código síncrono de Document AI con Python
- Tarea 5. Crea un procesador de OCR para documentos de Document AI
- Tarea 6. Prepara tu entorno para las llamadas asíncronas a la API de Document AI
- Tarea 7. Realiza una solicitud asíncrona de procesamiento de documento
- ¡Felicitaciones!
GSP925
Descripción general
La API de Document AI es una solución de comprensión de documentos que toma datos no estructurados, como documentos, correos electrónicos, etc., y facilita la comprensión, el análisis y el consumo de los datos.
En este lab, usarás la API de Document AI con Python para crear varios procesadores, incluidos un procesador general de formularios y un procesador de OCR para documentos y, luego, realizarás llamadas síncronas y asíncronas a la API con Python. En este lab, se crea una instancia de Vertex AI Workbench para ti; la usarás con notebooks de JupyterLab para trabajar con los módulos cliente de Python de Document AI.
Objetivos
En este lab, aprenderás a hacer lo siguiente:
- Habilitar la API de Document AI y crear procesadores
- Instalar la biblioteca cliente para Python en una instancia de Vertex AI Workbench
- Analizar datos de un formulario escaneado usando Python para realizar una llamada síncrona a la API
- Analizar datos de formularios escaneados usando Python para realizar una llamada asíncrona a la API
Configuración y requisitos
Antes de hacer clic en el botón Comenzar lab
Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.
Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.
Para completar este lab, necesitarás lo siguiente:
- Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
- Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Activa Cloud Shell
Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.
- Haz clic en Activar Cloud Shell en la parte superior de la consola de Google Cloud.
Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. El resultado contiene una línea que declara el PROJECT_ID para esta sesión:
gcloud
es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.
- Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
-
Haz clic en Autorizar.
-
Ahora, el resultado debería verse de la siguiente manera:
Resultado:
- Puedes solicitar el ID del proyecto con este comando (opcional):
Resultado:
Resultado de ejemplo:
gcloud
, consulta la guía con la descripción general de gcloud CLI en Google Cloud.
Tarea 1. Crea y prueba un procesador general de formularios
En esta tarea, habilitarás la API de Document AI, y crearás y probarás un procesador general de formularios. Esta herramienta procesará cualquier tipo de documento y extraerá todo el contenido de texto que pueda identificar en el documento. No se limita a texto impreso, puede manejar texto escrito a mano y texto en cualquier orientación, admite varios idiomas y entiende cómo se relacionan entre sí los elementos de datos de los formularios para que puedas extraer pares clave-valor de los campos de formulario que tienen etiquetas de texto.
Habilita la API de Cloud Document AI
Antes de comenzar a usar Document AI, debes habilitar la API.
-
En la consola de Cloud, en el menú de navegación (), haz clic en APIs y servicios > Biblioteca.
-
Busca API de Cloud Document AI y, luego, haz clic en el botón Habilitar para usar la API en tu proyecto de Google Cloud.
Si la API de Cloud Document AI ya está habilitada, verás el botón Administrar y podrás continuar con el resto del lab.
Crea un procesador general de formularios
Crea un procesador de Document AI con el analizador de formularios de Document AI.
-
En la consola, en el menú de navegación (), haz clic en Document AI > Descripción general.
-
Haz clic en Explorar procesadores y selecciona Form Parser, que es un tipo de procesador general.
-
Especifica el nombre analizador-formularios para el procesador y selecciona la región EE.UU. (Estados Unidos) de la lista.
-
Haz clic en Crear para crear el procesador general analizador-formularios.
Esto creará el procesador y te devolverá a la página de detalles del procesador, que mostrará el ID del procesador, el estado y el extremo de predicción.
- Anota el ID del procesador, ya que tendrás que usarlo para actualizar variables en los notebooks de JupyterLab en tareas posteriores.
Tarea 2. Configura tu instancia de Vertex AI Workbench para realizar llamadas a la API de Document AI
A continuación, conéctate a JupyterLab que se ejecuta en la instancia de Vertex AI Workbench que se creó para ti cuando comenzó el lab y, luego, configura ese entorno para las tareas del lab restantes.
-
En el menú de navegación de la consola de Google Cloud, haz clic en Vertex AI > Workbench.
-
Busca la instancia
y haz clic en el botón Abrir JupyterLab.
La interfaz de JupyterLab para tu instancia de Workbench se abrirá en una pestaña nueva del navegador.
-
Haz clic en Terminal para abrir una shell de la terminal dentro de la instancia de Vertex AI Workbench.
-
Ingresa el siguiente comando en la shell de la terminal para importar los archivos del lab a tu instancia de Vertex AI Workbench:
- Ingresa el siguiente comando en la shell de la terminal para instalar las bibliotecas cliente de Python necesarias para Document AI y otras bibliotecas requeridas:
Deberías ver un resultado que indica que las bibliotecas se instalaron correctamente.
- Ingresa el siguiente comando en la shell de la terminal para importar el formulario de ingreso de datos de salud de muestra:
-
En la interfaz del notebook, abre el notebook de JupyterLab llamado
. -
En el diálogo Seleccionar kernel, elige Python 3 en la lista de kernels disponibles.
Tarea 3. Realiza una solicitud síncrona de procesamiento de documento
Realiza una llamada de procesamiento de documento usando una llamada síncrona a la API de Document AI. Para procesar grandes cantidades de documentos a la vez, también puedes usar la API asíncrona, que utilizarás en una tarea posterior.
Revisa el código de Python para las llamadas síncronas a la API de Document AI
Tómate un minuto para revisar el código de Python en el notebook
El primer bloque de código importa las bibliotecas necesarias y, luego, inicializa algunas variables.
La celda de código Set your Processor ID establece el ID del procesador que tienes que configurar manualmente antes de poder procesar documentos con el notebook.
Para este paso, necesitarás el ID del procesador de Document AI que creaste en la Tarea 1.
Sugerencia: Si no lo guardaste, en la pestaña de la consola de Cloud, abre el menú de navegación (), haz clic en Document AI > Mis procesadores y, luego, haz clic en el nombre de tu procesador para abrir la página de detalles. Aquí, puedes copiar el ID del procesador.
La celda de código Process Document Function define la función process_document
que se usa para realizar una llamada síncrona a un procesador de Document AI. La función crea un objeto cliente de API de Document AI.
El nombre del procesador requerido por la llamada a la API se crea usando los parámetros project_id
, locations
y processor_id
, y el documento PDF de muestra se lee y almacena en una estructura mime_type
.
La función crea un objeto de solicitud que contiene el nombre completo del procesador del documento y usa ese objeto como parámetro para una llamada síncrona al cliente de API de Document AI. Si la solicitud es correcta, el objeto documento que se devuelve incluirá propiedades que contienen las entidades detectadas en el formulario.
La celda de código Process Document llama a la función process_document
, guarda la respuesta en la variable document
y, luego, imprime el texto sin procesar que se detectó. Todos los procesadores informarán algunos datos para la propiedad document.text
.
La celda de código Get Text Function define la función get_text()
que recupera el texto de un elemento nombrado usando las propiedades text_anchor
, start_index
y end_index
de text_segments
del elemento nombrado. Esta función se usa para recuperar el nombre y el valor de los datos del formulario si el procesador los devuelve.
La celda Display Form Data itera sobre todas las páginas que se detectaron y por cada form_field
detectado usa la función get_text()
para recuperar el nombre y el valor del campo. A continuación, se imprimen esos valores, junto con sus correspondientes puntuaciones de confianza. Los procesadores que usen el analizador de formularios general o los analizadores especializados devolverán los datos del formulario, pero este no será el caso con los procesadores creados con el analizador de OCR para documentos.
La celda Display Entity Data extrae los datos de entidades del objeto de documento y muestra el tipo de entidad, el valor y las propiedades de confianza de cada entidad detectada. Solo los procesadores que utilizan analizadores especializados de Document AI, como el analizador de gastos de adquisición, devolverán los datos de entidades. El analizador de formularios general y el analizador de OCR para documentos no devolverán datos de entidades.
Tarea 4. Ejecuta el código síncrono de Document AI con Python
Ejecuta el código para realizar llamadas síncronas a la API de Document AI en el notebook de JupyterLab.
-
En la segunda celda de código Set your Processor ID, reemplaza el texto del marcador de posición
PROCESSOR_ID
por el ID del analizador-formularios que creaste en un paso anterior. -
Selecciona la primera celda, haz clic en el menú Ejecutar y, luego, haz clic en Ejecutar la celda seleccionada y todas las siguientes para ejecutar todo el código del notebook.
Si usaste el formulario de ingreso de datos de salud de muestra, verás datos similares a los siguientes para la celda de resultado de los datos del formulario:
Si puedes crear un procesador especializado, la celda final mostrará los datos de la entidad; de lo contrario, mostrará una tabla vacía.
- En el menú de JupyterLab, haz clic en Archivo y, luego, en Guardar notebook para guardar tu progreso.
Tarea 5. Crea un procesador de OCR para documentos de Document AI
En esta tarea, crearás un procesador de Document AI usando el analizador general de OCR para documentos.
-
En el menú de navegación, haz clic en Document AI > Descripción general.
-
Haz clic en Explorar procesadores y, luego, en Crear procesador para el OCR para documentos. Este es un tipo de procesador general.
-
Especifica el nombre procesador-ocr para el procesador y selecciona la región EE.UU. (Estados Unidos) de la lista.
-
Haz clic en Crear para crear tu procesador.
-
Toma nota del ID del procesador. Tendrás que especificarlo en una tarea posterior.
Tarea 6. Prepara tu entorno para las llamadas asíncronas a la API de Document AI
En esta tarea, debes subir el notebook de muestra de JupyterLab para probar las llamadas asíncronas a la API de Document AI y copiar algunos formularios de muestra para el lab en Cloud Storage para el procesamiento asíncrono.
-
Haz clic en la pestaña Terminal para volver a abrir la shell de la terminal dentro de la instancia de Vertex AI Workbench.
-
Crea un bucket de Cloud Storage para los documentos de entrada y copia los formularios W2 de muestra en el bucket:
-
En la interfaz del notebook, abre el notebook de JupyterLab llamado
. -
En el diálogo Seleccionar kernel, elige Python 3 en la lista de kernels disponibles.
Tarea 7. Realiza una solicitud asíncrona de procesamiento de documento
Revisa el código de Python para las llamadas asíncronas a la API de Document AI
Tómate un minuto para revisar el código de Python en el notebook
La primera celda de código importa las bibliotecas necesarias.
La celda de código Set your Processor ID establece el ID del procesador que tienes que configurar manualmente antes de poder procesar documentos con el notebook.
La celda de código Set your variables define los parámetros que se usarán para realizar la llamada asíncrona, incluida la ubicación de los buckets de Cloud Storage de entrada y salida que se usarán para los datos de origen y los archivos de salida. Actualizarás los valores de marcador de posición en esta celda para PROJECT_ID
y PROCESSOR_ID
en la próxima sección del lab antes de que ejecutes el código. Las otras variables contienen la configuración predeterminada para la ubicación del procesador, el bucket de Cloud Storage de entrada y el de salida que no es necesario cambiar.
La celda de código Define Google Cloud client objects inicializa los clientes de Document AI y Cloud Storage.
La celda de código Create input configuration crea el parámetro de array de configuración de entrada para los datos de origen que se pasarán a la solicitud asíncrona de Document AI como configuración de entrada. Este array almacena la ubicación de origen de Cloud Storage, y el tipo de MIME, para cada uno de los archivos que se encuentran en la ubicación de entrada de Cloud Storage.
La celda de código Create output configuration crea el parámetro de salida para la solicitud asíncrona que contiene la ubicación del bucket de Cloud Storage de salida y lo almacena como una configuración de salida por lotes de Document AI.
La celda de código Create the Document AI API request compila el objeto de solicitud de proceso por lotes asíncrono de Document AI usando los objetos de configuración de entrada y salida.
La celda de código Start the batch (asynchronous) API operation realiza una solicitud de proceso de documentos asíncrona pasando el objeto de solicitud al método batch_process_documents()
. Esta es una llamada asíncrona, por lo que usas el método result()
para forzar al notebook a esperar hasta que el trabajo asíncrono en segundo plano haya finalizado.
La celda Fetch list of output files enumera los objetos en la ubicación del bucket de salida definida en la variable destination_uri
.
La celda Display detected text from asynchronous output JSON files carga cada archivo JSON de salida que se encuentra como un objeto de documento de Document AI y se imprimen los datos de texto detectados por el procesador de OCR para documentos.
La celda Display entity data mostrará cualquier dato de entidad que se encuentre. Sin embargo, los datos de entidad solo están disponibles para los procesadores que se crearon usando un analizador especializado. Los datos de entidad no se mostrarán con el analizador de OCR general de Document AI utilizado en esta tarea.
Ejecuta el código asíncrono de Document AI con Python
Usa el código de muestra proporcionado en el notebook de Jupyterlab para procesar documentos de forma asíncrona usando una solicitud de procesamiento por lotes de Document AI.
-
En la segunda celda de código, reemplaza el texto de marcador de posición de
PROCESSOR_ID
por el ID del procesador analizador-formularios que creaste en un paso anterior. -
Selecciona la primera celda, haz clic en el menú Ejecutar y, luego, haz clic en Ejecutar la celda seleccionada y todas las siguientes para ejecutar todo el código del notebook.
-
A medida que se ejecutan las celdas de código, puedes recorrer el notebook revisando el código y los comentarios que explican cómo se crea y usa el objeto de solicitud asíncrona.
El notebook esperará uno o dos minutos a que la operación asíncrona de proceso por lotes se complete en la celda de código Start the batch (asynchronous) API operation. Mientras que la propia llamada a la API de proceso por lotes es asíncrona, el notebook usa el método result
para forzar al notebook a esperar hasta que la llamada asíncrona haya finalizado antes de enumerar y mostrar los datos de salida.
Si el trabajo asíncrono tarda más de lo esperado y se agota el tiempo de espera, es posible que debas volver a ejecutar las celdas restantes para mostrar el resultado. Estas son las celdas posteriores a la celda Start the batch (asynchronous) API operation.
El resultado contendrá una lista de los datos de Document AI detectados en cada archivo. El analizador de OCR para documentos no detecta datos de formularios ni de entidades, por lo que no se producirán datos de formularios ni de entidades. Si puedes crear un procesador especializado, también verás que la celda final imprime datos de entidad.
- En el menú de JupyterLab, haz clic en Archivo y, luego, en Guardar notebook para guardar tu progreso.
¡Felicitaciones!
Realizaste correctamente llamadas síncronas y asíncronas a la API de Document AI. En este lab, habilitaste la API de Document AI y creaste procesadores. Instalaste la biblioteca cliente para Python en una instancia de Vertex AI Workbench, analizaste datos de un formulario escaneado usando Python para realizar una llamada síncrona a la API y analizaste datos de formularios escaneados usando Python para realizar una llamada asíncrona a la API.
Finaliza la Quest
Este lab de autoaprendizaje forma parte de la Quest para obtener la insignia de habilidad Detect Manufacturing Defects using Visual Inspection AI. Una Quest es una serie de labs relacionados que forman una ruta de aprendizaje. Si completas esta Quest, obtendrás una insignia como reconocimiento por tu logro. Comparte la insignia en tu currículum y tus plataformas sociales, y anuncia tu logro con el hashtag #GoogleCloudBadge. Puedes publicar la insignia y agregar un vínculo a ella en tu currículum en línea o en tus cuentas de redes sociales. Inscríbete en una Quest y obtén un crédito inmediato de finalización después de haber realizado este lab. Consulta otras Quests disponibles.
Próximos pasos y más información
- Para obtener más información sobre el uso de las APIs de Document AI, consulta la guía.
Capacitación y certificación de Google Cloud
Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.
Última actualización del manual: 8 de octubre de 2024
Prueba más reciente del lab: 8 de octubre de 2024
Copyright 2024 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.