Crea una canalización de procesamiento de documentos con Workflows

Si usas Document AI para compilar flujos de trabajo que impliquen varios pasos para procesar documentos, te recomendamos usar la organización sin servidores para administrar el flujo de trabajo.

Workflows vincula una serie de tareas en el orden que definas. No requiere administración de infraestructura y escala a pedido sin interrupciones, incluida la reducción vertical a cero. Con su modelo de precios de pago por uso, solo pagas por el tiempo de ejecución.

Los flujos de trabajo proporcionan un conector integrado para la API de Document AI. Los conectores no requieren código adicional, además de definir los pasos mediante un archivo de configuración. Los conectores manejan el formato de las solicitudes y ocultan los detalles de la API. Los conectores también proporcionan un comportamiento integrado para la autenticación, el control de reintentos y las operaciones de larga duración.

Para obtener más información, consulta Descripción de los conectores.

En esta guía, se procesa un conjunto de facturas de muestra mediante el procesador del Analizador de facturas con procesamiento por lotes.


Para seguir la guía paso a paso en esta tarea directamente en la consola de Google Cloud, haz clic en Guiarme:

GUIARME


Antes de comenzar

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Document AI, Cloud Storage, Workflows APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Document AI, Cloud Storage, Workflows APIs.

    Enable the APIs

Crear un Analizador de facturas

Usa la consola de Google Cloud para crear un nuevo Analizador de facturas. Consulta la página Crea y administra procesadores para obtener más información.

  1. En el menú de navegación de la consola de Google Cloud, haz clic en Document AI y selecciona Galería del procesador.

    Galería de procesadores

  2. En la Galería de procesadores, busca Analizador de facturas y selecciona Crear.

    Crea un procesador de facturas

  3. Ingresa un Nombre del procesador, como workflows-invoice-processor.

  4. Selecciona la región (location en la API de Document AI) para alojar el procesador.

  5. Haz clic en Crear. Aparecerá la pestaña Processor Details.

  6. Copia el ID del procesador. Debes usar esto en el código más adelante.

    ID del procesador

Configura el bucket de salida en Cloud Storage

Cuando se usa el procesamiento por lotes (asíncrono), los archivos de entrada y salida deben almacenarse en Cloud Storage. El siguiente bucket contiene archivos de muestra para usar como entrada en esta guía:

gs://cloud-samples-data/documentai/workflows

Configura un bucket para almacenar los archivos de salida en tu proyecto.

  1. Sigue la guía Crea depósitos en la documentación de Cloud Storage para crear un depósito o usa un depósito que ya exista.

  2. Crea una carpeta en el bucket (por ejemplo, docai-workflows-output).

Crear flujo de trabajo

  1. Abre el panel de Workflows en la consola Google Cloud.

    Ve al panel Workflows

  2. Haz clic en Crear para crear tu primer flujo de trabajo. Aparecerá la página Crear flujo de trabajo.

    Creación de flujos de trabajo

  3. Cambia el nombre del flujo de trabajo a docai-workflows-quickstart.

  4. Agrega una descripción y selecciona una cuenta de servicio si tienes una para este proyecto.

    1. Si no tienes una cuenta de servicio, selecciona Crear cuenta de servicio nueva.
      • Asigna un nombre a tu cuenta de servicio y selecciona Crear y continuar. CreateServiceAccount
      • Otórgale los siguientes roles:
      • Document AI API User
      • Workflows Invoker
      • Logs Writer
      • Service Usage Consumer
      • ServiceAccountRoles
  5. En la página Crear flujo de trabajo, haz clic en Siguiente.

Define el flujo de trabajo

  1. En el editor de Workflows, borra el archivo 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}
    
WorkflowsEditor
  1. Selecciona Implementar.

Flujo de trabajo de prueba

Ahora que se implementó el flujo de trabajo, debería estar en la página Detalles del flujo de trabajo.

  1. Haz clic en Ejecutar en la parte superior de la página para ir a la página Ejecutar flujo de trabajo. Esta página te permite probar tu flujo de trabajo en la consola.

  2. Reemplaza las variables de marcador de posición en el siguiente JSON de entrada:

    • OUTPUT_BUCKET_PATH: Es la ruta de acceso completa al bucket de salida y a la carpeta que se creó antes.
    • PROCESSOR_ID: Es el ID del procesador que se creó antes.
    • LOCATION: Es la ubicación para el procesador que se creó antes.
    {
      "inputBucket": "gs://cloud-samples-data/documentai/workflows",
      "outputBucket": "OUTPUT_BUCKET_PATH",
      "processorId": "PROCESSOR_ID",
      "location": "LOCATION"
    }
    
  3. Copia y pega el archivo JSON en el cuadro de texto de entrada.

  4. Haz clic en Ejecutar en la parte inferior del flujo de trabajo para probar la entrada y espera un momento mientras se completa el proceso.

  5. Una vez que finalice el flujo de trabajo, el JSON de salida debería verse de la siguiente manera.

    {
      "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"
      }
    }
    
  6. Abre tu bucket de almacenamiento de salida. Verás el resultado de cada factura procesada en una carpeta con el nombre del ID de operación. BatchGCSOutput

  7. En esta carpeta, encontrarás subcarpetas, una para cada documento procesado por el lote de entrada que contenga Document archivo(s) JSON.

  8. Puedes inspeccionar cada archivo JSON o escribir el código a fin de usar los campos relevantes para tu caso de uso. Consulta la guía de administración de respuestas de procesamiento para obtener más información.

  9. Ahora puedes vincular pasos adicionales en el flujo de trabajo a fin de procesar aún más el resultado, como insertar las entidades extraídas en una base de datos para obtener estadísticas.

  10. Consulta la documentación de Workflows para obtener más información sobre cómo activar flujos de trabajo.

Limpia

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página.

Para evitar cargos innecesarios de Google Cloud , usa la consola de Google Cloud para borrar el procesador, el bucket, el flujo de trabajo y el proyecto si no los necesitas.

¿Qué sigue?