Traducir texto

El servicio de Vertex AI Translation te permite traducir texto escrito en un idioma a cualquiera de los otros idiomas admitidos.

En esta página, se muestra cómo traducir un texto de muestra con la API de Vertex AI Translation en Google Distributed Cloud (GDC) aislado.

Antes de comenzar

Antes de comenzar a usar la API de Vertex AI Translation, debes tener un proyecto con la API de Vertex AI Translation habilitada y las credenciales adecuadas. También puedes instalar bibliotecas cliente para ayudarte a realizar llamadas a la API. Para obtener más información, consulta Cómo configurar un proyecto de traducción.

Traducir texto

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

Si ingresas texto en HTML, el método translateText solo traduce el texto entre las etiquetas HTML sin traducir 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 usa un ejemplo de cómo usar etiquetas y atributos de HTML5. El resultado conserva las etiquetas HTML sin traducir y, entre ellas, incluye el texto traducido.

Realiza una solicitud de curl a la API de Vertex AI Translation previamente entrenada. De lo contrario, interactúa con la API previamente entrenada de Vertex AI Translation 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

Sigue estos pasos para realizar una solicitud de curl:

  1. Obtén un token de autenticación.

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

Reemplaza lo siguiente:

  • TOKEN: El token de autenticación que obtuviste
  • ENDPOINT: Es el extremo de Vertex AI Translation que usas para tu organización. Para obtener más información, consulta el estado y los extremos del servicio.
  • PROJECT_ID: el ID de tu proyecto
  • SOURCE_LANGUAGE: El código de idioma del texto de entrada. Consulta la lista de idiomas admitidos y sus respectivos códigos de idioma.
  • TARGET_LANGUAGE: Es el código de idioma al que deseas traducir el texto. Consulta la lista de idiomas admitidos y sus respectivos códigos de idioma.
  • INPUT_TEXT: Es el texto de entrada en el idioma de origen.

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

  • text/plain: Tu entrada es texto sin formato.
  • text/html: Tu entrada es texto en 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 muestra el texto traducido.

Python

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

  1. Instala la versión más reciente de la biblioteca cliente de Vertex AI Translation.

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

  3. Autentica tu solicitud a la API.

  4. Agrega el siguiente código a la secuencia de comandos de Python que creaste:

    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)
    

    Reemplaza lo siguiente:

    • ENDPOINT: Es el extremo de Vertex AI Translation que usas para tu organización. Para obtener más información, consulta el estado y los extremos del servicio.
    • PROJECT_ID: el ID de tu proyecto
    • SOURCE_LANGUAGE: El código de idioma del texto de entrada. Consulta la lista de idiomas admitidos y sus respectivos códigos de idioma.
    • TARGET_LANGUAGE: Es el código de idioma al que deseas traducir el texto. Consulta la lista de idiomas admitidos y sus respectivos códigos de idioma.
    • INPUT_TEXT: Es el texto de entrada en el idioma de origen.

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

    • text/plain: Tu entrada es texto sin formato.
    • text/html: Tu entrada es texto en 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
    

    Reemplaza SCRIPT_NAME por el nombre que le diste a tu secuencia de comandos de Python, como translation.py.

Para obtener más información sobre el método translateText, consulta la biblioteca cliente de Python.

Cómo 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>

Reemplaza TEXT por la parte del texto que deseas excluir de la traducción.

Por ejemplo, si tienes el siguiente texto de entrada en español:

Hola, esto es una prueba.

Luego, ese texto se traduce al inglés de la siguiente manera:

Hello, this is a test.

Supongamos que solo deseas traducir la siguiente parte del texto, sin incluir Hola, en el texto de entrada:

esto es una prueba.

Esa parte del texto se traduce al inglés como la siguiente oración:

this is a test.

Usa las etiquetas HTML para excluir texto de la traducción. Por ejemplo, la siguiente solicitud de curl usa la etiqueta <span class="notranslate">"TEXT"</span> para excluir Hola, del texto de entrada anterior en español cuando se traduce 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": "es", "target_language_code": "en", "contents": [<span class="notranslate">"Hola,"</span>"esto es una prueba."]}'

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 el 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", "contents": ["Hello, this is a test"]}'

Obtener una operación

El método getOperation devuelve el estado más reciente de una operación de larga duración. Usa este método para recuperar el resultado de la operación que generó el servicio de la API de Vertex AI Translation. Para usar este método, especifica tu ID del proyecto y el extremo de Vertex AI Translation.

Por ejemplo, la siguiente solicitud devuelve el estado de una operación de larga duración, como la creación de un glosario, que se ejecuta en tu proyecto:

curl

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

Mostrar lista de operaciones

El método listOperations devuelve una lista de las operaciones de larga duración que coinciden con un filtro especificado en la solicitud. Para usar este método, especifica tu ID del proyecto y el extremo de Vertex AI Translation.

Por ejemplo, la siguiente solicitud devuelve la lista de operaciones que se ejecutan en tu proyecto y limita el tamaño de la página a diez 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

Obtén los idiomas admitidos

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

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