Traduzir texto

O serviço Vertex AI Translation permite traduzir textos escritos em um idioma para qualquer um dos outros idiomas com suporte.

Nesta página, mostramos como traduzir um texto de amostra usando a API Vertex AI Translation no appliance isolado do Google Distributed Cloud (GDC, na sigla em inglês).

Antes de começar

Antes de começar a usar a API Vertex AI Translation, você precisa ter um projeto com a API ativada e as credenciais adequadas. Também é possível instalar bibliotecas de cliente para ajudar 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 de um script Python para traduzir texto 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. Receber 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, consulte Status e 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 com suporte 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 com suporte 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 é texto simples.
  • text/html: a entrada é 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 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 a solicitação de API.

  4. Adicione o código a seguir 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)
        print("Got token: ")
        print(creds.token)
      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, consulte Status e 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 com suporte 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 com suporte 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 é texto simples.
    • text/html: a entrada é texto HTML.

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

  5. Salve o script Python.

  6. Execute o script Python para traduzir o texto:

    python SCRIPT_NAME
    

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

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 francês:

Bonjour, c'est un test.

Esse texto é traduzido para o inglês como a seguinte frase:

Hello, this is a test.

Suponha que você só queira traduzir a seguinte parte do texto, excluindo Bonjour, do texto de entrada:

c'est un test.

Essa parte do texto é traduzida para o inglês como a seguinte frase:

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 Bonjour, do texto de entrada anterior em francês 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": "fr", "target_language_code": "en", "contents": ["<span class=\"notranslate\">\"Bonjour,\"</span>\"c'est un test.\""]}'

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

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"}'

Receber idiomas com suporte

O método supportedLanguages retorna a lista de idiomas com suporte da API Vertex AI Translation.

Por exemplo, a solicitação a seguir retorna os idiomas com suporte especificando o endpoint da Vertex AI Translation:

curl

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

Para conferir a lista completa de idiomas com suporte, consulte Idiomas com suporte da Vertex AI Translation.