Traduzir texto

Com o serviço de tradução da Vertex AI, é possível traduzir textos escritos em um idioma para qualquer um dos outros idiomas disponíveis.

Nesta página, mostramos como traduzir um texto de amostra usando a API Vertex AI Translation no dispositivo isolado do Google Distributed Cloud (GDC).

Antes de começar

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. Você também pode 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. Você pode 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 à API pré-treinada do Vertex AI Translation. Caso contrário, interaja com a API pré-treinada 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 o status do serviço e os endpoints.
  • PROJECT_ID: o ID do projeto.
  • SOURCE_LANGUAGE: o código do idioma do texto de entrada. Confira a lista de idiomas compatíveis e os códigos correspondentes.
  • TARGET_LANGUAGE: o código do idioma para o qual você quer traduzir o texto. Confira a lista de idiomas aceitos e os respectivos códigos.
  • 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: sua entrada é texto simples.
  • text/html: sua entrada é um texto em 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 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)
        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 o status do serviço e os endpoints.
    • PROJECT_ID: o ID do projeto.
    • SOURCE_LANGUAGE: o código do idioma do texto de entrada. Confira a lista de idiomas compatíveis e os códigos correspondentes.
    • TARGET_LANGUAGE: o código do idioma para o qual você quer traduzir o texto. Confira a lista de idiomas aceitos e os respectivos códigos.
    • 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: sua entrada é texto simples.
    • text/html: sua entrada é um texto em 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 do 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.

Em seguida, esse texto é traduzido para o inglês com 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:

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

Conferir os idiomas disponí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 compatíveis especificando o endpoint da Vertex AI Translation:

curl

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

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