Modèle de traduction automatique neuronale (NMT)
La traduction automatique neuronale (NMT, Neural Machine Translation) standard de Google a évolué depuis le système de traduction par réseau neuronal que Google a lancé en novembre 2016, avec de nombreuses améliorations. Il peut traduire de nombreuses langues en temps réel.
Son ID de modèle est general/nmt.
Vous pouvez accéder au modèle NMT sans le modifier, soit via l'API Cloud Translation – Basic, soit via l'API Cloud Translation – Advanced. L'API Cloud Translation – Advanced vous permet également de personnaliser.
Dans les deux cas, vous devez disposer d'un projet pour lequel l'API Cloud Translation est activée, avec des identifiants pour effectuer des appels authentifiés.Google Cloud Pour accéder au modèle à l'aide de Python ou d'un autre langage de programmation, installez la bibliothèque cliente v2 ou v3 appropriée.
Dans les exemples présentés ici, PROJECT_ID représente l'ID de votre projet et REGION_NAME représente le nom technique de la région Google Cloud dans laquelle vous souhaitez exécuter l'opération de traduction (par exemple, us-central1). Utilisez les codes ISO-639 pour identifier les langues source et cible, le cas échéant.
Exemple d'API REST Cloud Translation – Basic
Vous pouvez effectuer un appel REST avec l'API Cloud Translation – Basic à TranslateText à l'aide du modèle NMT. Vous pouvez placer les champs de requête dans un fichier JSON nommé, par exemple, request.json, comme suit :
{
"q": ["Hello world", "My name is Jeff"],
"target": "de"
}
L'API Cloud Translation – Basic n'est compatible qu'avec le modèle NMT. Vous n'avez donc pas besoin de spécifier le modèle dans la requête.
Vous pouvez ensuite utiliser une commande curl pour envoyer la requête :
!curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: cloud-ml-translate-e2e-testing" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://translate.googleapis.com/language/translate/v2"
La réponse est un document JSON qui ressemble à ceci :
{
"data": {
"translations": [
{
"translatedText": "Hallo Welt",
"detectedSourceLanguage": "en"
},
{
"translatedText": "Mein Name ist Jeff",
"detectedSourceLanguage": "en"
}
]
}
}
Exemple Python de l'API Cloud Translation Basic
Voici un exemple de code Python pour appeler TranslateText sur le modèle NMT à l'aide de l'API Cloud Translation – Basic.
Comme aucune langue source n'est spécifiée, l'API tente de la détecter automatiquement.
def translate_text(
text: str | bytes | list[str] = "¡Hola amigos y amigas!",
target_language: str = "en",
source_language: str | None = None,
) -> dict:
translate_client = translate_v2.Client()
if isinstance(text, bytes):
text = [text.decode("utf-8")]
if isinstance(text, str):
text = [text]
results = translate_client.translate(
values=text,
target_language=target_language,
source_language=source_language
)
for result in results:
if "detectedSourceLanguage" in result:
print(f"Detected source language: {result['detectedSourceLanguage']}")
print(f"Input text: {result['input']}")
print(f"Translated text: {result['translatedText']}")
print()
return results
translate_text()
Voici le résultat :
Detected source language: es
Input text: ¡Hola amigos y amigas!
Translated text: Hello friends!
[{'translatedText': 'Hello friends!',
'detectedSourceLanguage': 'es',
'input': '¡Hola amigos y amigas!'}]
Exemple d'API REST Cloud Translation – Advanced
Vous pouvez effectuer un appel REST avec l'API Cloud Translation – Advanced pour TranslateText à l'aide du modèle NMT par défaut, soit en ne spécifiant aucun modèle, soit en demandant explicitement le modèle NMT. Placez les champs de la requête PUT dans un fichier JSON nommé, par exemple, request.json, comme suit :
{
"sourceLanguageCode": "en",
"targetLanguageCode": "ru",
"contents": ["Dr. Watson, come here!", "Bring me some coffee!"],
"model": "projects/PROJECT_ID/locations/REGION_NAME/models/general/nmt"
}
Vous pouvez ensuite utiliser une commande curl pour envoyer la requête :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://translation.googleapis.com/v3/projects/PROJECT_ID/locations/REGION_NAME:translateText"
La réponse est un document JSON qui ressemble à ceci :
{
"translations": [
{
"translatedText": "Доктор Ватсон, иди сюда!",
},
{
"translatedText": "Принеси мне кофе!",
}
]
}
Exemple Python de l'API Cloud Translation – Advanced
def translate():
response = translate_v3.TranslationServiceClient().translate_text(
contents=["Life is short.",
"Art is long."],
target_language_code='fr',
source_language_code='en',
parent=f"projects/{project_id}/locations/us-central1",
model=f"{parent}/models/general/nmt"
)
print(response)
return response
translate()
Le résultat est un document JSON qui ressemble à ceci :
translations {
translated_text: "La vie est courte."
model: "projects/261347268520/locations/us-central1/models/general/nmt"
}
translations {
translated_text: "L'art est long."
model: "projects/261347268520/locations/us-central1/models/general/nmt"
}