All Products
Search
Document Center

Alibaba Cloud Model Studio:Penerjemahan mesin (Qwen-MT)

Last Updated:Jan 31, 2026

Qwen-MT adalah model bahasa besar (LLM) untuk penerjemahan mesin yang telah dilatih ulang dari Qwen3. Model ini mendukung penerjemahan antar 92 bahasa, termasuk Tiongkok, Inggris, Jepang, Korea, Prancis, Spanyol, Jerman, Thailand, Indonesia, Vietnam, dan Arab. Model ini juga menyediakan fitur seperti intervensi istilah, prompting berbasis domain, dan memori terjemahan untuk meningkatkan kualitas terjemahan dalam skenario aplikasi yang kompleks.

Cara kerja

  1. Berikan teks yang akan diterjemahkan: Array messages harus berisi satu pesan tunggal dengan role-nya diatur ke user. content dari pesan ini adalah teks yang akan diterjemahkan.

  2. Tentukan bahasa: Atur bahasa sumber (source_lang) dan bahasa target (target_lang) dalam parameter translation_options. Untuk daftar bahasa yang didukung, lihat Bahasa yang didukung. Untuk mendeteksi bahasa sumber secara otomatis, atur source_lang ke auto.

    Menentukan bahasa sumber meningkatkan akurasi terjemahan.
    Anda juga dapat mengatur bahasa menggunakan prompt kustom.

Contoh berikut menunjukkan cara memanggil model Qwen-MT menggunakan SDK Python yang kompatibel dengan OpenAI dan DashScope.

Kompatibel dengan OpenAI

# Impor dependensi dan buat client...
completion = client.chat.completions.create(
    model="qwen-mt-flash",    # Pilih model
    # Parameter messages harus hanya berisi satu pesan dengan role diatur ke user, dan content-nya adalah teks yang akan diterjemahkan.
    messages=[{"role": "user", "content": "No me reí después de ver este video"}],    
    # Karena translation_options bukan parameter standar OpenAI, Anda harus meneruskannya melalui parameter extra_body.
    extra_body={"translation_options": {"source_lang": "auto", "target_lang": "English"}},
)

DashScope

# Impor dependensi...
response = dashscope.Generation.call(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    model="qwen-mt-flash",  # Pilih model
    messages=[{"role": "user", "content": "No me reí después de ver este video"}],  # messages: 'role' adalah 'user' dan 'content' adalah teks yang akan diterjemahkan.
    translation_options={"source_lang": "auto", "target_lang": "English"},  # Konfigurasikan opsi terjemahan.
    result_format="message"
)

Batasan

  • Hanya mendukung terjemahan satu arah: Model ini dirancang untuk tugas terjemahan dan tidak mendukung percakapan multi-putaran.

  • Pesan sistem tidak didukung: Anda tidak dapat mengatur perilaku global menggunakan pesan dengan role system. Sebagai gantinya, definisikan konfigurasi terjemahan dalam parameter translation_options.

Pemilihan model

  • Untuk skenario umum, Anda dapat memilih qwen-mt-flash. Model ini menyeimbangkan kualitas, kecepatan, dan biaya, serta mendukung keluaran streaming inkremental.

  • Untuk kualitas terjemahan tertinggi di bidang profesional, Anda dapat memilih qwen-mt-plus.

  • Untuk kecepatan respons tercepat dalam skenario sederhana dan real-time, Anda dapat memilih qwen-mt-lite.

Tabel berikut membandingkan model-model tersebut.

Model

Skenario

Hasil

Kecepatan

Biaya

Bahasa yang didukung

Mendukung keluaran streaming inkremental

qwen-mt-plus

Skenario yang membutuhkan kualitas terjemahan tinggi, seperti bidang profesional, dokumen resmi, makalah akademik, dan laporan teknis

Terbaik

Standar

Tinggi

92

Tidak didukung

qwen-mt-flash

Pilihan utama untuk penggunaan umum. Cocok untuk skenario seperti konten website/aplikasi, deskripsi produk, komunikasi sehari-hari, dan posting blog

Baik

Cepat

Rendah

92

Didukung

qwen-mt-turbo

Model ini tidak akan diperbarui di masa depan. Gunakan flash sebagai gantinya.

Cukup

Cepat

Rendah

92

Tidak didukung

qwen-mt-lite

Skenario sederhana yang sensitif terhadap latensi, seperti obrolan real-time dan terjemahan komentar langsung

Dasar

Tercepat

Terendah

31

Didukung

Untuk informasi lebih lanjut tentang konteks model dan penetapan harga, lihat Qwen-MT. Untuk informasi tentang batas permintaan konkuren, lihat Penerjemahan Qwen.

Memulai

Bagian ini menunjukkan contoh sederhana menerjemahkan "No me reí después de ver este video" ke dalam bahasa Inggris.

Anda harus mendapatkan kunci API dan mengatur kunci API sebagai variabel lingkungan. Jika Anda menggunakan SDK OpenAI atau SDK DashScope untuk melakukan panggilan, Anda juga harus menginstal SDK.

Kompatibel dengan OpenAI

Permintaan contoh

import os
from openai import OpenAI

client = OpenAI(
    # Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Alibaba Cloud Model Studio Anda: api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
messages = [
    {
        "role": "user",
        "content": "No me reí después de ver este video"
    }
]
translation_options = {
    "source_lang": "auto",
    "target_lang": "English"
}

completion = client.chat.completions.create(
    model="qwen-mt-plus",
    messages=messages,
    extra_body={
        "translation_options": translation_options
    }
)
print(completion.choices[0].message.content)
# ======= Penting =======
# Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# === Hapus komentar ini sebelum eksekusi ====

curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen-mt-flash",
    "messages": [{"role": "user", "content": "No me reí después de ver este video"}],
    "translation_options": {
      "source_lang": "auto",
      "target_lang": "English"
      }
}'

Respons contoh

I didn't laugh after watching this video. 

DashScope

Permintaan contoh

Penting

SDK Java DashScope harus versi 2.20.6 atau lebih baru.

import os
import dashscope

# Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
    {
        "role": "user",
        "content": "No me reí después de ver este video"
    }
]
translation_options = {
    "source_lang": "auto",
    "target_lang": "English",
}
response = dashscope.Generation.call(
    # Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Model Studio Anda: api_key="sk-xxx",
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="qwen-mt-turbo",  # Contoh ini menggunakan qwen-mt-turbo. Anda dapat menggantinya dengan nama model lain sesuai kebutuhan.
    messages=messages,
    result_format='message',
    translation_options=translation_options
)
print(response.output.choices[0].message.content)
// Diperlukan SDK DashScope versi 2.20.6 atau lebih baru.
import java.lang.System;
import java.util.Collections;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.aigc.generation.TranslationOptions;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.protocol.Protocol;

