Créer un pipeline de traitement de documents avec Workflows

Si vous utilisez Document AI pour créer des workflows impliquant plusieurs étapes de traitement des documents, vous pouvez utiliser l'orchestration sans serveur pour gérer votre workflow.

Workflows associe une série de jobs dans un ordre que vous définissez. Il ne nécessite aucune gestion d'infrastructure et s'adapte à la demande de manière fluide, y compris pour le scaling à zéro instance. Avec son modèle de paiement à l'utilisation, vous ne payez que pour la durée d'exécution.

Workflows fournit un connecteur intégré pour l'API Document AI. Les connecteurs ne nécessitent pas de code supplémentaire au-delà de la définition des étapes à l'aide d'un fichier de configuration. Les connecteurs gèrent le formatage des requêtes et masquent les détails de l'API. Les connecteurs offrent également un comportement intégré pour l'authentification, la gestion des nouvelles tentatives et les opérations de longue durée.

Pour en savoir plus, consultez la page Comprendre les connecteurs.

Ce guide traite un ensemble d'exemples de factures en utilisant l'analyseur de factures et le traitement par lot


Pour obtenir des instructions détaillées sur cette tâche directement dans la console Google Cloud, cliquez sur Visite guidée :

Visite guidée


Avant de commencer

  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

Créer un analyseur de factures

Utilisez la console Google Cloud pour créer un analyseur de factures. Pour en savoir plus, consultez la page Créer et gérer des outils de traitement.

  1. Dans le menu de navigation de la console Google Cloud, cliquez sur Document AI, puis sélectionnez Galerie d'outils de traitement.

    Galerie d'outils de traitement

  2. Dans la Galerie de processeurs, recherchez l'élément Analyseur de factures et sélectionnez Créer.

    Créer un outil de traitement des factures

  3. Saisissez un nom d'outil de traitement tel que workflows-invoice-processor.

  4. Sélectionnez la région (location dans l'API Document AI) pour héberger le processeur.

  5. Cliquez sur Créer. L'onglet Détails de l'outil de traitement s'affiche.

  6. Copiez votre ID d'outil de traitement. Vous devrez l'utiliser ultérieurement dans votre code.

    ID du processeur

Configurer un bucket de sortie dans Cloud Storage

Lorsque vous utilisez le traitement par lot (asynchrone), les fichiers d'entrée et de sortie doivent être stockés dans Cloud Storage. Le bucket suivant contient des exemples de fichiers à utiliser comme entrée pour ce guide :

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

Configurez un bucket pour stocker les fichiers de sortie dans votre projet.

  1. Suivez le guide Créer des buckets dans la documentation Cloud Storage pour créer un bucket ou en utiliser un existant.

  2. Créez un dossier dans le bucket (par exemple, docai-workflows-output).

Créer un workflow

  1. Ouvrez le tableau de bord Workflows dans la console Google Cloud.

    Accéder au tableau de bord "Workflows"

  2. Cliquez sur Créer pour créer votre premier workflow. La page Créer un workflow s'affiche.

    Workflows Create

  3. Renommez le workflow en docai-workflows-quickstart.

  4. Ajoutez une description, puis sélectionnez un compte de service si vous en avez un pour ce projet.

    1. Si vous n'avez pas de compte de service, sélectionnez Créer un compte de service.
      • Nommez votre compte de service, puis sélectionnez Créer et continuer. CreateServiceAccount
      • Attribuez-lui les rôles suivants :
      • Document AI API User
      • Workflows Invoker
      • Logs Writer
      • Service Usage Consumer
      • ServiceAccountRoles
  5. Sur la page Créer un workflow, cliquez sur Suivant.

Définir le workflow

  1. Dans l'éditeur Workflows, supprimez le fichier YAML par défaut et collez le code ci-dessous :

    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. Sélectionnez Déployer.

Tester le workflow

Maintenant que le workflow a été déployé, accédez à la page Détails du workflow.

  1. Cliquez sur Exécuter en haut de la page pour accéder à la page Exécuter le workflow. Cette page vous permet de tester votre workflow dans la console.

  2. Remplacez les variables d'espace dans le fichier d'entrée JSON suivant :

    • OUTPUT_BUCKET_PATH : le chemin d'accès complet au bucket de sortie et au dossier créés précédemment.
    • PROCESSOR_ID : l'ID de l'outil de traitement créé précédemment.
    • LOCATION : la région de l'outil de traitement créé précédemment.
    {
      "inputBucket": "gs://cloud-samples-data/documentai/workflows",
      "outputBucket": "OUTPUT_BUCKET_PATH",
      "processorId": "PROCESSOR_ID",
      "location": "LOCATION"
    }
    
  3. Copiez et collez le fichier JSON dans la zone de texte d'entrée.

  4. Cliquez sur Exécuter en bas du workflow pour tester votre entrée et attendre la fin du processus.

  5. Une fois le workflow terminé, le fichier JSON de sortie doit se présenter comme suit :

    {
      "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. Ouvrez le bucket de stockage de sortie. Vous verrez le résultat de chaque facture traitée dans un dossier nommé d'après l'ID d'opération. BatchGCSOutput

  7. Ce dossier contient des sous-dossiers, un pour chaque document traité à partir du lot d'entrée contenant Document fichier(s) JSON.

  8. Vous pouvez inspecter chaque fichier JSON ou écrire du code afin d'utiliser les champs pertinents pour votre cas d'utilisation. Pour en savoir plus, consultez le guide Gérer la réponse de traitement.

  9. Vous pouvez désormais associer des étapes supplémentaires dans le workflow pour approfondir le traitement du résultat, comme l'insertion des entités extraites dans une base de données à des fins d'analyse.

  10. Reportez-vous à la documentation Workflows pour savoir comment déclencher les workflows.

Effectuer un nettoyage

Pour éviter que les ressources utilisées sur cette page ne soient facturées sur votre compte Google Cloud , suivez les étapes ci-dessous.

Pour éviter que des frais liés à Google Cloud ne vous soient facturés inutilement, supprimez votre processeur, votre bucket, votre workflow et votre projet à l'aide de la console Google Cloud si vous n'en avez plus besoin.

Étape suivante