Le service Vertex AI Translation vous permet de traduire un texte écrit dans une langue vers n'importe quelle autre langue acceptée.
Cette page explique comment traduire un exemple de texte à l'aide de l'API Vertex AI Translation sur Google Distributed Cloud (GDC) en mode isolé.
Avant de commencer
Pour pouvoir utiliser l'API Vertex AI Translation, vous devez disposer d'un projet pour lequel cette API est activée, ainsi que des identifiants appropriés. Vous pouvez également installer des bibliothèques clientes pour faciliter les appels à l'API. Pour en savoir plus, consultez Configurer un projet de traduction.
Traduire du texte
La méthode translateText prend un texte d'entrée dans une langue spécifique et renvoie le texte traduit dans une autre langue. Vous pouvez saisir du texte brut ou HTML comme entrée.
Si vous saisissez du texte HTML, la méthode translateText ne traduit que le texte entre les balises HTML, sans traduire les balises. Toutefois, elle traduit les attributs des balises HTML5, tels que les attributs alt. Un exemple d'utilisation de balises et d'attributs HTML5
est utilisé dans la syntaxe pour exclure du texte de la traduction.
La sortie conserve les balises HTML non traduites et inclut le texte traduit entre elles.
Envoyez une requête curl à l'API pré-entraînée Vertex AI Translation. Sinon, interagissez avec l'API pré-entraînée Vertex AI Translation à partir d'un script Python pour traduire du texte d'une langue vers une autre.
Les exemples suivants montrent comment traduire un texte d'entrée d'une langue vers une autre :
curl
Pour envoyer une requête curl, procédez comme suit :
Envoyez la requête :
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"]}'
Remplacez les éléments suivants :
TOKEN: jeton d'authentification que vous avez obtenu.ENDPOINT: point de terminaison Vertex AI Translation que vous utilisez pour votre organisation. Pour en savoir plus, consultez État et points de terminaison des services.PROJECT_ID: ID du projet.SOURCE_LANGUAGE: code de langue de votre texte d'entrée. Consultez la liste des langues acceptées et de leurs codes de langue respectifs.TARGET_LANGUAGE: code de langue dans lequel vous souhaitez traduire votre texte. Consultez la liste des langues acceptées et de leurs codes de langue respectifs.INPUT_TEXT: texte d'entrée dans la langue source.
Utilisez le champ mime_type pour spécifier un type de fichier. Définissez le champ mime_type sur l'une des valeurs suivantes :
text/plain: votre entrée est du texte brut.text/html: votre entrée est du texte HTML.
Si le champ mime_type est vide, text/html est la valeur par défaut.
L'exemple suivant utilise le champ 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"]}'
La sortie renvoie le texte traduit.
Python
Procédez comme suit pour utiliser le service Vertex AI Translation à partir d'un script Python :
Installez la dernière version de la bibliothèque cliente Vertex AI Translation.
Définissez les variables d'environnement requises dans un script Python.
Ajoutez le code suivant au script Python que vous avez créé :
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)Remplacez les éléments suivants :
ENDPOINT: point de terminaison Vertex AI Translation que vous utilisez pour votre organisation. Pour en savoir plus, consultez État et points de terminaison des services.PROJECT_ID: ID du projet.SOURCE_LANGUAGE: code de langue de votre texte d'entrée. Consultez la liste des langues acceptées et de leurs codes de langue respectifs.TARGET_LANGUAGE: code de langue dans lequel vous souhaitez traduire votre texte. Consultez la liste des langues acceptées et de leurs codes de langue respectifs.INPUT_TEXT: texte d'entrée dans la langue source.
Utilisez le champ
mime_typepour spécifier un type de fichier. Définissez le champmime_typesur l'une des valeurs suivantes :text/plain: votre entrée est du texte brut.text/html: votre entrée est du texte HTML.
Si le champ
mime_typeest vide,text/htmlest la valeur par défaut.Enregistrez le script Python.
Exécutez le script Python pour traduire le texte :
python SCRIPT_NAMERemplacez
SCRIPT_NAMEpar le nom que vous avez attribué à votre script Python, par exempletranslation.py.
Pour en savoir plus sur la méthode translateText, consultez la bibliothèque cliente Python.
Exclure du texte de la traduction
Utilisez l'une des balises HTML suivantes dans le champ contents des requêtes pour exclure des parties de votre texte de la traduction :
<span translate="no">"TEXT"</span><span class="notranslate">"TEXT"</span>
Remplacez TEXT par la partie du texte que vous souhaitez exclure de la traduction.
Par exemple, si vous avez le texte d'entrée suivant en espagnol :
Hola, esto es una prueba.
Le texte traduit attendu en anglais est le suivant :
Hello, this is a test.
Supposons que vous ne souhaitiez traduire que la partie suivante du texte, en excluant Hola, du texte d'entrée :
esto es una prueba.
Le texte traduit attendu en anglais est le suivant :
this is a test.
Utilisez les balises HTML pour exclure du texte de la traduction. Par exemple, la
requête curl suivante utilise la balise <span class="notranslate">"TEXT"</span>
pour exclure Hola, du texte d'entrée précédent en espagnol lors de la traduction
du texte en anglais :
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.\""]}'
Traduire avec un glossaire
Pour traduire du texte avec des mots d'un glossaire, vous devez créer un glossaire :
Enregistrez le fichier
request_glossary.jsonsuivant :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 } } EOFRemplacez les éléments suivants :
PROJECT_ID: ID du projet.SOURCE_LANGUAGE: langue dans laquelle votre document est écrit. Consultez la liste des langues acceptées et de leurs codes de langue respectifs.TARGET_LANGUAGE: langue ou langues dans lesquelles vous souhaitez traduire votre document. Consultez la liste des langues acceptées et de leurs codes de langue respectifs.TEXT: texte à traduire incluant des mots du glossaireGLOSSARY_ID: ID du glossaire, par exempleG11111111114524
Envoyez la requête :
curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d @request_glossary.json
Exemple et résultat attendu :
Requête :
{
"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
}
}
Réponse :
{"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"
}}
]}
Le champ translations contient la traduction automatique standard avant application du glossaire. Le champ glossaryTranslations contient la traduction après application du glossaire.
Lorsque vous définissez le champ contextual_translation_enabled sur true, la réponse ne contient que le champ glossaryTranslations et non le champ translations.
Détecter la langue
La méthode detectLanguage renvoie la langue d'une chaîne de texte en envoyant une requête HTTP.
Par exemple, la requête suivante détecte l'anglais comme langue du texte d'entrée 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"}'
Obtenir une opération
La méthode getOperation renvoie le dernier état d'une
opération de longue durée.
Utilisez cette méthode pour récupérer le résultat de l'opération généré par le service d'API Vertex AI Translation. Pour utiliser cette méthode, spécifiez l'ID de votre
projet et le point de terminaison Vertex AI Translation.
Par exemple, la requête suivante renvoie l'état d'une opération de longue durée, telle que la création d'un glossaire, qui s'exécute dans votre projet :
curl
curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/operations/PROJECT_ID
Répertorier les opérations
La méthode listOperations renvoie une liste des opérations de longue durée
qui correspondent à un filtre spécifié dans la requête. Pour utiliser cette méthode, spécifiez l'ID de votre
projet et le point de terminaison Vertex AI Translation.
Par exemple, la requête suivante renvoie la liste des opérations en cours d'exécution dans votre projet et limite la taille de la page à dix résultats par page :
curl
curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/operations?page_size=10
Obtenir les langues acceptées
La méthode supportedLanguages renvoie la liste des langues acceptées par l'API Vertex AI Translation.
Par exemple, la requête suivante renvoie les langues acceptées en spécifiant le point de terminaison 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
Pour obtenir la liste complète des langues acceptées, consultez Langues acceptées pour Vertex AI Translation.