Exécuter une traduction par lot à l'aide du connecteur Cloud Translation


Ce tutoriel explique comment créer un workflow qui utilise le connecteur d'API Cloud Translation pour traduire des fichiers dans d'autres langues en mode de traitement par lot asynchrone. Cette méthode fournit une sortie en temps réel, au fur et à mesure du traitement des entrées.

Objectifs

Au cours de ce tutoriel, vous allez :

  1. Créez un bucket Cloud Storage d'entrée.
  2. Créez deux fichiers en anglais et importez-les dans le bucket d'entrée.
  3. Créez un workflow qui utilise le connecteur de l'API Cloud Translation pour traduire les deux fichiers en français et en espagnol, puis enregistre les résultats dans un bucket de sortie.
  4. Déployez et exécutez le workflow pour orchestrer l'ensemble du processus.

Coûts

Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Avant de commencer

Les contraintes de sécurité définies par votre organisation peuvent vous empêcher d'effectuer les étapes suivantes. Pour obtenir des informations de dépannage, consultez la page Développer des applications dans un environnement Google Cloud limité.

  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. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Cloud Storage, Translation, and Workflows APIs:

    gcloud services enable storage.googleapis.com translate.googleapis.com workflows.googleapis.com
  7. Install the Google Cloud CLI.
  8. To initialize the gcloud CLI, run the following command:

    gcloud init
  9. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  10. Make sure that billing is enabled for your Google Cloud project.

  11. Enable the Cloud Storage, Translation, and Workflows APIs:

    gcloud services enable storage.googleapis.com translate.googleapis.com workflows.googleapis.com
  12. Mettez à jour les composants gcloud :
    gcloud components update
  13. Connectez-vous à votre compte :
    gcloud auth login
  14. Définissez l'emplacement par défaut utilisé dans ce tutoriel :
    gcloud config set workflows/location us-central1

    Étant donné que ce tutoriel utilise le modèle AutoML Translation par défaut qui se trouve dans us-central1, vous devez définir l'emplacement sur us-central1.

    Si vous utilisez un modèle ou un glossaire de traduction AutoML autre que celui par défaut, assurez-vous qu'il se trouve au même emplacement que l'appel du connecteur. Sinon, une erreur INVALID_ARGUMENT (400) est renvoyée. Pour en savoir plus, consultez la méthode batchTranslateText.

Créer un bucket et des fichiers Cloud Storage d'entrée

Vous pouvez utiliser Cloud Storage pour stocker des objets. Les objets sont des données immuables. Ils sont constitués d'un fichier dans n'importe quel format et stockés dans des conteneurs appelés "buckets".

  1. Créez un bucket Cloud Storage pour stocker les fichiers à traduire :

    BUCKET_INPUT=${GOOGLE_CLOUD_PROJECT}-input-files
    gcloud storage buckets create gs://${BUCKET_INPUT}
  2. Créez deux fichiers en anglais et importez-les dans le bucket d'entrée :

    echo "Hello World!" > file1.txt
    gcloud storage cp file1.txt gs://${BUCKET_INPUT}
    echo "Workflows connectors simplify calling services." > file2.txt
    gcloud storage cp file2.txt gs://${BUCKET_INPUT}

Déployer et exécuter le workflow

Un workflow est constitué d'une série d'étapes décrites à l'aide de la syntaxe Workflows, qui peut être écrite au format YAML ou JSON. Il s'agit de la définition du workflow. Après avoir créé un workflow, vous pouvez le déployer pour le rendre disponible en exécution.

  1. Créez un fichier texte avec le nom de fichier workflow.yaml et le contenu suivant :

    main:
      steps:
      - init:
          assign:
          - projectId: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
          - location: ${sys.get_env("GOOGLE_CLOUD_LOCATION")}
          - inputBucketName: ${projectId + "-input-files"}
          - outputBucketName: ${projectId + "-output-files-" + string(int(sys.now()))}
      - createOutputBucket:
            call: googleapis.storage.v1.buckets.insert
            args:
              project: ${projectId}
              body:
                name: ${outputBucketName}
      - batchTranslateText:
          call: googleapis.translate.v3beta1.projects.locations.batchTranslateText
          args:
              parent: ${"projects/" + projectId + "/locations/" + location}
              body:
                  inputConfigs:
                    gcsSource:
                      inputUri: ${"gs://" + inputBucketName + "/*"}
                  outputConfig:
                      gcsDestination:
                        outputUriPrefix: ${"gs://" + outputBucketName + "/"}
                  sourceLanguageCode: "en"
                  targetLanguageCodes: ["es", "fr"]
          result: batchTranslateTextResult

    Le workflow attribue des variables, crée un bucket de sortie et lance la traduction des fichiers, en enregistrant les résultats dans le bucket de sortie.

  2. Une fois le workflow créé, déployez-le :

    gcloud workflows deploy batch-translation --source=workflow.yaml
  3. Exécutez le workflow :

    gcloud workflows execute batch-translation
  4. Pour afficher l'état du workflow, vous pouvez exécuter la commande renvoyée. Exemple :

    gcloud workflows executions describe eb4a6239-cffa-4672-81d8-d4caef7d8424 /
      --workflow batch-translation /
      --location us-central1

    Le workflow doit être ACTIVE. Après quelques minutes, les fichiers traduits (en français et en espagnol) sont importés dans le bucket de sortie.

Lister les objets du bucket de sortie

Vous pouvez vérifier que le workflow a fonctionné comme prévu en listant les objets dans votre bucket de sortie.

  1. Récupérez le nom de votre bucket de sortie :

    gcloud storage ls

    Le résultat ressemble à ce qui suit :

    gs://PROJECT_ID-input-files/
    gs://PROJECT_ID-output-files-TIMESTAMP/

  2. Listez les objets d'un bucket :

    gcloud storage ls gs://PROJECT_ID-output-files-TIMESTAMP/** --recursive

    Après quelques minutes, les fichiers traduits, deux de chaque en français et en espagnol, sont listés.

Effectuer un nettoyage

Si vous avez créé un projet pour ce tutoriel, supprimez-le. Si vous avez utilisé un projet existant et que vous souhaitez le conserver sans les modifications du présent tutoriel, supprimez les ressources créées pour ce tutoriel.

Supprimer le projet

Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.

Pour supprimer le projet :

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Supprimer les ressources du tutoriel

  1. Supprimez les configurations gcloud par défaut que vous avez ajoutées lors de la configuration du tutoriel :

    gcloud config unset workflows/location
  2. Supprimez le workflow créé dans ce tutoriel :

    gcloud workflows delete WORKFLOW_NAME
  3. Supprimez le workflow créé dans ce tutoriel :

    gcloud storage rm gs://BUCKET_NAME --recursive

    BUCKET_NAME correspond au nom du bucket à supprimer. Exemple :my-bucket

    La réponse est semblable à ce qui suit :

    Removing gs://my-bucket/...

Étape suivante