Executar uma tradução em lote usando o conector do Cloud Translation


Neste tutorial, mostramos como criar um fluxo de trabalho que usa o conector da API Cloud Translation para traduzir arquivos para outros idiomas no modo em lote assíncrono. Isso fornece saída em tempo real à medida que as entradas estão sendo processadas.

Objetivos

Neste tutorial, você aprenderá a:

  1. criar um bucket de entrada do Cloud Storage;
  2. criar dois arquivos em inglês e fazer upload deles no bucket de entrada;
  3. criar um fluxo de trabalho que use o conector da API Cloud Translation para traduzir os dois arquivos para francês e espanhol e salvar os resultados em um bucket de saída;
  4. implantar e executar o fluxo de trabalho para orquestrar todo o processo.

Custos

Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:

Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços. Novos usuários do Google Cloud podem estar qualificados para uma avaliação gratuita.

Antes de começar

As restrições de segurança definidas pela sua organização podem impedir que você conclua as etapas a seguir. Para informações sobre solução de problemas, consulte Desenvolver aplicativos em um ambiente restrito do Google Cloud.

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Crie ou selecione um projeto do Google Cloud.

    • Crie um projeto do Google Cloud:

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o projeto do Google Cloud que você está criando.

    • Selecione o projeto do Google Cloud que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do projeto do Google Cloud.

  5. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  6. Ative as APIs Cloud Storage, Translation, and Workflows:

    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. Crie ou selecione um projeto do Google Cloud.

    • Crie um projeto do Google Cloud:

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o projeto do Google Cloud que você está criando.

    • Selecione o projeto do Google Cloud que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do projeto do Google Cloud.

  10. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  11. Ative as APIs Cloud Storage, Translation, and Workflows:

    gcloud services enable storage.googleapis.com translate.googleapis.com workflows.googleapis.com
  12. Atualize os componentes da gcloud:
    gcloud components update
  13. Faça login usando sua conta:
    gcloud auth login
  14. Defina o local padrão usado neste tutorial:
    gcloud config set workflows/location us-central1
    

    Como este tutorial usa o modelo padrão do AutoML Translation, resida em us-central1, defina o local como us-central1.

    Se estiver usando um modelo ou glossário do AutoML Translation diferente do por padrão, ele precisa estar no mesmo location como a chamada para o conector. Caso contrário, será retornado um erro INVALID_ARGUMENT (400). Para mais detalhes, consulte batchTranslateText.

Criar um bucket e os arquivos do Cloud Storage

Use o Cloud Storage para armazenar objetos. Objetos são partes imutáveis de dados que consistem em um arquivo de qualquer formato e são armazenados em contêineres chamados buckets.

  1. Crie um bucket do Cloud Storage para armazenar os arquivos que serão traduzidos:

    BUCKET_INPUT=${GOOGLE_CLOUD_PROJECT}-input-files
    gcloud storage buckets create gs://${BUCKET_INPUT}
  2. Crie dois arquivos em inglês e faça upload deles para o bucket de entrada:

    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}

Implantar e executar o fluxo de trabalho

Um fluxo de trabalho é composto por uma série de etapas descritas usando a sintaxe dos fluxos de trabalho, que pode ser escrita em formato YAML ou JSON. Essa é a definição do fluxo de trabalho. Depois de criar um fluxo de trabalho, implante-o para que ele fique disponível para execução.

  1. Crie um arquivo de texto com o nome de arquivo workflow.yaml com o seguinte conteúdo:

    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

    O fluxo de trabalho atribui variáveis, cria um bucket de saída e inicia a tradução dos arquivos, salvando os resultados no bucket de saída.

  2. Depois de criar o fluxo de trabalho, implante-o:

    gcloud workflows deploy batch-translation --source=workflow.yaml
  3. Execute o fluxo de trabalho:

    gcloud workflows execute batch-translation
  4. Para ver o status do fluxo de trabalho, execute o comando retornado. Exemplo:

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

    O fluxo de trabalho precisa ser ACTIVE. Após alguns minutos, os arquivos traduzidos (em francês e espanhol) serão enviados ao bucket de saída.

Listar objetos no bucket de saída

É possível confirmar se o fluxo de trabalho funcionou conforme esperado listando os objetos no bucket de saída.

  1. Recupere o nome do bucket de saída:

    gcloud storage ls

    O resultado será assim:

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

  2. Liste os objetos no bucket de saída.

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

    Após alguns minutos, os arquivos traduzidos em francês e espanhol (dois de cada) serão listados.

Limpar

Se você criou um novo projeto para este tutorial, exclua o projeto. Se você usou um projeto atual e quer mantê-lo sem as alterações incluídas neste tutorial, exclua os recursos criados para o tutorial.

Exclua o projeto

O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para o tutorial.

Para excluir o projeto:

  1. No Console do Google Cloud, acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.

delete-tutorial-resources

  1. Remova as configurações padrão da gcloud que você adicionou durante a configuração do tutorial:

    gcloud config unset workflows/location
    
  2. Exclua o fluxo de trabalho criado neste tutorial:

    gcloud workflows delete WORKFLOW_NAME
    
  3. Exclua os buckets criado neste tutorial:

    gcloud storage rm gs://BUCKET_NAME --recursive

    Em que BUCKET_NAME é o nome do bucket a ser excluído. Por exemplo, my-bucket.

    A resposta é semelhante a:

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

A seguir