Crie um pipeline de processamento de documentos com fluxos de trabalho

Se estiver a usar a Document AI para criar fluxos de trabalho que envolvem vários passos para processar documentos, pode usar a orquestração sem servidor para gerir o seu fluxo de trabalho.

Os fluxos de trabalho associam uma série de tarefas numa ordem que define. Não requer gestão de infraestrutura e é dimensionado de forma integrada a pedido, incluindo a redução para zero. Com o modelo de preços de pagamento por utilização, só paga pelo tempo de execução.

O Workflows oferece um conector incorporado para a API Document AI. Os conetores não requerem código adicional, exceto a definição dos passos através de um ficheiro de configuração. Os conetores processam a formatação dos pedidos, ocultando os detalhes da API. Os conetores também oferecem um comportamento incorporado para a autenticação, o processamento de novas tentativas e as operações de longa duração.

Para mais informações, consulte o artigo Compreenda os conetores.

Este guia processa um conjunto de faturas de amostra através do processador Invoice Parser com o processamento em lote


Para seguir orientações passo a passo para esta tarefa diretamente na Google Cloud consola, clique em Orientar-me:

Visita guiada


Antes de começar

  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.

    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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. Crie um analisador de faturas

    Use a Google Cloud consola para criar um novo analisador de faturas. Consulte a página de criação e gestão de processadores para mais informações.

    1. No Google Cloud menu de navegação da consola, clique em Document AI e selecione Galeria de processadores.

      Processador Galeria

    2. Na galeria de processadores, pesquise analisador de faturas e selecione Criar.

      Crie um processador de faturas

    3. Introduza um nome do processador, como workflows-invoice-processor.

    4. Selecione a região (location na API Document AI) para alojar o processador.

    5. Clique em Criar. É apresentado o separador Detalhes do processador.

    6. Copie o seu ID do processador. Tem de usar este valor no código mais tarde.

      ID do processador

    Configure o contentor de saída no Cloud Storage

    Quando usa o processamento em lote (assíncrono), os ficheiros de entrada e saída têm de ser armazenados no Cloud Storage. O seguinte contentor contém ficheiros de exemplo para usar como entrada para este guia:

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

    Configure um contentor para armazenar os ficheiros de saída no seu projeto.

    1. Siga o guia Crie contentores na documentação do Cloud Storage para criar um contentor ou use um contentor já existente.

    2. Crie uma pasta no contentor (por exemplo, docai-workflows-output).

    Criar fluxo de trabalho

    1. Abra o painel de controlo Fluxos de trabalho na Google Cloud consola.

      Aceda ao painel de controlo Fluxos de trabalho

    2. Clique em Criar para criar o seu primeiro fluxo de trabalho. É apresentada a página Criar fluxo de trabalho.

      Workflows Create

    3. Mude o nome do fluxo de trabalho para docai-workflows-quickstart.

    4. Adicione uma descrição e selecione uma conta de serviço, se tiver uma para este projeto.

      1. Se não tiver uma conta de serviço, selecione Criar nova conta de serviço.
        • Atribua um nome à conta de serviço e selecione Criar e continuar. CreateServiceAccount
        • Atribua-lhe as seguintes funções:
        • Document AI API User
        • Workflows Invoker
        • Logs Writer
        • Service Usage Consumer
        • ServiceAccountRoles
    5. Na página Criar fluxo de trabalho, clique em Seguinte.

    Defina o fluxo de trabalho

    1. No editor de fluxos de trabalho, limpe o YAML predefinido e cole o código abaixo:

      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. Selecione Implementar.

    Fluxo de trabalho de teste

    Agora que o fluxo de trabalho foi implementado, deve estar na página Detalhes do fluxo de trabalho.

    1. Clique em Executar na parte superior da página para aceder à página Executar fluxo de trabalho. Esta página permite-lhe testar o seu fluxo de trabalho na consola.

    2. Substitua as variáveis dos marcadores de posição no seguinte JSON de entrada:

      • OUTPUT_BUCKET_PATH: o caminho completo para o contentor e a pasta de saída criados anteriormente.
      • PROCESSOR_ID: o ID do processador criado anteriormente.
      • LOCATION: a região do processador criada anteriormente.
      {
        "inputBucket": "gs://cloud-samples-data/documentai/workflows",
        "outputBucket": "OUTPUT_BUCKET_PATH",
        "processorId": "PROCESSOR_ID",
        "location": "LOCATION"
      }
      
    3. Copie/cole o JSON na caixa de texto de entrada.

    4. Clique em Executar na parte inferior do fluxo de trabalho para testar a sua entrada e aguarde um momento para que o processo seja concluído.

    5. Quando o fluxo de trabalho terminar, o JSON de saída deve ter um aspeto semelhante ao seguinte.

      {
        "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. Abra o contentor de armazenamento de saída. Vai ver a saída de cada fatura processada numa pasta com o nome do ID da operação. BatchGCSOutput

    7. Dentro desta pasta, existem subpastas, uma para cada documento processado a partir do lote de entrada que contém ficheiros JSON Document.

    8. Pode inspecionar cada ficheiro JSON ou escrever código para usar os campos relevantes para o seu exemplo de utilização. Consulte o guia de processamento de respostas para mais informações.

    9. Agora, pode associar passos adicionais no fluxo de trabalho para processar ainda mais o resultado, como inserir as entidades extraídas numa base de dados para análise.

    10. Consulte a documentação sobre fluxos de trabalho para mais informações sobre como acionar fluxos de trabalho.

    Limpar

    Para evitar incorrer em cobranças na sua Google Cloud conta pelos recursos usados nesta página, siga estes passos.

    Para evitar Google Cloud cobrançasGoogle Cloud console desnecessárias, use o Google Cloud console para eliminar o processador, o contentor, o fluxo de trabalho e o projeto se não precisar deles.

    O que se segue?