Model Terjemahan Mesin Neural (NMT)

Terjemahan Mesin Neural (NMT) standar Google telah berkembang dari sistem terjemahan jaringan neural yang diperkenalkan Google pada November 2016, dengan banyak peningkatan. Fitur ini dapat menerjemahkan ke dan dari banyak bahasa secara real time.

ID modelnya adalah general/nmt.

Anda dapat mengakses model NMT tanpa modifikasi melalui Cloud Translation - Basic API atau Cloud Translation - Advanced API. Dengan Cloud Translation - Advanced API, Anda juga dapat menyesuaikannya.

Dalam kedua kasus tersebut, Anda harus memiliki projectGoogle Cloud yang telah mengaktifkan Cloud Translation API, dengan kredensial untuk melakukan panggilan yang terautentikasi. Untuk mengakses model menggunakan Python atau bahasa pemrograman lain, instal library klien v2 atau v3 yang sesuai.

Dalam contoh yang ditampilkan di sini, PROJECT_ID mewakili project ID Anda, dan REGION_NAME mewakili nama wilayah teknis dari wilayah Google Cloud tempat Anda ingin menjalankan operasi terjemahan (seperti us-central1). Gunakan kode ISO-639 untuk mengidentifikasi bahasa sumber dan bahasa target jika diperlukan.

Contoh REST API Cloud Translation - Basic

Anda dapat melakukan panggilan REST dengan Cloud Translation - Basic API untuk TranslateText menggunakan model NMT. Anda dapat memasukkan kolom permintaan ke dalam file JSON yang diberi nama seperti request.json, seperti ini:

{
  "q": ["Hello world", "My name is Jeff"],
  "target": "de"
}

Cloud Translation - Basic API hanya mendukung model NMT, sehingga Anda tidak perlu menentukan model dalam permintaan.

Kemudian, Anda dapat menggunakan perintah curl untuk mengirimkan permintaan:

!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"

Responsnya adalah dokumen JSON yang terlihat seperti ini:

{
  "data": {
    "translations": [
      {
        "translatedText": "Hallo Welt",
        "detectedSourceLanguage": "en"
      },
      {
        "translatedText": "Mein Name ist Jeff",
        "detectedSourceLanguage": "en"
      }
    ]
  }
}

Contoh Python Cloud Translation - Basic API

Berikut contoh kode Python untuk memanggil TranslateText pada model NMT menggunakan Cloud Translation - Basic API. Karena tidak ada bahasa sumber yang ditentukan, API akan mencoba mendeteksinya secara otomatis.

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()

Outputnya adalah sebagai berikut:

Detected source language: es
Input text: ¡Hola amigos y amigas!
Translated text: Hello friends!

[{'translatedText': 'Hello friends!',
  'detectedSourceLanguage': 'es',
  'input': '¡Hola amigos y amigas!'}]

Contoh REST API Cloud Translation - Advanced

Anda dapat melakukan panggilan REST dengan Cloud Translation - Advanced API untuk TranslateText menggunakan model NMT default dengan tidak menentukan model, atau dengan meminta model NMT secara eksplisit. Masukkan kolom permintaan PUT ke dalam file JSON yang diberi nama seperti request.json, seperti ini:

{
  "sourceLanguageCode": "en",
  "targetLanguageCode": "ru",
  "contents": ["Dr. Watson, come here!", "Bring me some coffee!"],
  "model": "projects/PROJECT_ID/locations/REGION_NAME/models/general/nmt"
}

Kemudian, Anda dapat menggunakan perintah curl untuk mengirimkan permintaan:

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"

Responsnya adalah dokumen JSON yang terlihat seperti ini:

{
  "translations": [
    {
      "translatedText": "Доктор Ватсон, иди сюда!",
    },
    {
      "translatedText": "Принеси мне кофе!",
    }
  ]
}

Cloud Translation - Contoh Python API 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()

Outputnya adalah dokumen JSON yang terlihat seperti ini:

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"
}