Eseguire una traduzione collettiva utilizzando il connettore Cloud Translation


Questo tutorial mostra come creare un flusso di lavoro che utilizza il connettore dell'API Cloud Translation per tradurre i file in altre lingue in modalità batch asincrona. In questo modo, l'output viene generato in tempo reale durante l'elaborazione degli input.

Obiettivi

In questo tutorial, imparerai a:

  1. Crea un bucket Cloud Storage di input.
  2. Crea due file in inglese e caricali nel bucket di input.
  3. Crea un flusso di lavoro che utilizzi il connettore dell'API Cloud Translation per tradurre i due file in francese e spagnolo e salva i risultati in un bucket di output.
  4. Esegui il deployment ed esegui il workflow per orchestrare l'intero processo.

Costi

In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:

Per generare una stima dei costi in base all'utilizzo previsto, utilizza il calcolatore prezzi.

I nuovi utenti di Google Cloud potrebbero avere diritto a una prova senza costi.

Prima di iniziare

I vincoli di sicurezza definiti dalla tua organizzazione potrebbero impedirti di completare i passaggi seguenti. Per informazioni sulla risoluzione dei problemi, vedi Sviluppare applicazioni in un ambiente Google Cloud vincolato.

  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. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.

  4. Per inizializzare gcloud CLI, esegui questo comando:

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

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

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

    gcloud services enable storage.googleapis.com translate.googleapis.com workflows.googleapis.com
  8. Install the Google Cloud CLI.

  9. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere alla gcloud CLI con la tua identità federata.

  10. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  11. 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.

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

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

    gcloud services enable storage.googleapis.com translate.googleapis.com workflows.googleapis.com
  14. Aggiorna i componenti gcloud:
    gcloud components update
  15. Accedi utilizzando il tuo account:
    gcloud auth login
  16. Imposta la posizione predefinita utilizzata in questo tutorial:
    gcloud config set workflows/location us-central1

    Poiché questo tutorial utilizza il modello AutoML Translation predefinito che si trova in us-central1, devi impostare la località su us-central1.

    Se utilizzi un modello o un glossario AutoML Translation diverso da quello predefinito, assicurati che si trovi nella stessa posizione della chiamata al connettore; in caso contrario, viene restituito un errore INVALID_ARGUMENT (400). Per i dettagli, consulta il metodo batchTranslateText.

  17. Crea un bucket Cloud Storage di input e i file

    Puoi utilizzare Cloud Storage per archiviare oggetti. Gli oggetti sono dati immutabili costituiti da un file di qualsiasi formato e vengono archiviati in contenitori chiamati bucket.

    1. Crea un bucket Cloud Storage per contenere i file da tradurre:

      BUCKET_INPUT=${GOOGLE_CLOUD_PROJECT}-input-files
      gcloud storage buckets create gs://${BUCKET_INPUT}
    2. Crea due file in inglese e caricali nel bucket di input:

      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}

    Esegui il deployment del workflow ed eseguilo

    Un flusso di lavoro è costituito da una serie di passaggi descritti utilizzando la sintassi di Workflows, che può essere scritta in formato YAML o JSON. Questa è la definizione del flusso di lavoro. Dopo aver creato un flusso di lavoro, lo esegui per renderlo disponibile per l'esecuzione.

    1. Crea un file di testo con il nome file workflow.yaml e il seguente contenuto:

      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

      Il flusso di lavoro assegna le variabili, crea un bucket di output e avvia la traduzione dei file, salvando i risultati nel bucket di output.

    2. Dopo aver creato il flusso di lavoro, esegui il deployment:

      gcloud workflows deploy batch-translation --source=workflow.yaml
    3. Esegui il workflow:

      gcloud workflows execute batch-translation
    4. Per visualizzare lo stato del flusso di lavoro, puoi eseguire il comando restituito. Ad esempio:

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

      Il flusso di lavoro dovrebbe essere ACTIVE. Dopo alcuni minuti, i file tradotti (in francese e spagnolo) vengono caricati nel bucket di output.

    Elenca gli oggetti nel bucket di output

    Per verificare che il flusso di lavoro abbia funzionato come previsto, elenca gli oggetti nel bucket di output.

    1. Recupera il nome del bucket di output:

      gcloud storage ls

      L'output è simile al seguente:

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

    2. Elenca gli oggetti nel bucket di output:

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

      Dopo alcuni minuti, vengono elencati i file tradotti, due per ciascuna lingua (francese e spagnolo).

    Esegui la pulizia

    Se hai creato un nuovo progetto per questo tutorial, elimina il progetto. Se hai utilizzato un progetto esistente e vuoi conservarlo senza le modifiche aggiunte in questo tutorial, elimina le risorse create per il tutorial.

    Elimina il progetto

    Il modo più semplice per eliminare la fatturazione è eliminare il progetto creato per il tutorial.

    Per eliminare il progetto:

    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.

    Eliminare le risorse del tutorial

    1. Rimuovi la configurazione predefinita di gcloud che hai aggiunto durante la configurazione del tutorial:

      gcloud config unset workflows/location
    2. Elimina il flusso di lavoro creato in questo tutorial:

      gcloud workflows delete WORKFLOW_NAME
    3. Elimina un bucket e i relativi oggetti creati in questo tutorial:

      gcloud storage rm gs://BUCKET_NAME --recursive

      Dove BUCKET_NAME è il nome del bucket da eliminare. Ad esempio, my-bucket.

      La risposta è simile alla seguente:

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

    Passaggi successivi