public class Main {
    public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
        // URL berikut ini untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
        Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
        Message userMsg = Message.builder()
                .role(Role.USER.getValue())
                .content("No me reí después de ver este video")
                .build();
        TranslationOptions options = TranslationOptions.builder()
                .sourceLang("auto")
                .targetLang("English")
                .build();
        GenerationParam param = GenerationParam.builder()
                // Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Alibaba Cloud Model Studio Anda: .apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen-mt-plus")
                .messages(Collections.singletonList(userMsg))
                .resultFormat(GenerationParam.ResultFormat.MESSAGE)
                .translationOptions(options)
                .build();
        return gen.call(param);
    }
    public static void main(String[] args) {
        try {
            GenerationResult result = callWithMessage();
            System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent());
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.err.println("Error message: "+e.getMessage());
            e.printStackTrace();
        } finally {
            System.exit(0);
        }
    }
}
# ======= Penting =======
# Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
# === Hapus komentar ini sebelum eksekusi ====

curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation \
-H "Authorization: $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "model": "qwen-mt-turbo",
  "input": {
    "messages": [
      {
        "content": "No me reí después de ver este video",
        "role": "user"
      }
    ]
  },
  "parameters": {
    "translation_options": {
      "source_lang": "auto",
      "target_lang": "English"
    }
  }
}'

Respons contoh

I didn't laugh after watching this video. 

Keluaran streaming

Keluaran streaming mengembalikan konten terjemahan secara real-time untuk mengurangi waktu tunggu pengguna. Saat ini, hanya qwen-mt-flash dan qwen-mt-lite yang mendukung keluaran streaming inkremental, di mana setiap respons hanya berisi konten yang baru dihasilkan. Anda dapat mengaktifkan fitur ini dengan menggunakan parameter incremental_output. Model qwen-mt-plus dan qwen-mt-turbo hanya mendukung keluaran streaming non-inkremental; setiap respons mengembalikan seluruh urutan yang dihasilkan hingga saat itu, dan respons terakhir berisi hasil lengkapnya. Untuk informasi lebih lanjut, lihat Keluaran streaming.

Kompatibel dengan OpenAI

Permintaan contoh

import os
from openai import OpenAI

client = OpenAI(
    # Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Model Studio Anda: api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
messages = [{"role": "user", "content": "No me reí después de ver este video"}]
translation_options = {"source_lang": "auto", "target_lang": "English"}

completion = client.chat.completions.create(
    model="qwen-mt-flash",
    messages=messages,
    stream=True,
    stream_options={"include_usage": True},
    extra_body={"translation_options": translation_options},
)
for chunk in completion:
    if chunk.choices:
        content = chunk.choices[0].delta.content or ""
        print(content, end="", flush=True)
    else:
        print("="*20+"Usage"+"="*20)
        print(chunk.usage)
# ======= Penting =======
# Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# === Hapus komentar ini sebelum eksekusi ====

curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen-mt-flash",
    "messages": [{"role": "user", "content": "No me reí después de ver este video"}],
    "stream": true,
    "translation_options": {
      "source_lang": "auto",
      "target_lang": "English"
      }
}'

Respons contoh

I didn’t laugh after watching this video.
====================Usage====================
CompletionUsage(completion_tokens=9, prompt_tokens=56, total_tokens=65, completion_tokens_details=None, prompt_tokens_details=None)

DashScope

Permintaan contoh

import os
import dashscope

# Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
    {
        "role": "user",
        "content": "No me reí después de ver este video"
    }
]
translation_options = {
    "source_lang": "auto",
    "target_lang": "English",
}
response = dashscope.Generation.call(
    # Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Model Studio Anda: api_key="sk-xxx",
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="qwen-mt-flash",  # Contoh ini menggunakan qwen-mt-turbo. Anda dapat menggantinya dengan nama model lain sesuai kebutuhan.
    messages=messages,
    result_format='message',
    stream=True,
    # Untuk mendapatkan keluaran inkremental, atur incremental_output ke True. Ini direkomendasikan. Saat ini, hanya qwen-mt-flash yang mendukung fitur ini.
    incremental_output=True,
    translation_options=translation_options
)
for chunk in response:
    print(chunk.output.choices[0].message.content, end="", flush=True)
// SDK DashScope harus versi 2.20.6 atau lebih baru.
import java.lang.System;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.aigc.generation.TranslationOptions;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.protocol.Protocol;
import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import io.reactivex.Flowable;

public class Main {
    private static final Logger logger = LoggerFactory.getLogger(Main.class);
    private static void handleGenerationResult(GenerationResult message) {
        String content = message.getOutput().getChoices().get(0).getMessage().getContent();
        System.out.print(content);
    }
    public static void streamCallWithMessage(Generation gen, Message userMsg)
            throws NoApiKeyException, ApiException, InputRequiredException {
        GenerationParam param = buildGenerationParam(userMsg);
        Flowable<GenerationResult> result = gen.streamCall(param);
        result.blockingForEach(message -> handleGenerationResult(message));
    }
    private static GenerationParam buildGenerationParam(Message userMsg) {
        TranslationOptions options = TranslationOptions.builder()
                .sourceLang("auto")
                .targetLang("English")
                .build();
        return GenerationParam.builder()
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen-mt-flash")
                .resultFormat(GenerationParam.ResultFormat.MESSAGE)
                .translationOptions(options)
                // Aktifkan keluaran inkremental. Fitur ini hanya didukung oleh qwen-mt-flash.
                .incrementalOutput(true)
                .messages(Arrays.asList(userMsg))
                .build();
    }
    public static void main(String[] args) {
        try {
            // Berikut ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
            Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
            Message userMsg = Message.builder().role(Role.USER.getValue()).content("No me reí después de ver este video").build();
            streamCallWithMessage(gen, userMsg);
        } catch (ApiException | NoApiKeyException | InputRequiredException  e) {
            logger.error("An exception occurred: {}", e.getMessage());
        }
        System.exit(0);
    }
}
# ======= Penting =======
# Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
# === Hapus komentar ini sebelum eksekusi ====

curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation \
-H "Authorization: $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-H "X-DashScope-SSE: enable" \
-d '{
  "model": "qwen-mt-flash",
  "input": {
    "messages": [
      {
        "content": "No me reí después de ver este video",
        "role": "user"
      }
    ]
  },
  "parameters": {
    "translation_options": {
      "source_lang": "auto",
      "target_lang": "English"
  },
  "incremental_output":true
}'

