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 Google Distributed Cloud (GDC) isolado por ar.

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.

Para mais informações sobre o método translateText, consulte a biblioteca de cliente 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.

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 Hola, do texto de entrada:

esto es una prueba.

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 Hola, do texto de entrada anterior em espanhol 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": "es", "target_language_code": "en", "contents": [<span class="notranslate">"Hola,"</span>"esto es una prueba."]}'

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", "contents": ["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 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á sendo executada no seu projeto:

curl

curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/operations/PROJECT_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 seu projeto e limita o tamanho da página a dez resultados por página:

curl

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

Conferir os idiomas disponíveis

O método getSupportedLanguages 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:getSupportedLanguages -d "{}"

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