Crie um pipeline de processamento de documentos com o Workflows

Se você está usando a Document AI para criar fluxos de trabalho que envolvem várias etapas para processar documentos, recomendamos usar a orquestração sem servidor para gerenciar seu fluxo de trabalho.

O Workflows vincula uma série de tarefas em uma ordem definida por você. Ele não exige gerenciamento de infraestrutura e é escalonado sem interrupções, sob demanda, incluindo a redução da escala a zero. Com o modelo de preços de pagamento por uso, você paga apenas pelo tempo de execução.

O Workflows oferece um conector integrado para a API Document AI. Os conectores não exigem código adicional além da definição das etapas usando um arquivo de configuração. Os conectores lidam com a formatação das solicitações, ocultando os detalhes da API. Os conectores também oferecem comportamento integrado para autenticação, processamento de tentativas e operações de longa duração.

Para mais informações, consulte Noções básicas sobre conectores.

Este guia processa um conjunto de faturas de amostra usando o processador do analisador de faturas com processamento em lote


Para seguir as instruções passo a passo desta tarefa diretamente no console do Google Cloud, clique em Orientação:

Orientações


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.

    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

Criar um analisador de faturas

Use o console do Google Cloud para criar um novo analisador de faturas. Consulte a página sobre como criar e gerenciar processadores para mais informações.

  1. No menu de navegação do console do Google Cloud, clique em Document AI e selecione Processor Gallery.

    Galeria de processadores

  2. Na Galeria de processadores, procure analisador de faturas e selecione Criar.

    Criar processador de
faturas

  3. Digite um Nome de processador, como workflows-invoice-processor.

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

  5. Clique em Criar. A guia Detalhes do processador é exibida.

  6. Copie o ID do processador. Você precisará usá-la em seu código mais tarde.

    ID do processador

Configurar o bucket de saída no Cloud Storage

Ao usar o processamento em lote (assíncrono), os arquivos de entrada e saída precisam ser armazenados no Cloud Storage. O bucket abaixo contém amostras de arquivos a serem usados como entrada para este guia:

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

Configure um bucket para armazenar os arquivos de saída no projeto.

  1. Siga o guia Criar buckets na documentação do Cloud Storage para criar um bucket ou use um que já exista.

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

Criar fluxo de trabalho

  1. Abra o painel Fluxos de trabalho no console do Google Cloud.

    Acessar o Workflows"

  2. Clique em Criar para criar seu primeiro fluxo de trabalho. A página Criar fluxo de trabalho é exibida.

    Criação de fluxos de trabalho

  3. Renomeie o fluxo de trabalho como docai-workflows-quickstart.

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

    1. Se você não tiver uma conta de serviço, selecione Criar nova conta de serviço.
      • Nomeie sua conta de serviço e selecione Criar e continuar. CreateServiceAccount
      • Atribua os seguintes papéis a ele:
      • Document AI API User
      • Workflows Invoker
      • Logs Writer
      • Service Usage Consumer
      • ServiceAccountRoles
  5. Na página Criar fluxo de trabalho, clique em Próxima.

Definir fluxo de trabalho

  1. No editor de fluxos de trabalho, limpe o YAML padrão 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 Implantar.

Fluxo de trabalho de teste

Agora que o fluxo de trabalho foi implantado, você deverá estar na página Detalhes do fluxo de trabalho.

  1. Clique em Executar na parte superior da página para acessar a página Executar fluxo de trabalho. Nesta página, você pode testar seu fluxo de trabalho no console.

  2. Substitua as variáveis de marcador no seguinte JSON de entrada:

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

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

  5. Quando o fluxo de trabalho termina, o JSON de saída é parecido com 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"
      }
    }
    
  6. Abra o bucket de armazenamento de saída para verificar a saída de cada fatura processada em uma pasta com o nome do ID da operação. BatchGCSOutput

  7. Nela, haverá subpastas, uma para cada documento processado no lote de entrada que contém arquivos JSON Document.

  8. Você pode inspecionar cada arquivo JSON ou código de gravação para usar os campos relevantes para seu caso de uso. Consulte o guia sobre como processar respostas para mais informações.

  9. Agora é possível vincular outras etapas ao fluxo de trabalho para processar ainda mais a saída, como inserir as entidades extraídas em um banco de dados para análise.

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

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, siga estas etapas.

Para evitar cobranças desnecessárias do Google Cloud , use o console do Google Cloud para excluir o processador, o bucket, o fluxo de trabalho e o projeto se você não precisar deles.

A seguir