Esegui una traduzione batch utilizzando il connettore Cloud Translation


Questo tutorial mostra come creare un flusso di lavoro che utilizza il connettore API Cloud Translation per tradurre i file in altre lingue in modalità batch asincrona. Ciò fornisce output in tempo reale durante l'elaborazione degli input.

Obiettivi

In questo tutorial, imparerai a:

  1. Creare 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 API Cloud Translation per tradurre i due file in francese e in spagnolo e salva i risultati in un bucket di output.
  4. Esegui il deployment del flusso di lavoro ed eseguilo 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 possono essere idonei a una prova senza costi aggiuntivi.

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. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Installa Google Cloud CLI.
  3. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  4. Crea o seleziona un progetto Google Cloud.

    • Crea un progetto Google Cloud:

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con un nome per il progetto Google Cloud che stai creando.

    • Seleziona il progetto Google Cloud che hai creato:

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con il nome del tuo progetto Google Cloud.

  5. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  6. Abilita le API Cloud Storage, Translation, and Workflows.

    gcloud services enable storage.googleapis.com translate.googleapis.com workflows.googleapis.com
  7. Installa Google Cloud CLI.
  8. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  9. Crea o seleziona un progetto Google Cloud.

    • Crea un progetto Google Cloud:

      gcloud projects create PROJECT_ID

      Sostituisci PROJECT_ID con un nome per il progetto Google Cloud che stai creando.

    • Seleziona il progetto Google Cloud che hai creato:

      gcloud config set project PROJECT_ID

      Sostituisci PROJECT_ID con il nome del tuo progetto Google Cloud.

  10. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  11. Abilita le API Cloud Storage, Translation, and Workflows.

    gcloud services enable storage.googleapis.com translate.googleapis.com workflows.googleapis.com
  12. Aggiorna i componenti di gcloud:
    gcloud components update
  13. Accedi con il tuo account:
    gcloud auth login
  14. Imposta la località 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 località della chiamata al connettore; in caso contrario, viene restituito un errore INVALID_ARGUMENT (400). Per maggiori dettagli, vedi il metodo batchTranslateText.

crea un bucket Cloud Storage di input e dei file

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

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

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

    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}

Esegui il deployment del flusso di lavoro

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

  1. Crea un file di testo con il nome 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 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, eseguine il deployment:

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

    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 deve essere ACTIVE. Dopo qualche minuto, i file tradotti (in francese e spagnolo) vengono caricati nel bucket di output.

Elenca oggetti nel bucket di output

Puoi confermare che il flusso di lavoro ha funzionato come previsto elencando gli oggetti nel bucket di output.

  1. Recupera il nome del bucket di output:

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

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

    Dopo qualche minuto vengono elencati i file tradotti, due in francese e uno in 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 che hai creato per il tutorial.

Per eliminare il progetto:

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.

Elimina risorse tutorial

  1. Rimuovi la configurazione predefinita di gcloud aggiunta 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 i bucket creati in questo tutorial:

    gsutil rm -r gs://BUCKET_NAME

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

    La risposta è simile alla seguente:

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

Passaggi successivi