Traduzir texto

O serviço de tradução da Vertex AI permite traduzir textos escritos em um idioma para qualquer um dos outros idiomas compatíveis.

Nesta página, mostramos como traduzir um texto de amostra usando a API Vertex AI Translation no Google Distributed Cloud (GDC) com isolamento físico.

Antes de começar

Para traduzir texto, entre em contato com o administrador do IAM do projeto para solicitar o papel de desenvolvedor da AI Translation (ai-translation-developer) no namespace do projeto.

Para mais informações sobre esse papel, consulte Preparar permissões do IAM.

Antes de começar a usar a API Vertex AI Translation, é preciso ter um projeto com a API Vertex AI Translation ativada e as credenciais apropriadas. Também é possível instalar bibliotecas de cliente para ajudar você a fazer chamadas para a API. Para mais informações, consulte Configurar um projeto de tradução.

Traduzir texto

O método translateText recebe um texto de entrada em um idioma específico e retorna o texto traduzido para outro idioma. É possível inserir texto simples ou HTML como entrada.

Se você inserir texto HTML, o método translateText vai traduzir apenas o texto entre as tags HTML, sem traduzir as tags. No entanto, ele traduz atributos em tags HTML5, como atributos alt. Um exemplo de uso de tags e atributos HTML5 é usado na sintaxe para excluir texto da tradução. A saída mantém as tags HTML não traduzidas e inclui o texto traduzido entre elas.

Faça uma solicitação curl para a API pré-treinada da Vertex AI Translation. Caso contrário, interaja com a API pré-treinada da Vertex AI Translation usando um script Python para traduzir textos de um idioma para outro.

Os exemplos a seguir mostram como traduzir um texto de entrada de um idioma para outro:

curl

Siga estas etapas para fazer uma solicitação curl:

  1. Receba um token de autenticação.

  2. Faça a solicitação:

curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d '{"parent": "projects/PROJECT_ID", "source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE", "contents": ["INPUT_TEXT"]}'

Substitua:

  • TOKEN: o token de autenticação que você recebeu.
  • ENDPOINT: o endpoint da Vertex AI Translation que você usa na sua organização. Para mais informações, confira o status e os endpoints do serviço.
  • PROJECT_ID: o ID do projeto.
  • SOURCE_LANGUAGE: o código do idioma do texto de entrada. Consulte a lista de idiomas compatíveis e os respectivos códigos de idioma.
  • TARGET_LANGUAGE: o código do idioma para o qual você quer traduzir o texto. Consulte a lista de idiomas compatíveis e os respectivos códigos de idioma.
  • INPUT_TEXT: o texto de entrada no idioma de origem.

Use o campo mime_type para especificar um tipo de arquivo. Defina o campo mime_type como um dos seguintes valores:

  • text/plain: a entrada é um texto simples.
  • text/html: a entrada é um texto HTML.

Se o campo mime_type estiver vazio, text/html será o valor padrão.

O exemplo a seguir usa o campo mime_type:

curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d '{"mime_type": "text/html", "parent": "projects/PROJECT_ID", "source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE", "contents": ["INPUT_TEXT"]}'

A saída retorna o texto traduzido.

Python

Siga estas etapas para usar o serviço da Vertex AI Translation em um script Python:

  1. Instale a versão mais recente da biblioteca de cliente da Vertex AI Translation.

  2. Defina as variáveis de ambiente necessárias em um script Python.

  3. Autentique sua solicitação de API.

  4. Adicione o seguinte código ao script Python que você criou:

    from google.cloud import translate
    import google.auth
    from google.auth.transport import requests
    from google.api_core.client_options import ClientOptions
    
    audience = "https://ENDPOINT:443"
    api_endpoint="ENDPOINT:443"
    
    def translate_client(creds):
      opts = ClientOptions(api_endpoint=api_endpoint)
      return translate.TranslationServiceClient(credentials=creds, client_options=opts)
    
    def main():
      creds = None
      try:
        creds, project_id = google.auth.default()
        creds = creds.with_gdch_audience(audience)
        req = requests.Request()
        creds.refresh(req)
      except Exception as e:
        print("Caught exception" + str(e))
        raise e
      return creds
    
    def translate_func(creds):
      tc = translate_client(creds)
      req = {
        "parent": "projects/PROJECT_ID",
        "source_language_code": "SOURCE_LANGUAGE",
        "target_language_code": "TARGET_LANGUAGE",
        "mime_type": "text/plain",
        "contents": ["INPUT_TEXT"]
      }
    
      resp = tc.translate_text(req)
      print(resp)
    
    if __name__=="__main__":
      creds = main()
      translate_func(creds)
    

    Substitua:

    • ENDPOINT: o endpoint da Vertex AI Translation que você usa na sua organização. Para mais informações, confira o status e os endpoints do serviço.
    • PROJECT_ID: o ID do projeto.
    • SOURCE_LANGUAGE: o código do idioma do texto de entrada. Consulte a lista de idiomas compatíveis e os respectivos códigos de idioma.
    • TARGET_LANGUAGE: o código do idioma para o qual você quer traduzir o texto. Consulte a lista de idiomas compatíveis e os respectivos códigos de idioma.
    • INPUT_TEXT: o texto de entrada no idioma de origem.

    Use o campo mime_type para especificar um tipo de arquivo. Defina o campo mime_type como um dos seguintes valores:

    • text/plain: a entrada é um texto simples.
    • text/html: a entrada é um texto HTML.

    Se o campo mime_type estiver vazio, text/html será o valor padrão.

  5. Salve o script em Python.

  6. Execute o script Python para traduzir o texto:

    python SCRIPT_NAME
    

    Substitua SCRIPT_NAME pelo nome que você deu ao script do Python, como translation.py.

