Crea una pipeline di elaborazione di documenti con Workflows

Se utilizzi Document AI per creare workflow che prevedono diversi passaggi per elaborare i documenti, potresti voler utilizzare l'orchestrazione serverless per gestire il flusso di lavoro.

Workflows collega una serie di attività in un ordine definito da te. Non richiede alcuna gestione dell'infrastruttura e offre scalabilità senza interruzioni on demand, incluso lo scale down fino a zero. Grazie al modello di prezzi a consumo, paghi solo in base al tempo di esecuzione.

Workflows fornisce un connettore integrato per l'API Document AI. I connettori non richiedono codice aggiuntivo oltre a definire i passaggi utilizzando un file di configurazione. I connettori gestiscono la formattazione delle richieste e nascondono i dettagli dell'API. I connettori offrono inoltre un comportamento integrato per l'autenticazione, gestendo i nuovi tentativi e le operazioni a lunga esecuzione.

Per saperne di più, vedi Informazioni sui connettori.

Questa guida elabora un insieme di fatture di esempio utilizzando il processore di analisi delle fatture Invoice Parser con l'elaborazione batch


Per seguire le indicazioni dettagliate per questa attività direttamente nella Google Cloud console, fai clic su Procedura guidata:

Procedura guidata


Prima di iniziare

  1. Accedi al tuo Google Cloud account. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
  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 role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

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

  5. 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

  6. 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 role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

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

  9. 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

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare una categoria di classificazione personalizzata, chiedi all'amministratore di concederti i seguenti ruoli IAM per il progetto:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Crea un analizzatore sintattico delle fatture

Utilizza la Google Cloud console per creare un nuovo parser delle fatture. Per maggiori informazioni, consulta la pagina Creazione e gestione dei processori.

  1. Nel menu di navigazione della Google Cloud console, fai clic su Document AI e seleziona Galleria processori.

    Galleria processori

  2. Nella Galleria processori, cerca Analizzatore sintattico delle fatture e seleziona Crea.

    Crea processore
fatture

  3. Inserisci il Nome processore, ad esempio workflows-invoice-processor.

  4. Seleziona la regione (location nell'API Document AI) in cui ospitare il processore.

  5. Fai clic su Crea. Viene visualizzata la scheda Dettagli del processore.

  6. Copia il tuo ID processore. Lo dovrai utilizzare nel tuo codice in un secondo momento.

    ID processore

Configura il bucket di output in Cloud Storage

Quando utilizzi l'elaborazione batch (asincrona), i file di input e di output devono essere archiviati in Cloud Storage. Il bucket seguente contiene file di esempio da utilizzare come input per questa guida:

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

Configura un bucket per archiviare i file di output nel progetto.

  1. Segui la guida Crea bucket nella documentazione di Cloud Storage per creare un bucket o utilizza un bucket già esistente.

  2. Crea una cartella nel bucket (ad esempio docai-workflows-output).

Crea flusso di lavoro

  1. Apri la dashboard di Workflows nella Google Cloud console.

    Vai alla dashboard di Workflows

  2. Fai clic su Crea per creare il primo workflow. Viene visualizzata la pagina Crea flusso di lavoro.

    Workflows Create

  3. Rinomina il workflow in docai-workflows-quickstart.

  4. Aggiungi una descrizione e seleziona un service account se ne hai uno per questo progetto.

    1. Se non hai un account di servizio, seleziona Crea un nuovo service account.
      • Assegna un nome all'account di servizio e seleziona Crea e continua. CreateServiceAccount
      • Assegna i seguenti ruoli:
      • Document AI API User
      • Workflows Invoker
      • Logs Writer
      • Service Usage Consumer
      • ServiceAccountRoles
  5. Nella pagina Crea flusso di lavoro, fai clic su Avanti.

Definisci flusso di lavoro

  1. Nell'editor di Workflows, cancella il file YAML predefinito e incolla il codice seguente:

    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. Seleziona Esegui il deployment.

Testa il flusso di lavoro

Ora che hai eseguito il deployment del workflow, dovresti essere nella pagina Dettagli workflow.

  1. Fai clic su Esegui nella parte superiore della pagina per andare alla pagina Esegui workflow. Questa pagina ti consente di testare il workflow nella console.

  2. Sostituisci le variabili segnaposto nel seguente file JSON di input:

    • OUTPUT_BUCKET_PATH: il percorso completo del bucket di output e della cartella creati in precedenza.
    • PROCESSOR_ID: l'ID processore creato in precedenza.
    • LOCATION: la località del processore creata in precedenza.
    {
      "inputBucket": "gs://cloud-samples-data/documentai/workflows",
      "outputBucket": "OUTPUT_BUCKET_PATH",
      "processorId": "PROCESSOR_ID",
      "location": "LOCATION"
    }
    
  3. Copia e incolla il file JSON nella casella di testo di input.

  4. Fai clic su Esegui nella parte inferiore del workflow per testare l'input e attendi il completamento del processo.

  5. Al termine del workflow, il file JSON di output dovrebbe avere il seguente aspetto.

    {
      "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. Apri il bucket di archiviazione di output e vedrai l'output di ogni fattura elaborata in una cartella con il nome dell'ID operazione. BatchGCSOutput

  7. All'interno di questa cartella saranno presenti sottocartelle, una per ogni documento elaborato dal batch di input contenente i file JSON Document.

  8. Puoi esaminare ogni file JSON o scrivere codice per utilizzare i campi pertinenti per il tuo caso d'uso. Per maggiori informazioni, consulta la guida alla gestione della risposta di elaborazione.

  9. Ora puoi collegare passaggi aggiuntivi nel workflow per elaborare ulteriormente l'output, ad esempio inserendo le entità estratte in un database per l'analisi.

  10. Per maggiori informazioni su come attivare i flussi di lavoro, consulta la documentazione di Workflows.

Libera spazio

Per evitare che al tuo Google Cloud account vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.

Per evitare addebiti non necessari Google Cloud , utilizza Google Cloud console per eliminare il processore, il bucket, il workflow e il progetto se non ti servono.

Passaggi successivi