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. Connectez-vous à votre compte Google Cloud. 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 gratuits pour exécuter, tester et déployer des charges de travail.
  2. Installez Google Cloud CLI.
  3. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  4. Créez ou sélectionnez un projet Google Cloud.

    • Créez un projet Google Cloud :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par le nom du projet Google Cloud que vous créez.

    • Sélectionnez le projet Google Cloud que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre projet Google Cloud.

  5. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  6. Activer les API Cloud Storage, Translation, and Workflows :

    gcloud services enable storage.googleapis.com translate.googleapis.com workflows.googleapis.com
  7. Installez Google Cloud CLI.
  8. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  9. Créez ou sélectionnez un projet Google Cloud.

    • Créez un projet Google Cloud :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par le nom du projet Google Cloud que vous créez.

    • Sélectionnez le projet Google Cloud que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre projet Google Cloud.

  10. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  11. Activer les API Cloud Storage, Translation, and Workflows :

    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
    

    Comme 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 AutoML Translation autre que celui par défaut, assurez-vous qu'ils se trouvent au même emplacement que l'appel au 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
    gsutil mb gs://${BUCKET_INPUT}
  2. Créez deux fichiers en anglais et importez-les dans le bucket d'entrée :

    echo "Hello World!" > file1.txt
    gsutil cp file1.txt gs://${BUCKET_INPUT}
    echo "Workflows connectors simplify calling services." > file2.txt
    gsutil 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 :

    gsutil 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 :

    gsutil ls -r gs://PROJECT_ID-output-files-TIMESTAMP/**

    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. Dans la console Google Cloud, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

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 :

    gsutil rm -r gs://BUCKET_NAME

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

    La réponse est semblable à ce qui suit :

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

Étapes suivantes