Para mais informações sobre o método translateText, consulte a biblioteca de cliente do Python.

Excluir texto da tradução

Use uma das seguintes tags HTML no campo contents das solicitações para excluir partes do texto da tradução:

  • <span translate="no">TEXT</span>
  • <span class="notranslate">TEXT</span>

Substitua TEXT pela parte do texto que você quer excluir da tradução.

Por exemplo, se você tiver o seguinte texto de entrada em espanhol:

Hola, esto es una prueba.

O texto traduzido para o inglês é:

Hello, this is a test.

Suponha que você queira traduzir apenas a seguinte parte do texto, excluindo Hola, do texto de entrada:

esto es una prueba.

O texto traduzido para o inglês é:

this is a test.

Use as tags HTML para excluir texto da tradução. Por exemplo, a solicitação curl a seguir usa a tag <span class="notranslate">TEXT</span> para excluir Hola, do texto de entrada anterior em espanhol ao traduzir o texto para o inglês:

curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d '{"parent": "projects/PROJECT_ID", "source_language_code": "es", "target_language_code": "en", "contents": ["<span class=\"notranslate\">Hola,</span> esto es una prueba."]}'

Traduzir com o glossário

Para traduzir textos com palavras de um glossário, é preciso criar um glossário:

  1. Salve o seguinte arquivo request_glossary.json:

    {
      "sourceLanguageCode": "SOURCE_LANGUAGE",
      "targetLanguageCode": "TARGET_LANGUAGE",
      "contents": ["TEXT"],
      "glossaryConfig": {
        "glossary": "projects/PROJECT_ID/glossaries/GLOSSARY_ID",
        "ignoreCase": IGNORE_CASE_BOOLEAN
      }
    }
    

    Substitua:

    • PROJECT_ID: o ID do projeto.
    • SOURCE_LANGUAGE: o idioma em que o texto está escrito. Confira a lista de idiomas disponíveis e os respectivos códigos.
    • TARGET_LANGUAGE: o idioma para o qual você quer traduzir o texto. Confira a lista de idiomas disponíveis e os respectivos códigos.
    • TEXT: tradução de textos que incluem palavras do glossário
    • GLOSSARY_ID: o ID do glossário, por exemplo: G11111111114524
    • IGNORE_CASE_BOOLEAN: se a correspondência de termos do glossário não diferencia maiúsculas de minúsculas (true ou false).
  2. Faça a solicitação:

    curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d @request_glossary.json
    

Exemplo e saída esperada:

Solicitação:

{
  "sourceLanguageCode": "es",
  "targetLanguageCode": "en",
  "contents": ["La novela cuenta la historia de una joven que viaja a Madrid"],
  "glossaryConfig": {
    "glossary": "projects/test-project/glossaries/GLOSSARY_ID",
    "ignoreCase": true
  }
}

Resposta:

{"translations":[
  {
    "translatedText":"The novel tells the story of a young woman who travels to Madrid"}],
    "glossaryTranslations":[{"translatedText":"The novel account the story of a young woman who travels to Madrid",
    "glossaryConfig":
      {
        "glossary":"projects/test-project/glossaries/GLOSSARY_ID"
      }}
  ]}

O campo translations contém a tradução automática normal antes da aplicação do glossário, e glossaryTranslations inclui a tradução depois que o glossário é aplicado.

Detectar idioma

O método detectLanguage retorna o idioma de uma string de texto enviando uma solicitação HTTP.

Por exemplo, a solicitação a seguir detecta o inglês como o idioma do texto de entrada Hello, this is a test:

curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:detectLanguage -d '{"parent": "projects/PROJECT_ID", "content": "Hello, this is a test"}'

Acessar uma operação

O método getOperation retorna o estado mais recente de uma operação de longa duração. Use esse método para recuperar o resultado da operação gerado pelo serviço da API Vertex AI Translation. Para usar esse método, especifique o ID do projeto, o ID da operação (OPERATION_ID) retornado pela chamada de longa duração e o endpoint da Vertex AI Translation.

Por exemplo, a solicitação a seguir retorna o estado de uma operação de longa duração, como criar um glossário, que está em execução no seu projeto:

curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/operations/OPERATION_ID

Listar operações

O método listOperations retorna uma lista das operações de longa duração que correspondem a um filtro especificado na solicitação. Para usar esse método, especifique o ID do projeto e o endpoint da Vertex AI Translation.

Por exemplo, a solicitação a seguir retorna a lista de operações em execução no projeto e limita o tamanho da página a 10 resultados por página:

curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/operations?page_size=10

Receber idiomas compatíveis

O método supportedLanguages retorna a lista de idiomas compatíveis com a API Vertex AI Translation.

Por exemplo, a solicitação a seguir retorna os idiomas disponíveis especificando o endpoint da Vertex AI Translation:

curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/supportedLanguages

Para conferir a lista completa, consulte Idiomas compatíveis com a Vertex AI Translation.