El servicio Vertex AI Translation te permite traducir texto escrito en un idioma a cualquiera de los otros idiomas admitidos.
En esta página se explica cómo traducir un texto de ejemplo mediante la API Vertex AI Translation en Google Distributed Cloud (GDC) air-gapped.
Antes de empezar
Para poder usar la API Vertex AI Translation, debes tener un proyecto con la API Vertex AI Translation 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 solo traduce el texto que hay entre las etiquetas HTML, pero no las etiquetas. Sin embargo, sí traduce los atributos de las etiquetas HTML5, como los atributos alt. En la sintaxis se usa un ejemplo de etiquetas y atributos HTML5
para excluir texto de la traducción.
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 Vertex AI Translation desde un script 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 hacer una solicitud curl:
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 punto final de Vertex AI Translation que usa tu organización. Para obtener más información, consulta el estado y los puntos finales del servicio.PROJECT_ID: el ID del 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 quieres traducir el texto. Consulta la lista de idiomas admitidos y sus códigos de idioma correspondientes.INPUT_TEXT: el texto de entrada en el idioma de origen.
Usa el campo mime_type para especificar un tipo de archivo. Define el campo mime_type con uno de los siguientes valores:
text/plain: la entrada es texto sin formato.text/html: la entrada es texto 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 devuelve el texto traducido.
Python
Sigue estos pasos para usar el servicio Vertex AI Translation desde un script de Python:
Instala la versión más reciente de la biblioteca de cliente de Vertex AI Translation.
Define las variables de entorno necesarias en un script de Python.
Añade el siguiente código al script 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 punto final de Vertex AI Translation que usa tu organización. Para obtener más información, consulta el estado y los puntos finales del servicio.PROJECT_ID: el ID del 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 quieres traducir el texto. Consulta la lista de idiomas admitidos y sus códigos de idioma correspondientes.INPUT_TEXT: el texto de entrada en el idioma de origen.
Usa el campo
mime_typepara especificar un tipo de archivo. Define el campomime_typecon uno de los siguientes valores:text/plain: la entrada es texto sin formato.text/html: la entrada es texto HTML.
Si el campo
mime_typeestá vacío, el valor predeterminado estext/html.Guarda el script de Python.
Ejecuta el script de Python para traducir el texto:
python SCRIPT_NAMESustituye
SCRIPT_NAMEpor el nombre que le has dado al script de Python, comotranslation.py.
Para obtener más información sobre el método translateText, consulta la biblioteca de cliente de Python.
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 tienes el siguiente texto de entrada en español:
Hola, esto es una prueba.
El texto traducido esperado al inglés es el siguiente:
Hello, this is a test.
Supongamos que solo quieres traducir la siguiente parte del texto, excluyendo Hola, del texto de entrada:
esto es una prueba.
El texto traducido esperado al inglés es el siguiente:
this is a test.
Usa las etiquetas HTML para excluir texto de la traducción. Por ejemplo, la
siguiente curl solicitud usa la <span class="notranslate">"TEXT"</span>
etiqueta para excluir Hola, del texto de entrada anterior en español 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": "es", "target_language_code": "en", "contents": ["<span class=\"notranslate\">\"Hola,\"</span>\"esto es una prueba.\""]}'
Traducir con un glosario
Para traducir texto con palabras de un glosario, debes crear un glosario:
Guarda el siguiente archivo
request_glossary.json:cat <<- EOF > request_glossary.json { "sourceLanguageCode": "SOURCE_LANGUAGE", "targetLanguageCode": "SOURCE_LANGUAGE", "contents": "TEXT", "glossaryConfig": { "glossary": "projects/PROJECT_ID/glossaries/GLOSSARY_ID", "ignoreCase": IGNORE_CASE_BOOLEAN, "contextual_translation_enabled": CONTEXTUAL_BOOLEAN } } EOFHaz los cambios siguientes:
PROJECT_ID: el ID del proyecto.SOURCE_LANGUAGE: el idioma en el que está escrito el documento. Consulta la lista de idiomas admitidos y sus códigos de idioma correspondientes.TARGET_LANGUAGE: el idioma o los idiomas a los que quieres traducir el documento. Consulta la lista de idiomas admitidos y sus códigos de idioma correspondientes.TEXT: texto de traducción que incluye palabras del glosario.GLOSSARY_ID: el ID del glosario; por ejemplo,G11111111114524.
Haz la solicitud:
curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d @request_glossary.json
Ejemplo y resultado esperado:
Solicitud:
{
"sourceLanguageCode": "es",
"targetLanguageCode": "en",
"contents": "La novela cuenta la historia de una joven que viaja a Madrid",
"glossaryConfig": {
"glossary": "projects/test-project/glossaries/GLOSSARY_ID",
"ignoreCase": true,
"contextual_translation_enabled": true
}
}
Respuesta:
{"translations":[
{
"translatedText":"The novel tells the story of a young woman who travels to Madrid"}],
"glossaryTranslations":[{"translatedText":"The novel account the story of a young woman who travels to Madrid",
"glossaryConfig":
{
"glossary":"projects/test-project/glossaries/GLOSSARY_ID"
}}
]}
El campo translations contiene la traducción automática normal antes de aplicar el glosario, mientras que el campo glossaryTranslations contiene la traducción después de aplicar el glosario.
Si defines el campo contextual_translation_enabled como true, la respuesta solo contendrá el campo glossaryTranslations y no el campo translations.
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", "content": "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 generado por el servicio de la API Vertex AI Translation. Para usar este método, especifica el
ID de tu proyecto y el punto final 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 está ejecutando 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 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 el
ID de tu proyecto y el punto final de Vertex AI Translation.
Por ejemplo, la siguiente solicitud devuelve la lista de operaciones que se están ejecutando 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
Obtener idiomas admitidos
El método supportedLanguages devuelve la lista de idiomas que admite la API Vertex AI Translation.
Por ejemplo, la siguiente solicitud devuelve los idiomas admitidos especificando el punto final de 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 consultar la lista completa de los idiomas admitidos, consulta el artículo Idiomas admitidos en Vertex AI Translation.