Respons contoh

I didn't laugh after watching this video. 
qwen-mt-plus dan qwen-mt-turbo tidak mendukung keluaran streaming inkremental.

Meningkatkan kualitas terjemahan

Terjemahan standar sudah cukup untuk kasus penggunaan sederhana, seperti komunikasi sehari-hari. Namun, untuk tugas terjemahan profesional atau menuntut, Anda mungkin menghadapi masalah berikut:

  • Ketidakkonsistenan terminologi: Nama produk atau istilah industri diterjemahkan secara salah.

  • Gaya tidak sesuai: Gaya teks terjemahan tidak memenuhi standar domain tertentu, seperti hukum atau pemasaran.

Anda dapat menggunakan intervensi istilah, memori terjemahan, dan prompting berbasis domain untuk mengatasi masalah ini.

Intervensi istilah

Untuk memastikan akurasi dan konsistensi terjemahan ketika teks mengandung nama merek, nama produk, atau istilah teknis, Anda dapat menyediakan glosarium dalam field terms. Hal ini menginstruksikan model untuk menggunakan terjemahan yang telah Anda tentukan.

Definisikan dan teruskan istilah sebagai berikut:

  1. Definisikan istilah

    Buat array JSON dan tetapkan ke field terms. Setiap objek dalam array merepresentasikan sebuah istilah dalam format berikut:

    {
        "source": "term",
        "target": "pre-translated term"
    }
  2. Teruskan istilah

    Gunakan parameter translation_options untuk meneruskan array terms yang telah didefinisikan.

Kompatibel dengan OpenAI

Permintaan contoh

import os
from openai import OpenAI

client = OpenAI(
    # Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Model Studio Anda: api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
messages = [
    {
        "role": "user",
        "content": "Este conjunto de biosensores utiliza grafeno, un material novedoso. Su objetivo son los elementos químicos. Su agudo «sentido del olfato» le permite reflejar el estado de salud del cuerpo de forma más profunda y precisa."
    }
]

# --- Permintaan pertama: tanpa parameter terms ---
print("--- [Hasil terjemahan tanpa terms] ---")
translation_options_without_terms = {
    "source_lang": "auto",
    "target_lang": "English"
}

completion_without_terms = client.chat.completions.create(
    model="qwen-mt-turbo",
    messages=messages,
    extra_body={
        "translation_options": translation_options_without_terms
    }
)
print(completion_without_terms.choices[0].message.content)

print("\n" + "="*50 + "\n") # Pemisah untuk perbandingan

# --- Permintaan kedua: dengan parameter terms ---
print("--- [Hasil terjemahan dengan terms] ---")
translation_options_with_terms = {
    "source_lang": "auto",
    "target_lang": "English",
    "terms": [
        {
            "source": "biosensor",
            "target": "biological sensor"
        },
        {
            "source": "estado de salud del cuerpo",
            "target": "health status of the body"
        }
    ]
}

completion_with_terms = client.chat.completions.create(
    model="qwen-mt-turbo",
    messages=messages,
    extra_body={
        "translation_options": translation_options_with_terms
    }
)
print(completion_with_terms.choices[0].message.content)
# ======= Penting =======
# Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# === Hapus komentar ini sebelum eksekusi ====

curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "model": "qwen-mt-turbo",
  "messages": [
    {
      "role": "user",
      "content": "Este conjunto de biosensores utiliza grafeno, un material novedoso. Su objetivo son los elementos químicos. Su agudo «sentido del olfato» le permite reflejar el estado de salud del cuerpo de forma más profunda y precisa."
    }
  ],
  "translation_options": {
    "source_lang": "auto",
    "target_lang": "English",
    "terms": [
      {
        "source": "biosensor",
        "target": "biological sensor"
      },
      {
        "source": "estado de salud del cuerpo",
        "target": "health status of the body"
      }
    ]
  }
}'

Respons contoh

Setelah Anda menambahkan terms, hasil terjemahan menjadi konsisten dengan terms yang Anda berikan: "biological sensor" dan "health status of the body".

--- [Hasil terjemahan tanpa istilah] ---
Rangkaian biosensor ini menggunakan grafena, sebuah material baru, yang menargetkan unsur kimia. "Indra penciuman"-nya yang sensitif memungkinkannya untuk merefleksikan kondisi kesehatan seseorang secara lebih mendalam dan akurat.

==================================================

--- [Hasil terjemahan dengan istilah] ---
Sensor biologis ini menggunakan material baru yang disebut grafena. Targetnya adalah unsur kimia, dan "indra penciuman"-nya yang sensitif memungkinkannya untuk merefleksikan status kesehatan tubuh secara lebih mendalam dan akurat.

DashScope

Permintaan contoh

import os
import dashscope

# Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
    {
        "role": "user",
        "content": "Este conjunto de biosensores utiliza grafeno, un material novedoso. Su objetivo son los elementos químicos. Su agudo «sentido del olfato» le permite reflejar el estado de salud del cuerpo de forma más profunda y precisa."
    }
]
translation_options = {
    "source_lang": "auto",
    "target_lang": "English",
    "terms": [
        {
            "source": "biosensor",
            "target": "biological sensor"
        },
        {
            "source": "estado de salud del cuerpo",
            "target": "health status of the body"
        }
    ]
}
response = dashscope.Generation.call(
    # Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Model Studio Anda: api_key="sk-xxx",
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="qwen-mt-turbo",  # Contoh ini menggunakan qwen-mt-turbo. Anda dapat menggantinya dengan nama model lain sesuai kebutuhan.
    messages=messages,
    result_format='message',
    translation_options=translation_options
)
print(response.output.choices[0].message.content)
// SDK DashScope harus versi 2.20.6 atau lebih baru.
import java.lang.System;
import java.util.Collections;
import java.util.Arrays;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.aigc.generation.TranslationOptions;
import com.alibaba.dashscope.aigc.generation.TranslationOptions.Term;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.protocol.Protocol;

