Crear un flujo de procesamiento de documentos con Workflows
Si usas Document AI para crear flujos de trabajo que impliquen varios pasos para procesar documentos, puedes usar la orquestación sin servidor para gestionar tu flujo de trabajo.
Workflows vincula una serie de tareas en el orden que definas. No requiere gestión de infraestructura y se escala de forma fluida bajo demanda, incluso hasta cero. Con su modelo de precios de pago por uso, solo pagas por el tiempo de ejecución.
Workflows proporciona un conector integrado para la API Document AI. Los conectores no requieren código adicional, aparte de definir los pasos mediante un archivo de configuración. Los conectores se encargan de dar formato a las solicitudes y ocultan los detalles de la API. Los conectores también proporcionan un comportamiento integrado para la autenticación, la gestión de reintentos y las operaciones de larga duración.
Para obtener más información, consulta el artículo Acerca de los conectores.
En esta guía se procesa un conjunto de facturas de muestra mediante el procesador Analizador de facturas con el procesamiento por lotes.
Para seguir las instrucciones paso a paso de esta tarea directamente en la Google Cloud consola, haga clic en Ayúdame:
Antes de empezar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Document AI, Cloud Storage, Workflows APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Document AI, Cloud Storage, Workflows APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. En el menú de navegación de la consola, haz clic en Document AI y selecciona Galería de procesadores. Google Cloud
En la galería de procesadores,
busca Analizador de facturas y selecciona Crear.Introduce un nombre de procesador, como
workflows-invoice-processor
.Selecciona la región (
location
en la API de Document AI) en la que se alojará el procesador.Haz clic en Crear. Aparecerá la pestaña Detalles del procesador.
Copia tu ID de procesador. Debes usarlo en tu código más adelante.
Sigue la guía Crear segmentos de la documentación de Cloud Storage para crear un segmento o usa uno que ya tengas.
Crea una carpeta en el contenedor (por ejemplo,
docai-workflows-output
).Abre el panel de control de Workflows en la consola de Google Cloud .
Haz clic en
Crear para crear tu primer flujo de trabajo. Se abrirá la página Crear flujo de trabajo.Cambia el nombre del flujo de trabajo adocai-workflows-quickstart
.Añade una descripción y selecciona una cuenta de servicio si tienes una para este proyecto.
- Si no tienes una cuenta de servicio, selecciona Crear cuenta de servicio.
- Ponle un nombre a la cuenta de servicio y selecciona Crear y continuar.
- Asígnale los siguientes roles:
Document AI API User
Workflows Invoker
Logs Writer
Service Usage Consumer
- Ponle un nombre a la cuenta de servicio y selecciona Crear y continuar.
- Si no tienes una cuenta de servicio, selecciona Crear cuenta de servicio.
En la página Crear flujo de trabajo, haz clic en
Siguiente .En el
editor de Workflows , borra el YAML predeterminado y pega el siguiente código:main: params: [input] steps: - start: call: sys.log args: text: ${input} - vars: assign: - input_gcs_bucket: ${input.inputBucket} - output_gcs_bucket: ${input.outputBucket} - processor_id: ${input.processorId} - location: ${input.location} - project_id: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")} - batch_process: call: googleapis.documentai.v1.projects.locations.processors.batchProcess args: name: ${"projects/" + project_id + "/locations/" + location + "/processors/" + processor_id} location: ${location} body: inputDocuments: gcsPrefix: gcsUriPrefix: ${input_gcs_bucket} documentOutputConfig: gcsOutputConfig: gcsUri: ${output_gcs_bucket} skipHumanReview: true result: batch_process_resp - return: return: ${batch_process_resp}
- Selecciona
Desplegar . En la parte superior de la página, haz clic en
Ejecutar para ir a la página Ejecutar flujo de trabajo. Esta página te permite probar tu flujo de trabajo en la consola.Sustituye las variables de marcador de posición en el siguiente JSON de entrada:
- OUTPUT_BUCKET_PATH: la ruta completa al contenedor de salida y a la carpeta creados anteriormente.
- PROCESSOR_ID: el ID del procesador creado anteriormente.
- LOCATION: la región del procesador creado anteriormente.
{ "inputBucket": "gs://cloud-samples-data/documentai/workflows", "outputBucket": "OUTPUT_BUCKET_PATH", "processorId": "PROCESSOR_ID", "location": "LOCATION" }
Copia y pega el JSON en el
cuadro de texto de entrada .Haz clic en
Ejecutar en la parte inferior del flujo de trabajo para probar la entrada y espera un momento a que se complete el proceso.Una vez que finalice el flujo de trabajo, el JSON de salida debería tener un aspecto similar a este.
{ "done": true, "metadata": { "@type": "type.googleapis.com/google.cloud.documentai.v1.BatchProcessMetadata", "createTime": "2023-02-24T18:31:18.521764Z", "individualProcessStatuses": [ { "humanReviewStatus": { "state": "SKIPPED" }, "inputGcsSource": "gs://cloud-samples-data/documentai/workflows/baking_technologies_invoice.pdf", "outputGcsDestination": "OUTPUT_BUCKET_PATH/11119195367705871803/0", "status": {} }, { "humanReviewStatus": { "state": "SKIPPED" }, "inputGcsSource": "gs://cloud-samples-data/documentai/workflows/generic_invoice.pdf", "outputGcsDestination": "OUTPUT_BUCKET_PATH/11119195367705871803/1", "status": {} }, { "humanReviewStatus": { "state": "SKIPPED" }, "inputGcsSource": "gs://cloud-samples-data/documentai/workflows/google_invoice.pdf", "outputGcsDestination": "OUTPUT_BUCKET_PATH/11119195367705871803/2", "status": {} } ], "state": "SUCCEEDED", "updateTime": "2023-02-24T18:31:52.543163Z" }, "name": "projects/PROJECT_ID/locations/LOCATION/operations/11119195367705871803", "response": { "@type": "type.googleapis.com/google.cloud.documentai.v1.BatchProcessResponse" } }
Abre el bucket de almacenamiento de salida. Verás la salida de cada factura procesada en una carpeta con el nombre del ID de operación.
Dentro de esta carpeta habrá subcarpetas, una por cada documento procesado del lote de entrada, que contendrán archivos JSON
Document
.Puedes inspeccionar cada archivo JSON o escribir código para usar los campos pertinentes en tu caso práctico. Consulta la guía sobre cómo gestionar la respuesta del procesamiento para obtener más información.
Ahora puedes vincular pasos adicionales en el flujo de trabajo para procesar aún más el resultado, como insertar las entidades extraídas en una base de datos para obtener analíticas.
Consulta la documentación de Workflows para obtener más información sobre cómo activar flujos de trabajo.
- Consulta más información sobre los flujos de trabajo.
- Más información sobre el conector de Workflows de Document AI
- Consulta una lista y las descripciones de los procesadores disponibles.
- Consulta cómo gestionar la respuesta de procesamiento.
Crear un analizador de facturas
Usa la consola de Google Cloud para crear un nuevo analizador de facturas. Consulta la página sobre cómo crear y gestionar procesadores para obtener más información.
Configurar el segmento de salida en Cloud Storage
Si usas el procesamiento por lotes (asíncrono), los archivos de entrada y salida deben almacenarse en Cloud Storage. El siguiente contenedor contiene archivos de muestra que se pueden usar como entrada para esta guía:
gs://cloud-samples-data/documentai/workflows
Configura un segmento para almacenar los archivos de salida en tu proyecto.
Crear flujo de trabajo
Definir flujo de trabajo

Flujo de trabajo de prueba
Ahora que el flujo de trabajo se ha desplegado, deberías estar en la página Detalles del flujo de trabajo.
Limpieza
Para evitar que se apliquen cargos en tu cuenta de Google Cloud por los recursos utilizados en esta página, sigue estos pasos.
Para evitar cargos innecesarios de Google Cloud , usa la Google Cloud console para eliminar tu procesador, tu contenedor, tu flujo de trabajo y tu proyecto si no los necesitas.