Traducir texto

El servicio de traducción de Vertex AI te permite traducir texto escrito en un idioma a cualquiera de los idiomas admitidos.

En esta página se explica cómo traducir un texto de ejemplo con la API Vertex AI Translation en el dispositivo con espacio de aire de Google Distributed Cloud (GDC).

Antes de empezar

Para poder empezar a usar la API Translation de Vertex AI, debes tener un proyecto con la API Translation de Vertex AI habilitada y las credenciales adecuadas. También puedes instalar bibliotecas de cliente para ayudarte a hacer llamadas a la API. Para obtener más información, consulta el artículo Configurar un proyecto de traducción.

Traducir texto

El método translateText toma texto de entrada en un idioma concreto y devuelve el texto traducido a otro idioma. Puedes introducir texto sin formato o HTML como entrada.

Si introduces texto HTML, el método translateText traduce solo el texto entre las etiquetas HTML, pero no las etiquetas. Sin embargo, traduce los atributos de las etiquetas HTML5, como los atributos alt. En la sintaxis para excluir texto de la traducción, se muestra un ejemplo de uso de etiquetas y atributos HTML5. El resultado conserva las etiquetas HTML sin traducir e incluye el texto traducido entre ellas.

Haz una solicitud curl a la API preentrenada Vertex AI Translation. De lo contrario, interactúa con la API preentrenada Translation de Vertex AI desde una secuencia de comandos de Python para traducir texto de un idioma a otro.

En los siguientes ejemplos se muestra cómo traducir un texto de entrada de un idioma a otro:

curl

Para hacer una solicitud de curl, sigue estos pasos:

  1. Obtener un token de autenticación

  2. Haz la solicitud:

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

Haz los cambios siguientes:

  • TOKEN: el token de autenticación que has obtenido.
  • ENDPOINT: el endpoint de Vertex AI Translation que usas en tu organización. Para obtener más información, consulta el estado del servicio y los endpoints.
  • PROJECT_ID: tu ID de proyecto.
  • SOURCE_LANGUAGE: el código de idioma del texto de entrada. Consulta la lista de idiomas admitidos y sus códigos de idioma correspondientes.
  • TARGET_LANGUAGE: el código de idioma al que quieras traducir el texto. Consulta la lista de idiomas admitidos y sus códigos correspondientes.
  • INPUT_TEXT: el texto que has introducido en el idioma de origen.

Usa el campo mime_type para especificar un tipo de archivo. Asigna al campo mime_type uno de los siguientes valores:

  • text/plain: tu entrada es texto sin formato.
  • text/html: el texto que has introducido es HTML.

Si el campo mime_type está vacío, el valor predeterminado es text/html.

En el siguiente ejemplo se usa el 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"]}'

El resultado es el texto traducido.

Python

Sigue estos pasos para usar el servicio Vertex AI Translation desde una secuencia de comandos de Python:

  1. Instala la última versión de la biblioteca de cliente de Vertex AI Translation.

  2. Define las variables de entorno necesarias en una secuencia de comandos de Python.

  3. Autentica tu solicitud a la API.

  4. Añade el siguiente código a la secuencia de comandos de Python que has creado:

    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)
    

    Haz los cambios siguientes:

    • ENDPOINT: el endpoint de Vertex AI Translation que usas en tu organización. Para obtener más información, consulta el estado del servicio y los endpoints.
    • PROJECT_ID: tu ID de proyecto.
    • SOURCE_LANGUAGE: el código de idioma del texto de entrada. Consulta la lista de idiomas admitidos y sus códigos de idioma correspondientes.
    • TARGET_LANGUAGE: el código de idioma al que quieras traducir el texto. Consulta la lista de idiomas admitidos y sus códigos correspondientes.
    • INPUT_TEXT: el texto que has introducido en el idioma de origen.

    Usa el campo mime_type para especificar un tipo de archivo. Asigna al campo mime_type uno de los siguientes valores:

    • text/plain: tu entrada es texto sin formato.
    • text/html: el texto que has introducido es HTML.

    Si el campo mime_type está vacío, el valor predeterminado es text/html.

  5. Guarda la secuencia de comandos de Python.

  6. Ejecuta la secuencia de comandos de Python para traducir el texto:

    python SCRIPT_NAME
    

    Sustituye SCRIPT_NAME por el nombre que le hayas dado a tu script de Python, como translation.py.

Excluir texto de la traducción

Usa una de las siguientes etiquetas HTML en el campo contents de las solicitudes para excluir partes del texto de la traducción:

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

Sustituye TEXT por la parte del texto que quieras excluir de la traducción.

Por ejemplo, si tiene el siguiente texto de entrada en francés:

Bonjour, c'est un test.

A continuación, ese texto se traduce al inglés como la siguiente frase:

Hello, this is a test.

Supongamos que solo quieres traducir la siguiente parte del texto, excluyendo Bonjour, del texto de entrada:

c'est un test.

Esa parte del texto se traduce al español como:

this is a test.

Usa las etiquetas HTML para excluir texto de la traducción. Por ejemplo, la siguiente solicitud curl usa la etiqueta <span class="notranslate">"TEXT"</span> para excluir Bonjour, del texto de entrada anterior en francés al traducir el texto al 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

El método detectLanguage devuelve el idioma de una cadena de texto enviando una solicitud HTTP.

Por ejemplo, la siguiente solicitud detecta el inglés como idioma del 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"}'

Obtener idiomas admitidos

El método supportedLanguages devuelve la lista de idiomas que admite la API Translation de Vertex AI.

Por ejemplo, la siguiente solicitud devuelve los idiomas admitidos especificando el endpoint de 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 ver la lista completa de los idiomas admitidos, consulta Idiomas admitidos en Vertex AI Translation.