public class Main {
    public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
        // Berikut ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
        Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
        Message userMsg = Message.builder()
                .role(Role.USER.getValue())
                .content("Este conjunto de biosensores utiliza grafeno, un material novedoso. Su objetivo son los elementos químicos. Su agudo «sentido del olfato» le permite reflejar el estado de salud del cuerpo de forma más profunda y precisa.")
                .build();
        Term term1 = Term.builder()
                .source("biosensor")
                .target("biological sensor")
                .build();
        Term term2 = Term.builder()
                .source("estado de salud del cuerpo")
                .target("health status of the body")
                .build();
        TranslationOptions options = TranslationOptions.builder()
                .sourceLang("auto")
                .targetLang("English")
                .terms(Arrays.asList(term1, term2))
                .build();
        GenerationParam param = GenerationParam.builder()
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen-mt-plus")
                .messages(Collections.singletonList(userMsg))
                .resultFormat(GenerationParam.ResultFormat.MESSAGE)
                .translationOptions(options)
                .build();
        return gen.call(param);
    }
    public static void main(String[] args) {
        try {
            GenerationResult result = callWithMessage();
            System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent());
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.err.println("Error message: "+e.getMessage());
        }
        System.exit(0);
    }
}
# ======= Penting =======
# Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
# === Hapus komentar ini sebelum eksekusi ====

curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation \
-H "Authorization: $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
  "model": "qwen-mt-turbo",
  "input": {
    "messages": [
      {
        "content": "Este conjunto de biosensores utiliza grafeno, un material novedoso. Su objetivo son los elementos químicos. Su agudo «sentido del olfato» le permite reflejar el estado de salud del cuerpo de forma más profunda y precisa.",
        "role": "user"
      }
    ]
  },
  "parameters": {
    "translation_options": {
      "source_lang": "auto",
      "target_lang": "English",
      "terms": [
        {
          "source": "biosensor",
          "target": "biological sensor"
        },
        {
          "source": "estado de salud del cuerpo",
          "target": "health status of the body"
        }
      ]
    }
  }
}'

Respons contoh

This biological sensor uses graphene, a new material, and its target is chemical elements. Its sensitive "nose" can more deeply and accurately reflect the health status of the human body. 

Memori terjemahan

Untuk menginstruksikan model menggunakan gaya terjemahan atau pola kalimat tertentu, Anda dapat menyediakan pasangan kalimat sumber-target sebagai contoh dalam field tm_list. Model kemudian akan meniru gaya contoh-contoh tersebut untuk tugas terjemahan saat ini.

  1. Definisikan memori terjemahan

    Buat array JSON bernama tm_list. Setiap objek JSON dalam array berisi kalimat sumber dan terjemahannya dalam format berikut:

    {
        "source": "source statement",
        "target": "translated statement"
    }
  2. Teruskan memori terjemahan

    Gunakan parameter translation_options untuk meneruskan array memori terjemahan.

Kode berikut menunjukkan cara menggunakan fitur memori terjemahan.

Kompatibel dengan OpenAI

Permintaan contoh

import os
from openai import OpenAI

client = OpenAI(
    # Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Model Studio Anda: api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
messages = [
    {
        "role": "user",
        "content": "El siguiente comando muestra la información de la versión de Thrift instalada."
    }
]
translation_options = {
    "source_lang": "auto",
    "target_lang": "English",
    "tm_list": [
        {
            "source": "Puede utilizar uno de los siguientes métodos para consultar la versión del motor de un clúster:",
            "target": "You can use one of the following methods to query the engine version of a cluster:"
        },
        {
            "source": "La versión de Thrift utilizada por nuestro HBase en la nube es la 0.9.0. Por lo tanto, recomendamos que la versión del cliente también sea la 0.9.0. Puede descargar Thrift 0.9.0 desde aquí. El paquete de código fuente descargado se utilizará posteriormente. Primero debe instalar el entorno de compilación de Thrift. Para la instalación desde el código fuente, puede consultar el sitio web oficial de Thrift.",
            "target": "The version of Thrift used by ApsaraDB for HBase is 0.9.0. Therefore, we recommend that you use Thrift 0.9.0 to create a client. Click here to download Thrift 0.9.0. The downloaded source code package will be used later. You must install the Thrift compiling environment first. For more information, see Thrift official website."
        },
        {
            "source": "Puede instalar el SDK a través de PyPI. El comando de instalación es el siguiente:",
            "target": "You can run the following command in Python Package Index (PyPI) to install Elastic Container Instance SDK for Python:"
        }
    ]
}

completion = client.chat.completions.create(
    model="qwen-mt-plus",
    messages=messages,
    extra_body={
        "translation_options": translation_options
    }
)
print(completion.choices[0].message.content)
# ======= Penting =======
# Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# === Hapus komentar ini sebelum eksekusi ====

curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "model": "qwen-mt-turbo",
  "messages": [
    {
      "role": "user",
      "content": "El siguiente comando muestra la información de la versión de Thrift instalada."
    }
  ],
  "translation_options": {
    "source_lang": "auto",
    "target_lang": "English",
    "tm_list":[
          {"source": "Puede utilizar uno de los siguientes métodos para consultar la versión del motor de un clúster:", "target": "You can use one of the following methods to query the engine version of a cluster:"},
          {"source": "La versión de Thrift utilizada por nuestro HBase en la nube es la 0.9.0. Por lo tanto, recomendamos que la versión del cliente también sea la 0.9.0. Puede descargar Thrift 0.9.0 desde aquí. El paquete de código fuente descargado se utilizará posteriormente. Primero debe instalar el entorno de compilación de Thrift. Para la instalación desde el código fuente, puede consultar el sitio web oficial de Thrift.", "target": "The version of Thrift used by ApsaraDB for HBase is 0.9.0. Therefore, we recommend that you use Thrift 0.9.0 to create a client. Click here to download Thrift 0.9.0. The downloaded source code package will be used later. You must install the Thrift compiling environment first. For more information, see Thrift official website."},
          {"source": "Puede instalar el SDK a través de PyPI. El comando de instalación es el siguiente:", "target": "You can run the following command in Python Package Index (PyPI) to install Elastic Container Instance SDK for Python:"}
    ]
  }
}'

Respons contoh

You can run the following command to view the version of Thrift that is installed:

DashScope

Permintaan contoh

import os
import dashscope

# Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
    {
        "role": "user",
        "content": "El siguiente comando muestra la información de la versión de Thrift instalada."
    }
]
translation_options = {
    "source_lang": "auto",
    "target_lang": "English",
    "tm_list": [
        {
            "source": "Puede utilizar uno de los siguientes métodos para consultar la versión del motor de un clúster:",
            "target": "You can use one of the following methods to query the engine version of a cluster:"
        },
        {
            "source": "La versión de Thrift utilizada por nuestro HBase en la nube es la 0.9.0. Por lo tanto, recomendamos que la versión del cliente también sea la 0.9.0. Puede descargar Thrift 0.9.0 desde aquí. El paquete de código fuente descargado se utilizará posteriormente. Primero debe instalar el entorno de compilación de Thrift. Para la instalación desde el código fuente, puede consultar el sitio web oficial de Thrift.",
            "target": "The version of Thrift used by ApsaraDB for HBase is 0.9.0. Therefore, we recommend that you use Thrift 0.9.0 to create a client. Click here to download Thrift 0.9.0. The downloaded source code package will be used later. You must install the Thrift compiling environment first. For more information, see Thrift official website."
        },
        {
            "source": "Puede instalar el SDK a través de PyPI. El comando de instalación es el siguiente:",
            "target": "You can run the following command in Python Package Index (PyPI) to install Elastic Container Instance SDK for Python:"
        }
    ]}
