Execute uma tradução em lote através do conetor do Cloud Translation


Este tutorial mostra-lhe como criar um fluxo de trabalho que usa o conector da Cloud Translation API para traduzir ficheiros para outros idiomas no modo de lote assíncrono. Isto fornece um resultado em tempo real à medida que as entradas são processadas.

Objetivos

Neste tutorial, vai:

  1. Crie um contentor do Cloud Storage de entrada.
  2. Crie dois ficheiros em inglês e carregue-os para o contentor de entrada.
  3. Crie um fluxo de trabalho que use o conetor da Cloud Translation API para traduzir os dois ficheiros para francês e espanhol, e guarde os resultados num contentor de saída.
  4. Implemente e execute o fluxo de trabalho para orquestrar todo o processo.

Custos

Neste documento, usa os seguintes componentes faturáveis do Google Cloud:

Para gerar uma estimativa de custos com base na sua utilização projetada, use a calculadora de preços.

Os novos Google Cloud utilizadores podem ser elegíveis para uma avaliação gratuita.

Antes de começar

As restrições de segurança definidas pela sua organização podem impedir a conclusão dos seguintes passos. Para informações de resolução de problemas, consulte o artigo Desenvolva aplicações num ambiente Google Cloud restrito.

  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 estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.

  4. Para inicializar a CLI gcloud, execute o seguinte 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 estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.

  10. Para inicializar a CLI gcloud, execute o seguinte 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. Atualize os componentes do gcloud:
    gcloud components update
  15. Inicie sessão com a sua conta:
    gcloud auth login
  16. Defina a localização predefinida usada neste tutorial:
    gcloud config set workflows/location us-central1

    Uma vez que este tutorial usa o modelo do AutoML Translation predefinido que reside em us-central1, tem de definir a localização como us-central1.

    Se usar um modelo ou um glossário do AutoML Translation que não seja o predefinido, certifique-se de que reside na mesma localização que a chamada ao conector; caso contrário, é devolvido um erro INVALID_ARGUMENT (400). Para ver detalhes, consulte o método batchTranslateText.

  17. Crie um contentor e ficheiros do Cloud Storage de entrada

    Pode usar o Cloud Storage para armazenar objetos. Os objetos são partes de dados imutáveis que consistem num ficheiro de qualquer formato e são armazenados em contentores denominados contentores.

    1. Crie um contentor do Cloud Storage para guardar os ficheiros a traduzir:

      BUCKET_INPUT=${GOOGLE_CLOUD_PROJECT}-input-files
      gcloud storage buckets create gs://${BUCKET_INPUT}
    2. Crie dois ficheiros em inglês e carregue-os para o contentor 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}

    Implemente e execute o fluxo de trabalho

    Um fluxo de trabalho é composto por uma série de passos descritos através da sintaxe Workflows, que pode ser escrita no formato YAML ou JSON. Esta é a definição do fluxo de trabalho. Depois de criar um fluxo de trabalho, implementa-o para o disponibilizar para execução.

    1. Crie um ficheiro de texto com o nome de ficheiro workflow.yaml e 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 contentor de saída e inicia a tradução dos ficheiros, guardando os resultados no contentor de saída.

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

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

      gcloud workflows execute batch-translation
    4. Para ver o estado do fluxo de trabalho, pode executar o comando devolvido. Por exemplo:

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

      O fluxo de trabalho deve ser ACTIVE. Após alguns minutos, os ficheiros traduzidos (em francês e espanhol) são carregados para o contentor de saída.

    Liste objetos no contentor de saída

    Pode confirmar se o fluxo de trabalho funcionou conforme esperado listando os objetos no seu contentor de saída.

    1. Obtenha o nome do contentor de saída:

      gcloud storage ls

      O resultado é semelhante ao seguinte:

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

    2. Liste os objetos no seu contentor de saída:

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

      Após alguns minutos, são apresentados os ficheiros traduzidos, dois de cada em francês e espanhol.

    Limpar

    Se criou um novo projeto para este tutorial, elimine o projeto. Se usou um projeto existente e quer mantê-lo sem as alterações adicionadas neste tutorial, elimine os recursos criados para o tutorial.

    Elimine o projeto

    A forma mais fácil de eliminar a faturação é eliminar o projeto que criou para o tutorial.

    Para eliminar o projeto:

    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.

    Elimine recursos de tutoriais

    1. Remova a configuração predefinida do gcloud que adicionou durante a configuração do tutorial:

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

      gcloud workflows delete WORKFLOW_NAME
    3. Elimine um contentor e os respetivos objetos criados neste tutorial:

      gcloud storage rm gs://BUCKET_NAME --recursive

      Onde BUCKET_NAME é o nome do contentor a eliminar. Por exemplo, my-bucket.

      A resposta é semelhante à seguinte:

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

    O que se segue?