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 Google Cloud console, cliquez sur Visite guidée:
Avant de commencer
- Connectez-vous à votre Google Cloud compte. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
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.
-
Verify that billing is enabled for your Google Cloud project.
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 theserviceusage.services.enablepermission. Learn how to grant roles.
Rôles requis
Pour obtenir les autorisations nécessaires pour créer un classifieur personnalisé, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :
-
Administrateur Document AI (
roles/documentai.admin) -
Administrateur de projet IAM (
roles/resourcemanager.projectIamAdmin) -
Utilisateur du compte de service (
roles/iam.serviceAccountUser) -
Administrateur de l'espace de stockage (
roles/storage.admin) -
Éditeur de workflows (
roles/workflows.editor) -
Créer un compte de service :
Créer des comptes de service (
roles/iam.serviceAccountCreator)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
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.
Dans le Google Cloud menu de navigation de la console, cliquez sur Document AI et sélectionnez Galerie d'outils de traitement.
Dans la Galerie de processeurs,
recherchez l'élément Analyseur de factures et sélectionnez Créer.
Saisissez un nom d'outil de traitement tel que
workflows-invoice-processor.Sélectionnez la région (
locationdans l'API Document AI) pour héberger le processeur.Cliquez sur Créer. L'onglet Détails de l'outil de traitement s'affiche.
Copiez votre ID d'outil de traitement. Vous devrez l'utiliser ultérieurement dans votre code.
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.
Suivez le guide Créer des buckets dans la documentation Cloud Storage pour créer un bucket ou en utiliser un existant.
Créez un dossier dans le bucket (par exemple,
docai-workflows-output).
Créer un workflow
Ouvrez le tableau de bord Workflows dans la Google Cloud console.
Cliquez sur
Créer pour créer votre premier workflow. La page Créer un workflow s'affiche.
Renommez le workflow endocai-workflows-quickstart.Ajoutez une description, puis sélectionnez un compte de service si vous en avez un pour ce projet.
- 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.
- Attribuez-lui les rôles suivants :
Document AI API UserWorkflows InvokerLogs WriterService Usage Consumer
- Nommez votre compte de service, puis sélectionnez Créer et continuer.
- Si vous n'avez pas de compte de service, sélectionnez Créer un compte de service.
Sur la page Créer un workflow, cliquez sur
Suivant .
Définir le workflow
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}
- Sélectionnez
Déployer .
Tester le workflow
Maintenant que le workflow a été déployé, accédez à la page Détails du workflow.
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.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" }Copiez et collez le fichier JSON dans la
zone de texte d'entrée .Cliquez sur
Exécuter en bas du workflow pour tester votre entrée et attendre la fin du processus.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" } }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.
Ce dossier contient des sous-dossiers, un pour chaque document traité à partir du lot d'entrée contenant
Documentfichier(s) JSON.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.
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.
Reportez-vous à la documentation Workflows pour savoir comment déclencher les workflows.
Libérer de l'espace
Pour éviter que les ressources utilisées dans cette démonstration soient facturées sur votre Google Cloud compte pour les ressources utilisées sur cette page, procédez comme suit :
Pour éviter que des frais inutiles ne vous soient facturés, supprimez votre processeur, votre bucket, votre workflow et votre projet à l'aide de Google Cloud console si vous n'en avez plus besoin . Google Cloud
Étape suivante
- En savoir plus sur Workflows
- En savoir plus sur le connecteur de workflows Document AI
- Consultez la liste et les descriptions des processeurs actuellement disponibles.
- Découvrez comment gérer la réponse de traitement.