response = dashscope.Generation.call(
    # Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Model Studio Anda: api_key="sk-xxx",
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="qwen-mt-turbo",  # Contoh ini menggunakan qwen-mt-turbo. Anda dapat menggantinya dengan nama model lain sesuai kebutuhan.
    messages=messages,
    result_format='message',
    translation_options=translation_options
)
print(response.output.choices[0].message.content)
// SDK DashScope harus versi 2.20.6 atau lebih baru.
import java.lang.System;
import java.util.Collections;
import java.util.Arrays;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.aigc.generation.TranslationOptions;
import com.alibaba.dashscope.aigc.generation.TranslationOptions.Tm;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.protocol.Protocol;

public class Main {
    public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
        // Berikut ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
        Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
        Message userMsg = Message.builder()
                .role(Role.USER.getValue())
                .content("El siguiente comando muestra la información de la versión de Thrift instalada.")
                .build();
        Tm tm1 = Tm.builder()
                .source("Puede utilizar uno de los siguientes métodos para consultar la versión del motor de un clúster:")
                .target("You can use one of the following methods to query the engine version of a cluster:")
                .build();
        Tm tm2 = Tm.builder()
                .source("La versión de Thrift utilizada por nuestro HBase en la nube es la 0.9.0. Por lo tanto, recomendamos que la versión del cliente también sea la 0.9.0. Puede descargar Thrift 0.9.0 desde aquí. El paquete de código fuente descargado se utilizará posteriormente. Primero debe instalar el entorno de compilación de Thrift. Para la instalación desde el código fuente, puede consultar el sitio web oficial de Thrift.")
                .target("The version of Thrift used by ApsaraDB for HBase is 0.9.0. Therefore, we recommend that you use Thrift 0.9.0 to create a client. Click here to download Thrift 0.9.0. The downloaded source code package will be used later. You must install the Thrift compiling environment first. For more information, see Thrift official website.")
                .build();
        Tm tm3 = Tm.builder()
                .source("Puede instalar el SDK a través de PyPI. El comando de instalación es el siguiente:")
                .target("You can run the following command in Python Package Index (PyPI) to install Elastic Container Instance SDK for Python:")
                .build();
        TranslationOptions options = TranslationOptions.builder()
                .sourceLang("auto")
                .targetLang("English")
                .tmList(Arrays.asList(tm1, tm2, tm3))
                .build();
        GenerationParam param = GenerationParam.builder()
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen-mt-plus")
                .messages(Collections.singletonList(userMsg))
                .resultFormat(GenerationParam.ResultFormat.MESSAGE)
                .translationOptions(options)
                .build();
        return gen.call(param);
    }
    public static void main(String[] args) {
        try {
            GenerationResult result = callWithMessage();
            System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent());
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.err.println("Error message: "+e.getMessage());
        }
        System.exit(0);
    }
}
# ======= Penting =======
# Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
# === Hapus komentar ini sebelum eksekusi ====

curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation \
-H "Authorization: $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
  "model": "qwen-mt-turbo",
  "input": {
    "messages": [
      {
        "content": "El siguiente comando muestra la información de la versión de Thrift instalada.",
        "role": "user"
      }
    ]
  },
  "parameters": {
    "translation_options": {
      "source_lang": "auto",
      "target_lang": "English",
      "tm_list":[
          {"source": "Puede utilizar uno de los siguientes métodos para consultar la versión del motor de un clúster:", "target": "You can use one of the following methods to query the engine version of a cluster:"},
          {"source": "La versión de Thrift utilizada por nuestro HBase en la nube es la 0.9.0. Por lo tanto, recomendamos que la versión del cliente también sea la 0.9.0. Puede descargar Thrift 0.9.0 desde aquí. El paquete de código fuente descargado se utilizará posteriormente. Primero debe instalar el entorno de compilación de Thrift. Para la instalación desde el código fuente, puede consultar el sitio web oficial de Thrift.", "target": "The version of Thrift used by ApsaraDB for HBase is 0.9.0. Therefore, we recommend that you use Thrift 0.9.0 to create a client. Click here to download Thrift 0.9.0. The downloaded source code package will be used later. You must install the Thrift compiling environment first. For more information, see Thrift official website."},
          {"source": "Puede instalar el SDK a través de PyPI. El comando de instalación es el siguiente:", "target": "You can run the following command in Python Package Index (PyPI) to install Elastic Container Instance SDK for Python:"}
      ]
  }
}'

Respons contoh

You can use the following commands to check the version information of thrift installed; 

Prompting berbasis domain

Untuk menyesuaikan gaya terjemahan ke domain tertentu, Anda dapat menggunakan parameter translation_options untuk meneruskan prompt domain. Misalnya, terjemahan untuk domain hukum atau pemerintahan harus formal, sedangkan terjemahan untuk media sosial harus santai.

Penting

Prompt domain saat ini hanya mendukung bahasa Inggris.

Kompatibel dengan OpenAI

Permintaan contoh

import os
from openai import OpenAI

