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
Para traducir texto, comunícate con el administrador de IAM de tu proyecto y solicita el rol de
AI Translation Developer (ai-translation-developer)
en el espacio de nombres de tu proyecto.
Para obtener más información sobre este rol, consulta Prepara los permisos de IAM.
Antes de comenzar a usar la API de Vertex AI Translation, debes tener un proyecto con esta API habilitada y las credenciales adecuadas. También puedes instalar bibliotecas cliente para realizar llamadas a la API. Para obtener más información, consulta Configura un proyecto de traducción.
Traducir texto
El método translateText toma texto de entrada en un idioma en particular y devuelve
el texto traducido a otro idioma. Puedes ingresar texto sin formato o HTML como
entrada.
Si ingresas texto 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 incluye un ejemplo de uso de etiquetas y atributos de HTML5.
El resultado conserva las etiquetas HTML sin traducir y, entre ellas, incluye el texto
traducido.
Realiza una solicitud curl a la API de Vertex AI Translation previamente entrenada. De lo contrario, interactúa con la API de Vertex AI Translation previamente entrenada 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:
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: Es 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: Es el ID del proyecto.SOURCE_LANGUAGE: Es 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 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:
Instala la versión más reciente de la biblioteca cliente de Vertex AI Translation.
Configura las variables de entorno necesarias en una secuencia de comandos de Python.
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) 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: Es el ID del proyecto.SOURCE_LANGUAGE: Es 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_typepara especificar un tipo de archivo. Establece el campomime_typeen uno de los siguientes valores:text/plain: Tu entrada es texto sin formato.text/html: Tu entrada es texto HTML.
Si el campo
mime_typeestá vacío, el valor predeterminado estext/html.Guarda la secuencia de comandos de Python.
Ejecuta la secuencia de comandos de Python para traducir el texto:
python SCRIPT_NAMEReemplaza
SCRIPT_NAMEpor el nombre que le diste a tu secuencia de comandos de Python, comotranslation.py.
Para obtener más información sobre el método translateText, consulta la biblioteca cliente de Python.
Excluye 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.
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, sin incluir
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 solicitud 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."]}'
Traduce con el glosario
Para traducir texto con palabras de un glosario, debes crear un glosario:
Guarda el siguiente archivo
request_glossary.json:{ "sourceLanguageCode": "SOURCE_LANGUAGE", "targetLanguageCode": "TARGET_LANGUAGE", "contents": ["TEXT"], "glossaryConfig": { "glossary": "projects/PROJECT_ID/glossaries/GLOSSARY_ID", "ignoreCase": IGNORE_CASE_BOOLEAN } }Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto.SOURCE_LANGUAGE: Es el idioma en el que está escrito el texto. Consulta la lista de idiomas admitidos y sus respectivos códigos de idioma.TARGET_LANGUAGE: el idioma al que deseas traducir el texto. Consulta la lista de idiomas admitidos y sus respectivos códigos de idioma.TEXT: Traduce texto que incluye palabras del glosarioGLOSSARY_ID: Es el ID del glosario, por ejemplo:G11111111114524IGNORE_CASE_BOOLEAN: Indica si la coincidencia de términos del glosario no distingue mayúsculas de minúsculas (trueofalse).
Realiza 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
}
}
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 estándar antes de que se aplique el glosario, mientras que el campo glossaryTranslations contiene la traducción una vez que se aplicó el glosario.
Detectar idioma
El método detectLanguage devuelve el idioma de una cadena de texto enviando una
solicitud HTTP.
Por ejemplo, en la siguiente solicitud, se detecta el inglés como el idioma del
texto de entrada Hello, this is a test:
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 que generó el
servicio de la API de Vertex AI Translation. Para usar este método, especifica el
ID del proyecto, el ID de la operación (OPERATION_ID) que muestra la
llamada de larga duración y el extremo de Vertex AI Translation.
Por ejemplo, la siguiente solicitud devuelve el estado de una operación de larga duración, como crear un glosario, que se ejecuta en tu proyecto:
curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/operations/OPERATION_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 10 resultados por página:
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 supportedLanguages 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 -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/supportedLanguages
Para obtener una lista completa de los idiomas compatibles, consulta Idiomas compatibles con Vertex AI Translation.