client = OpenAI(
    # Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Model Studio Anda: api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
messages = [
    {
        "role": "user",
        "content": "La segunda instrucción SELECT devuelve un número que indica la cantidad de filas que habría devuelto la primera instrucción SELECT si no se hubiera utilizado la cláusula LIMIT."
    }
]

# --- Permintaan pertama: tanpa parameter domains ---
print("--- [Hasil terjemahan tanpa domains] ---")
translation_options_without_domains = {
    "source_lang": "auto",
    "target_lang": "English",
}

completion_without_domains = client.chat.completions.create(
    model="qwen-mt-plus", 
    messages=messages,
    extra_body={
        "translation_options": translation_options_without_domains
    }
)
print(completion_without_domains.choices[0].message.content)

print("\n" + "="*50 + "\n") # Pemisah untuk perbandingan

# --- Permintaan kedua: dengan parameter domains ---
print("--- [Hasil terjemahan dengan domains] ---")
translation_options_with_domains = {
    "source_lang": "auto",
    "target_lang": "English",
    "domains": "The sentence is from Ali Cloud IT domain. It mainly involves computer-related software development and usage methods, including many terms related to computer software and hardware. Pay attention to professional troubleshooting terminologies and sentence patterns when translating. Translate into this IT domain style."
}

completion_with_domains = client.chat.completions.create(
    model="qwen-mt-plus",
    messages=messages,
    extra_body={
        "translation_options": translation_options_with_domains
    }
)
print(completion_with_domains.choices[0].message.content)
# ======= Penting =======
# Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# === Hapus komentar ini sebelum eksekusi ====
curl -X POST https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
  "model": "qwen-mt-turbo",
  "messages": [
    {
      "role": "user",
      "content": "La segunda instrucción SELECT devuelve un número que indica la cantidad de filas que habría devuelto la primera instrucción SELECT si no se hubiera utilizado la cláusula LIMIT."
    }
  ],
  "translation_options": {
    "source_lang": "auto",
    "target_lang": "English",
    "domains": "The sentence is from Ali Cloud IT domain. It mainly involves computer-related software development and usage methods, including many terms related to computer software and hardware. Pay attention to professional troubleshooting terminologies and sentence patterns when translating. Translate into this IT domain style."
  }
}'

Respons contoh

--- [Hasil terjemahan tanpa domain] ---
Pernyataan SELECT kedua mengembalikan angka yang menunjukkan berapa banyak baris yang akan dikembalikan oleh pernyataan SELECT pertama tanpa klausa LIMIT.

==================================================

--- [Hasil terjemahan dengan domain] ---
Pernyataan SELECT kedua mengembalikan angka yang menunjukkan berapa banyak baris yang akan dikembalikan oleh pernyataan SELECT pertama jika tidak menyertakan klausa LIMIT.

DashScope

Permintaan contoh

import os
import dashscope

# Jika Anda menggunakan model di Wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
    {
        "role": "user",
        "content": "La segunda instrucción SELECT devuelve un número que indica la cantidad de filas que habría devuelto la primera instrucción SELECT si no se hubiera utilizado la cláusula LIMIT."
    }
]
translation_options = {
    "source_lang": "auto",
    "target_lang": "English",
    "domains": "The sentence is from Ali Cloud IT domain. It mainly involves computer-related software development and usage methods, including many terms related to computer software and hardware. Pay attention to professional troubleshooting terminologies and sentence patterns when translating. Translate into this IT domain style."
}
response = dashscope.Generation.call(
    # Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Model Studio Anda: api_key="sk-xxx",
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="qwen-mt-turbo",  
    messages=messages,
    result_format='message',
    translation_options=translation_options
)
print(response.output.choices[0].message.content)
// SDK DashScope harus versi 2.20.6 atau lebih baru.
import java.lang.System;
import java.util.Collections;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.aigc.generation.TranslationOptions;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.protocol.Protocol;

public class Main {
    public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
        // Berikut ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
        Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
        Message userMsg = Message.builder()
                .role(Role.USER.getValue())
                .content("La segunda instrucción SELECT devuelve un número que indica la cantidad de filas que habría devuelto la primera instrucción SELECT si no se hubiera utilizado la cláusula LIMIT.")
                .build();
        TranslationOptions options = TranslationOptions.builder()
                .sourceLang("auto")
                .targetLang("English")
                .domains("The sentence is from Ali Cloud IT domain. It mainly involves computer-related software development and usage methods, including many terms related to computer software and hardware. Pay attention to professional troubleshooting terminologies and sentence patterns when translating. Translate into this IT domain style.")
                .build();
        GenerationParam param = GenerationParam.builder()
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                // Catatan: qwen-mt-lite tidak mendukung prompting berbasis domain
                .model("qwen-mt-plus")
                .messages(Collections.singletonList(userMsg))
                .resultFormat(GenerationParam.ResultFormat.MESSAGE)
                .translationOptions(options)
                .build();
        return gen.call(param);
    }
    public static void main(String[] args) {
        try {
            GenerationResult result = callWithMessage();
            System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent());
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.err.println("Error message: "+e.getMessage());
        }
        System.exit(0);
    }
}
# ======= Penting =======
# Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
# === Hapus komentar ini sebelum eksekusi ====

curl -X POST https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation \
-H "Authorization: $DASHSCOPE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
  "model": "qwen-mt-turbo",
  "input": {
    "messages": [
      {
        "content": "La segunda instrucción SELECT devuelve un número que indica la cantidad de filas que habría devuelto la primera instrucción SELECT si no se hubiera utilizado la cláusula LIMIT.",
        "role": "user"
      }
    ]
  },
  "parameters": {
    "translation_options": {
      "source_lang": "auto",
      "target_lang": "English",
      "domains": "The sentence is from Ali Cloud IT domain. It mainly involves computer-related software development and usage methods, including many terms related to computer software and hardware. Pay attention to professional troubleshooting terminologies and sentence patterns when translating. Translate into this IT domain style."}
  }
}'

Respons contoh

The second SELECT statement returns a number that indicates how many rows were returned by the first SELECT statement without a LIMIT clause. 

Prompt kustom

Gunakan prompt kustom dalam Qwen-MT untuk menentukan detail seperti bahasa atau gaya. Metode ini saling eksklusif dengan parameter translation_options. Jika Anda menggunakan keduanya, translation_options mungkin tidak berlaku.

Untuk hasil terjemahan terbaik, gunakan translation_options untuk mengonfigurasi pengaturan terjemahan.

Contoh berikut menunjukkan terjemahan dari Spanyol ke Inggris dalam domain hukum:

Kompatibel dengan OpenAI

import os
from openai import OpenAI

client = OpenAI(
    # Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan Kunci API Alibaba Cloud Model Studio Anda: api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Jika Anda menggunakan model di wilayah Beijing, Anda perlu mengganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1
    base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
prompt_template = """
# Role
You are a professional legal translation expert, proficient in both Spanish and English, and you are especially skilled at handling commercial contracts and legal documents.

# Task
I need you to translate the following Spanish legal text into professional, accurate, and formal English.

# Translation Requirements
1.  **Fidelity to the Original**: Strictly translate according to the meaning and legal intent of the original text. Do not add or omit information.
2.  **Precise Terminology**: Use standard legal terms common in the Common Law system. For example, "甲方" should be translated as "Party A", "乙方" as "Party B", and "不可抗力" as "Force Majeure".
3.  **Formal Tone**: Maintain the rigorous, objective, and formal style inherent in legal documents.
4.  **Clarity of Language**: The translation must be clear, unambiguous, and conform to the expressive conventions of English legal writing.
5.  **Format Preservation**: Retain the paragraphs, numbering, and basic format of the original text.

# Text to be Translated
{text_to_translate}
"""

# --- 2. Siapkan teks hukum yang akan diterjemahkan ---
chinese_legal_text = "Este contrato entrará en vigor a partir de la fecha en que ambas partes lo firmen y sellen, y tendrá una vigencia de un año."
final_prompt = prompt_template.format(text_to_translate=chinese_legal_text)

# --- 3. Buat messages ---
messages = [{"role": "user", "content": final_prompt}]

# --- 4. Kirim permintaan API ---
completion = client.chat.completions.create(model="qwen-mt-plus", messages=messages)

# --- 5. Cetak hasil terjemahan model ---
translation_result = completion.choices[0].message.content
print(translation_result)
import OpenAI from 'openai';

const client = new OpenAI({
    apiKey: process.env.DASHSCOPE_API_KEY,
    // Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1
    baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
});

const promptTemplate = `
# Role
You are a professional legal translation expert, proficient in both Spanish and English, specializing in business contracts and legal documents.

# Task
I need you to translate the following Spanish legal text into professional, accurate, and formal English.

# Translation Requirements
1.  **Fidelity to the Original**: Translate strictly according to the meaning and legal intent of the original text. Do not add or omit information.
2.  **Precise Terminology**: Use standard legal terms common in the Common Law system. For example, "甲方" should be translated as "Party A", "乙方" as "Party B", and "不可抗力" as "Force Majeure".
3.  **Formal Tone**: Maintain the rigorous, objective, and formal tone inherent in legal documents.
4.  **Clarity**: The translation must be clear, unambiguous, and conform to the expressive conventions of English legal writing.
5.  **Format Preservation**: Retain the paragraphs, numbering, and basic format of the original text.

# Text to Translate
{text_to_translate}
`;

const spanishLegalText = "This Contract shall become effective from the date of signature and seal by both parties and shall be valid for a period of one year.";
const finalPrompt = promptTemplate.replace('{text_to_translate}', spanishLegalText);

const messages = [{"role": "user", "content": final_prompt}];

async function main() {
    const completion = await client.chat.completions.create({
        model: "qwen-mt-plus",
        messages: messages
    });

    const translationResult = completion.choices[0].message.content;
    console.log(translationResult);
}

main();

Respons contoh

This Contract shall become effective from the date on which both parties sign and affix their seals, and its term of validity shall be one year.

DashScope

Permintaan contoh

import os
import dashscope

# Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
prompt_template = """
# Role
You are a professional legal translation expert, proficient in both Spanish and English, with special expertise in handling business contracts and legal documents.

# Task
I need you to translate the following Spanish legal text into professional, accurate, and formal English.

# Translation Requirements
1.  **Fidelity to the Original**: Strictly translate according to the meaning and legal intent of the original text. Do not add or omit any information.
2.  **Precise Terminology**: Use standard legal terms common to the Common Law system. For example, "甲方" should be translated as "Party A", "乙方" as "Party B", and "不可抗力" as "Force Majeure".
3.  **Formal Tone**: Maintain the rigorous, objective, and formal style inherent in legal documents.
4.  **Clear Phrasing**: The translation must be clear, unambiguous, and conform to the conventions of English legal writing.
5.  **Preserve Formatting**: Maintain the paragraphs, numbering, and basic format of the original text.

# Text to be Translated
{text_to_translate}
"""

# --- 2. Siapkan teks hukum untuk diterjemahkan ---
chinese_legal_text = "This Contract shall become effective from the date of signature and seal by both parties and shall be valid for a period of one year."
final_prompt = prompt_template.format(text_to_translate=chinese_legal_text)

# --- 3. Buat messages ---
messages = [
    {
        "role": "user",
        "content": final_prompt
    }
]

response = dashscope.Generation.call(
    # Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Model Studio Anda: api_key="sk-xxx",
    api_key=os.getenv('DASHSCOPE_API_KEY'),
    model="qwen-mt-plus",
    messages=messages,
    result_format='message',
)
print(response.output.choices[0].message.content)
// SDK DashScope harus versi 2.20.6 atau lebih baru.
import java.lang.System;
import java.util.Collections;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.protocol.Protocol;

public class Main {
    public static GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
        // Berikut ini adalah URL untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1
        Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
        String promptTemplate = "# Role\n" +
                "You are a professional legal translation expert, proficient in both Spanish and English, specializing in business contracts and legal documents.\n\n" +
                "# Task\n" +
                "I need you to translate the following Spanish legal text into professional, accurate, and formal English.\n\n" +
                "# Translation Requirements\n" +
                "1.  **Fidelity to the Original**: Translate strictly according to the meaning and legal intent of the original text. Do not add or omit information.\n" +
                "2.  **Precise Terminology**: Use standard legal terms common in the Common Law system. For example, \"甲方\" should be translated as \"Party A\", \"乙方\" as \"Party B\", and \"不可抗力\" as \"Force Majeure\".\n" +
                "3.  **Formal Tone**: Maintain the rigorous, objective, and formal tone inherent in legal documents.\n" +
                "4.  **Clarity**: The translation must be clear, unambiguous, and conform to the expressive conventions of English legal writing.\n" +
                "5.  **Format Preservation**: Retain the paragraphs, numbering, and basic format of the original text.\n\n" +
                "# Text to Translate\n" +
                "{text_to_translate}";

        String spanishLegalText = "This Contract shall become effective from the date of signature and seal by both parties and shall be valid for a period of one year.";
        String finalPrompt = promptTemplate.replace("{text_to_translate}", spanishLegalText);

        Message userMsg = Message.builder()
                .role(Role.USER.getValue())
                .content(finalPrompt)
                .build();

        GenerationParam param = GenerationParam.builder()
                // Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Model Studio Anda: .apiKey("sk-xxx")
                .apiKey(System.getenv("DASHSCOPE_API_KEY"))
                .model("qwen-mt-plus")
                .messages(Collections.singletonList(userMsg))
                .resultFormat(GenerationParam.ResultFormat.MESSAGE)
                .build();
        return gen.call(param);
    }
    public static void main(String[] args) {
        try {
            GenerationResult result = callWithMessage();
            System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent());
        } catch (ApiException | NoApiKeyException | InputRequiredException e) {
            System.err.println("Error message: "+e.getMessage());
            e.printStackTrace();
        }
        }
}

Respons contoh

This Contract shall become effective from the date on which both parties sign and affix their seals, and its term of validity shall be one year.

Peluncuran

  • Kontrol jumlah token input

    Model Qwen-MT memiliki batas maksimum input sebesar 8.192 token. Untuk konten panjang, pertimbangkan strategi berikut untuk mengontrol jumlah token input:

    • Terjemahkan per segmen: Saat menerjemahkan teks panjang, proseslah dalam segmen. Pisahkan teks berdasarkan unit semantik, seperti paragraf atau kalimat lengkap, bukan berdasarkan jumlah karakter. Pendekatan ini menjaga integritas konteks dan meningkatkan kualitas terjemahan.

    • Sediakan konten referensi yang paling relevan: Istilah, memori terjemahan, dan prompt domain ditambahkan ke prompt input sebagai token. Untuk mengoptimalkan penggunaan token, berikan hanya konten referensi yang paling relevan dengan tugas saat ini. Hindari penggunaan daftar umum yang besar.

  • Tentukan source_lang berdasarkan skenario

    • Ketika bahasa sumber tidak pasti, seperti dalam skenario obrolan sosial dengan teks multibahasa, atur source_lang ke auto. Model secara otomatis mengidentifikasi bahasa sumber.

    • Dalam skenario dengan bahasa tetap dan persyaratan akurasi tinggi, seperti dokumen teknis atau manual operasi, selalu tentukan source_lang. Menentukan bahasa sumber secara eksplisit meningkatkan akurasi terjemahan.

Bahasa yang didukung

Gunakan Nama Inggris atau Kode dari tabel di bawah ini saat mengirim permintaan.

Jika Anda tidak yakin dengan bahasa sumber, Anda dapat mengatur parameter source_lang ke auto untuk deteksi otomatis.

Bahasa yang didukung oleh qwen-mt-plus/flash/turbo (92)

Bahasa

Nama Inggris

Kode

Inggris

English

en

Tionghoa Sederhana

Chinese

zh

Tiongkok Tradisional

Traditional Chinese

zh_tw

Rusia

Russian

ru

Jepang

Japanese

ja

Korea

Korean

ko

Spanyol

Spanish

es

Prancis

French

fr

Portugis

Portuguese

pt

Jerman

German

de

Italia

Italian

it

Bahasa Thailand

Thai

th

Bahasa Vietnam

Vietnamese

vi

Bahasa Indonesia

Indonesian

id

Melayu

Malay

ms

Arab

Arabic

ar

Hindi

Hindi

hi

Ibrani

Hebrew

he

Bahasa Myanmar

Burmese

my

Tamil

Tamil

ta

Urdu

Urdu

ur

Bengali

Bengali

bn

Bahasa Polandia

Polish

pl

Belanda

Dutch

nl

Rumania

Romanian

ro

Turki

Turkish

tr

Khmer

Khmer

km

Lao

Lao

lo

Kanton

Cantonese

yue

Ceko

Czech

cs

Yunani

Greek

el

Swedia

Swedish

sv

Hongaria

Hungarian

hu

Bahasa Denmark

Danish

da

Finlandia

Finnish

fi

Ukraina

Ukrainian

uk

Bahasa Bulgaria

Bulgarian

bg

Bahasa Serbia

Serbian

sr

Telugu

Telugu

te

Afrikaans

Afrikaans

af

Armenia

Armenian

hy

Bahasa Assam

Assamese

as

Asturia

Asturian

ast

Basque

Basque

eu

Belarusia

Belarusian

be

Bahasa Bosnia

Bosnian

bs

Katalan

Catalan

ca

Cebuano

Cebuano

ceb

Kroasia

Croatian

hr

Arab Mesir

Egyptian Arabic

arz

Bahasa Estonia

Estonian

et

Galisia

Galician

gl

Georgia

Georgian

ka

Bahasa Gujarat

Gujarati

gu

Islandia

Icelandic

is

Jawa

Javanese

jv

Kannada

Kannada

kn

Kazakh

Kazakh

kk

Latvia

Latvian

lv

Lituania

Lithuanian

lt

Luksemburg

Luxembourgish

lb

Makedonia

Macedonian

mk

Maithili

Maithili

mai

Bahasa Malta

Maltese

mt

Marathi

Marathi

mr

Arab Mesopotamia

Mesopotamian Arabic

acm

Arab Maroko

Moroccan Arabic

ary

Arab Najdi

Najdi Arabic

ars

Nepali

Nepali

ne

Azerbaijani Utara

North Azerbaijani

az

Arab Levant Utara

North Levantine Arabic

apc

Uzbek Utara

Northern Uzbek

uz

Bokmål Norwegia

Norwegian Bokmål

nb

Nynorsk Norwegia

Norwegian Nynorsk

nn

Occitan

Occitan

oc

Odia

Odia

or

Pangasinan

Pangasinan

pag

Sisilia

Sicilian

scn

Sindhi

Sindhi

sd

Sinhala

Sinhala

si

Slovak

Slovak

sk

Slovenia

Slovenian

sl

Arab Levant Selatan

South Levantine Arabic

ajp

Swahili

Swahili

sw

Tagalog

Tagalog

tl

Arab Ta’izzi-Adeni

Ta’izzi-Adeni Arabic

acq

Albania Tosk

Tosk Albanian

sq

Arab Tunisia

Tunisian Arabic

aeb

Venetian

Venetian

vec

Valaisan

Waray

war

Welsh

Welsh

cy

Persia Barat

Western Persian

fa

Bahasa yang didukung oleh qwen-mt-lite (31)

Bahasa

Nama Inggris

Kode

Inggris

English

en

Tionghoa Sederhana

Chinese

zh

Tiongkok Tradisional

Traditional Chinese

zh_tw

Rusia

Russian

ru

Jepang

Japanese

ja

Korea

Korean

ko

Spanyol

Spanish

es

Prancis

French

fr

Portugis

Portuguese

pt

Jerman

German

de

Italia

Italian

it

Thai

Thai

th

Bahasa Vietnam

Vietnamese

vi

Bahasa Indonesia

Indonesian

id

Melayu

Malay

ms

Arab

Arabic

ar

Hindi

Hindi

hi

Ibrani

Hebrew

he

Urdu

Urdu

ur

Bengali

Bengali

bn

Bahasa Polandia

Polish

pl

Belanda

Dutch

nl

Turki

Turkish

tr

Khmer

Khmer

km

Ceko

Czech

cs

Swedia

Swedish

sv

Hongaria

Hungarian

hu

Bahasa Denmark

Danish

da

Finlandia

Finnish

fi

Tagalog

Tagalog

tl

Persia

Persian

fa

Referensi API

Untuk parameter input dan output Qwen-MT, lihat Model terjemahan Qwen-MT.