Qwen-MT模型是基於Qwen3模型最佳化的機器翻譯大語言模型,支援92個語種(包括中、英、日、韓、法、西、德、泰、印尼、越、阿等)互譯,且提供了術語幹預、領域提示、記憶庫等能力,提升模型在複雜應用情境下的翻譯效果。
工作方式
傳入待翻譯內容:
messages數組中有且僅有一個role為user的訊息,其content為待翻譯文本。設定語種:參考支援的語言,在
translation_options中設定源語種 (source_lang) 和目標語種 (target_lang)。若需自動檢測源語種,可將source_lang設為auto。指明源語種有利於提升翻譯準確率。
Qwen-MT 模型也支援通過自訂提示詞設定語種。
以 OpenAI 與 DashScope 的 Python SDK 為例,介紹如何調用 Qwen-MT 模型。
OpenAI 相容
# 匯入依賴與建立用戶端...
completion = client.chat.completions.create(
model="qwen-mt-flash", # 選擇模型
# messages 有且僅有一個 role 為 user 的訊息,其 content 為待翻譯文本
messages=[{"role": "user", "content": "我看到這個視頻後沒有笑"}],
# 由於 translation_options 非 OpenAI 標準參數,需要通過 extra_body 傳入
extra_body={"translation_options": {"source_lang": "Chinese", "target_lang": "English"}},
)DashScope
# 匯入依賴...
response = dashscope.Generation.call(
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen-mt-flash", # 選擇模型
messages=[{"role": "user", "content": "我看到這個視頻後沒有笑"}], # messages: role為user, content為待翻譯文本
translation_options={"source_lang": "Chinese", "target_lang": "English"}, # 配置翻譯選項
result_format="message"
)使用限制:
僅支援單輪翻譯:模型專為翻譯任務設計,不支援多輪對話。
不支援設定 System Message:不支援通過
system角色的訊息來設定全域行為。翻譯配置通過translation_options中定義。
模型選型
通用情境,可選擇
qwen-mt-flash。 它在效果、速度、成本三者間取得了平衡,並支援增量流式輸出。若追求最高翻譯品質,用於專業領域,請選擇
qwen-mt-plus。若追求最快響應速度,用於即時性強的簡單情境,請選擇
qwen-mt-lite。
各模型詳細對比如下:
模型 | 推薦情境 | 效果 | 速度 | 成本 | 支援的語言 | 支援增量流式輸出 | 支援領域提示功能 |
qwen-mt-plus | 專業領域、正式文書、論文、技術報告等對譯文品質要求高的情境 | 最好 | 標準 | 較高 | 92種 | ||
qwen-mt-flash | 通用首選,適用於網站/App內容、商品描述、日常溝通、部落格文章等情境 | 較好 | 較快 | 較低 | 92種 | ||
qwen-mt-turbo | 備選方案,flash在效果與功能上均更優,建議選用flash模型 | 良好 | 較快 | 較低 | 92種 | ||
qwen-mt-lite | 即時聊天、彈幕翻譯等對延遲敏感的簡單情境 | 基礎 | 最快 | 最低 | 31種 |
快速開始
此處以將“我看到這個視頻後沒有笑”翻譯為英文的簡單情境為例。
您需要已擷取與配置 API Key並配置API Key到環境變數(準備下線,併入配置 API Key)。如果通過OpenAI SDK或DashScope SDK進行調用,還需要安裝SDK。
OpenAI相容
請求樣本
import os
from openai import OpenAI
client = OpenAI(
# 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
# 如果使用華北2(北京)地區的模型,需要將base_url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
messages = [
{
"role": "user",
"content": "我看到這個視頻後沒有笑"
}
]
translation_options = {
"source_lang": "auto",
"target_lang": "English"
}
completion = client.chat.completions.create(
model="qwen-mt-flash", # 此處以 qwen-mt-turbo 為例,可按需更換模型名稱
messages=messages,
extra_body={
"translation_options": translation_options
}
)
print(completion.choices[0].message.content)# ======= 重要提示 =======
# 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# === 執行時請刪除該注釋 ====
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": "我看到這個視頻後沒有笑"}],
"translation_options": {
"source_lang": "auto",
"target_lang": "English"
}
}'
響應樣本
I didn't laugh after watching this video. DashScope
請求樣本
DashScope Java SDK 版本需要不低於 2.20.6。
import os
import dashscope
# 如果使用華北2(北京)地區的模型,需要將base_url替換為:https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
{
"role": "user",
"content": "我看到這個視頻後沒有笑"
}
]
translation_options = {
"source_lang": "auto",
"target_lang": "English",
}
response = dashscope.Generation.call(
# 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:api_key="sk-xxx",
api_key=os.getenv('DASHSCOPE_API_KEY'),
model="qwen-mt-turbo", # 此處以qwen-mt-turbo為例,可按需更換模型名稱
messages=messages,
result_format='message',
translation_options=translation_options
)
print(response.output.choices[0].message.content)// DashScope SDK 版本需要不低於 2.20.6
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,若使用北京地區的模型,需將url替換為: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("我看到這個視頻後沒有笑")
.build();
TranslationOptions options = TranslationOptions.builder()
.sourceLang("auto")
.targetLang("English")
.build();
GenerationParam param = GenerationParam.builder()
// 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:.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("錯誤資訊:"+e.getMessage());
e.printStackTrace();
} finally {
System.exit(0);
}
}
}# ======= 重要提示 =======
# 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
# === 執行時請刪除該注釋 ====
curl -X POST https://dashscope.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": "我看到這個視頻後沒有笑",
"role": "user"
}
]
},
"parameters": {
"translation_options": {
"source_lang": "auto",
"target_lang": "English"
}
}
}'響應樣本
I didn't laugh after watching this video. 流式輸出
流式輸出可以即時返回翻譯內容,減少使用者等待時間。當前僅qwen-mt-flash和qwen-mt-lite支援流式增量輸出,每次返回僅包含新產生的內容,可通過incremental_output參數開啟。qwen-mt-plus與qwen-mt-turbo僅支援非增量流式輸出,每次返回當前已經產生的整個序列,最後返回的資料為產生的完整結果。詳情請參見流式輸出。
OpenAI相容
請求樣本
import os
from openai import OpenAI
client = OpenAI(
# 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
# 如果使用華北2(北京)地區的模型,需要將base_url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
messages = [{"role": "user", "content": "我看到這個視頻後沒有笑"}]
translation_options = {"source_lang": "Chinese", "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)# ======= 重要提示 =======
# 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# === 執行時請刪除該注釋 ====
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": "我看到這個視頻後沒有笑"}],
"stream": true,
"translation_options": {
"source_lang": "Chinese",
"target_lang": "English"
}
}'響應樣本
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
請求樣本
import os
import dashscope
# 如果使用華北2(北京)地區的模型,需要將base_url替換為:https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
{
"role": "user",
"content": "我看到這個視頻後沒有笑"
}
]
translation_options = {
"source_lang": "Chinese",
"target_lang": "English",
}
response = dashscope.Generation.call(
# 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:api_key="sk-xxx",
api_key=os.getenv('DASHSCOPE_API_KEY'),
model="qwen-mt-flash", # 此處以qwen-mt-turbo為例,可按需更換模型名稱
messages=messages,
result_format='message',
stream=True,
# 推薦設定incremental_output為True以擷取增量輸出,當前僅qwen-mt-flash支援
incremental_output=True,
translation_options=translation_options
)
for chunk in response:
print(chunk.output.choices[0].message.content, end="", flush=True)// DashScope SDK 版本需要不低於 2.20.6
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)
// 開啟增量輸出,當前僅qwen-mt-flash支援
.incrementalOutput(true)
.messages(Arrays.asList(userMsg))
.build();
}
public static void main(String[] args) {
try {
// 以下為新加坡地區url,若使用北京地區的模型,需將url替換為: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("我看到這個視頻後沒有笑").build();
streamCallWithMessage(gen, userMsg);
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
logger.error("An exception occurred: {}", e.getMessage());
}
System.exit(0);
}
}# ======= 重要提示 =======
# 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
# === 執行時請刪除該注釋 ====
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": "我看到這個視頻後沒有笑",
"role": "user"
}
]
},
"parameters": {
"translation_options": {
"source_lang": "Chinese",
"target_lang": "English"
},
"incremental_output":true
}'響應樣本
I didn't laugh after watching this video. qwen-mt-plus、qwen-mt-turbo模型暫時不支援增量式流式輸出。
提升翻譯效果
標準翻譯能應對日常溝通等簡單需求,但在面對專業、高要求的翻譯任務時可能遇到以下問題:
術語不統一:產品名或行業術語翻譯錯誤。
風格不匹配:譯文風格不符合法律、營銷等特定領域的規範。
可通過術語幹預、翻譯記憶與領域提示功能解決這些問題。
術語幹預
當文本包含品牌名、產品名或專業術語時,為保證翻譯的準確性和一致性,可通過 terms 欄位提供一個術語表,引導模型參考術語表進行翻譯。
術語的定義與傳入方法為:
定義術語
建立一個JSON數組,並將其賦值給
terms欄位。數組中的每一個對象代表一條術語,格式如下:{ "source": "術語", "target": "提前翻譯好的術語" }傳入術語
通過
translation_options參數傳入定義好的terms術語數組。
OpenAI相容
請求樣本
import os
from openai import OpenAI
client = OpenAI(
# 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
# 如果使用華北2(北京)地區的模型,需要將base_url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
messages = [
{
"role": "user",
"content": "而這套生物特徵辨識感應器運用了石墨烯這種新型材料,它的目標物是化學元素,敏銳的“嗅覺”讓它能更深度、準確地體現身體健康情況。"
}
]
# --- 第一次請求:不使用 terms 參數 ---
print("--- [不使用 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") # 用於分割,方便對比
# --- 第二次請求:使用 terms 參數 ---
print("--- [使用 terms] 的翻譯結果 ---")
translation_options_with_terms = {
"source_lang": "Chinese",
"target_lang": "English",
"terms": [
{
"source": "生物特徵辨識感應器",
"target": "biological sensor"
},
{
"source": "身體健康情況",
"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)# ======= 重要提示 =======
# 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# === 執行時請刪除該注釋 ====
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": "而這套生物特徵辨識感應器運用了石墨烯這種新型材料,它的目標物是化學元素,敏銳的“嗅覺”讓它能更深度、準確地體現身體健康情況。"
}
],
"translation_options": {
"source_lang": "Chinese",
"target_lang": "English",
"terms": [
{
"source": "生物特徵辨識感應器",
"target": "biological sensor"
},
{
"source": "身體健康情況",
"target": "health status of the body"
}
]
}
}'響應樣本
加入術語後,翻譯結果與傳入的術語一致:“生物特徵辨識感應器”(biological sensor)和“身體健康情況”(the health status of the body)。
--- [不使用 terms] 的翻譯結果 ---
This set of biosensors uses graphene, a new material, whose target substance is chemical elements. Its sensitive "sense of smell" allows it to more deeply and accurately reflect one's health condition.
==================================================
--- [使用 terms] 的翻譯結果 ---
This biological sensor uses a new material called graphene. Its target is chemical elements, and its sensitive "sense of smell" enables it to reflect the health status of the body more deeply and accurately.DashScope
請求樣本
import os
import dashscope
# 如果使用華北2(北京)地區的模型,需要將base_url替換為:https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
{
"role": "user",
"content": "而這套生物特徵辨識感應器運用了石墨烯這種新型材料,它的目標物是化學元素,敏銳的“嗅覺”讓它能更深度、準確地體現身體健康情況。"
}
]
translation_options = {
"source_lang": "Chinese",
"target_lang": "English",
"terms": [
{
"source": "生物特徵辨識感應器",
"target": "biological sensor"
},
{
"source": "身體健康情況",
"target": "health status of the body"
}
]
}
response = dashscope.Generation.call(
# 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:api_key="sk-xxx",
api_key=os.getenv('DASHSCOPE_API_KEY'),
model="qwen-mt-turbo", # 此處以qwen-mt-turbo為例,可按需更換模型名稱
messages=messages,
result_format='message',
translation_options=translation_options
)
print(response.output.choices[0].message.content)// DashScope SDK 版本需要不低於 2.20.6
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 {
// 以下為新加坡地區url,若使用北京地區的模型,需將url替換為: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("而這套生物特徵辨識感應器運用了石墨烯這種新型材料,它的目標物是化學元素,敏銳的“嗅覺”讓它能更深度、準確地體現身體健康情況。")
.build();
Term term1 = Term.builder()
.source("生物特徵辨識感應器")
.target("biological sensor")
.build();
Term term2 = Term.builder()
.source("身體健康情況")
.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("錯誤資訊:"+e.getMessage());
}
System.exit(0);
}
}# ======= 重要提示 =======
# 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
# === 執行時請刪除該注釋 ====
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": "而這套生物特徵辨識感應器運用了石墨烯這種新型材料,它的目標物是化學元素,敏銳的“嗅覺”讓它能更深度、準確地體現身體健康情況。",
"role": "user"
}
]
},
"parameters": {
"translation_options": {
"source_lang": "Chinese",
"target_lang": "English",
"terms": [
{
"source": "生物特徵辨識感應器",
"target": "biological sensor"
},
{
"source": "身體健康情況",
"target": "health status of the body"
}
]
}
}'響應樣本
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. 翻譯記憶
如果您希望模型參考特定的翻譯風格或句式,可通過 tm_list 欄位提供“源文-譯文”句對作為樣本。模型將在本次翻譯任務中模仿這些樣本的風格。
定義翻譯記憶
您需要建立一個已翻譯句子的JSON數組
tm_list,每個JSON對象包含源語句與對應的已翻譯的語句,格式如下:{ "source": "源語句", "target": "已翻譯的語句" }傳入翻譯記憶
通過
translation_options參數傳入翻譯記憶數組。
可參考以下代碼實現翻譯記憶功能。
OpenAI相容
請求樣本
import os
from openai import OpenAI
client = OpenAI(
# 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
# 如果使用華北2(北京)地區的模型,需要將base_url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
messages = [
{
"role": "user",
"content": "通過如下命令可以看出安裝thrift的版本資訊;"
}
]
translation_options = {
"source_lang": "Chinese",
"target_lang": "English",
"tm_list": [
{
"source": "您可以通過如下方式查看叢集的核心版本資訊:",
"target": "You can use one of the following methods to query the engine version of a cluster:"
},
{
"source": "我們雲HBase的thrift環境是0.9.0,所以建議用戶端的版本也為 0.9.0,可以從這裡下載thrift的0.9.0 版本,下載的源碼包我們後面會用到,這裡需要先安裝thrift編譯環境,對於源碼安裝可以參考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": "您可以通過PyPI來安裝SDK,安裝命令如下:",
"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)# ======= 重要提示 =======
# 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# === 執行時請刪除該注釋 ====
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": "通過如下命令可以看出安裝thrift的版本資訊;"
}
],
"translation_options": {
"source_lang": "Chinese",
"target_lang": "English",
"tm_list":[
{"source": "您可以通過如下方式查看叢集的核心版本資訊:", "target": "You can use one of the following methods to query the engine version of a cluster:"},
{"source": "我們雲HBase的thrift環境是0.9.0,所以建議用戶端的版本也為 0.9.0,可以從這裡下載thrift的0.9.0 版本,下載的源碼包我們後面會用到,這裡需要先安裝thrift編譯環境,對於源碼安裝可以參考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": "您可以通過PyPI來安裝SDK,安裝命令如下:", "target": "You can run the following command in Python Package Index (PyPI) to install Elastic Container Instance SDK for Python:"}
]
}
}'響應樣本
You can run the following command to view the version of Thrift that is installed:DashScope
請求樣本
import os
import dashscope
# 如果使用華北2(北京)地區的模型,需要將base_url替換為:https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
{
"role": "user",
"content": "通過如下命令可以看出安裝thrift的版本資訊;"
}
]
translation_options = {
"source_lang": "Chinese",
"target_lang": "English",
"tm_list": [
{
"source": "您可以通過如下方式查看叢集的核心版本資訊:",
"target": "You can use one of the following methods to query the engine version of a cluster:"
},
{
"source": "我們雲HBase的thrift環境是0.9.0,所以建議用戶端的版本也為 0.9.0,可以從這裡下載thrift的0.9.0 版本,下載的源碼包我們後面會用到,這裡需要先安裝thrift編譯環境,對於源碼安裝可以參考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": "您可以通過PyPI來安裝SDK,安裝命令如下:",
"target": "You can run the following command in Python Package Index (PyPI) to install Elastic Container Instance SDK for Python:"
}
]}
response = dashscope.Generation.call(
# 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:api_key="sk-xxx",
api_key=os.getenv('DASHSCOPE_API_KEY'),
model="qwen-mt-turbo", # 此處以qwen-mt-turbo為例,可按需更換模型名稱
messages=messages,
result_format='message',
translation_options=translation_options
)
print(response.output.choices[0].message.content)// DashScope SDK 版本需要不低於 2.20.6
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 {
// 以下為新加坡地區url,若使用北京地區的模型,需將url替換為: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("通過如下命令可以看出安裝thrift的版本資訊;")
.build();
Tm tm1 = Tm.builder()
.source("您可以通過如下方式查看叢集的核心版本資訊:")
.target("You can use one of the following methods to query the engine version of a cluster:")
.build();
Tm tm2 = Tm.builder()
.source("我們雲HBase的thrift環境是0.9.0,所以建議用戶端的版本也為 0.9.0,可以從這裡下載thrift的0.9.0 版本,下載的源碼包我們後面會用到,這裡需要先安裝thrift編譯環境,對於源碼安裝可以參考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("您可以通過PyPI來安裝SDK,安裝命令如下:")
.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("錯誤資訊:"+e.getMessage());
}
System.exit(0);
}
}# ======= 重要提示 =======
# 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
# === 執行時請刪除該注釋 ====
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": "通過如下命令可以看出安裝thrift的版本資訊;",
"role": "user"
}
]
},
"parameters": {
"translation_options": {
"source_lang": "Chinese",
"target_lang": "English",
"tm_list":[
{"source": "您可以通過如下方式查看叢集的核心版本資訊:", "target": "You can use one of the following methods to query the engine version of a cluster:"},
{"source": "我們雲HBase的thrift環境是0.9.0,所以建議用戶端的版本也為 0.9.0,可以從這裡下載thrift的0.9.0 版本,下載的源碼包我們後面會用到,這裡需要先安裝thrift編譯環境,對於源碼安裝可以參考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": "您可以通過PyPI來安裝SDK,安裝命令如下:", "target": "You can run the following command in Python Package Index (PyPI) to install Elastic Container Instance SDK for Python:"}
]
}
}'響應樣本
You can use the following commands to check the version information of thrift installed; 領域提示
如果您希望翻譯的風格更符合某個領域的特性,如法律、政務領域翻譯用語應當嚴肅正式,社交領域用語應當口語化,可以通過translation_options參數傳入領域提示句。
當前qwen-mt-lite模型不支援領域提示功能。
領域提示句當前只支援英文。
OpenAI相容
請求樣本
import os
from openai import OpenAI
client = OpenAI(
# 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
# 如果使用華北2(北京)地區的模型,需要將base_url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
messages = [
{
"role": "user",
"content": "第二個SELECT語句返回一個數字,表示在沒有LIMIT子句的情況下,第一個SELECT語句返回了多少行。"
}
]
# --- 第一次請求:不使用 domains 參數 ---
print("--- [不使用 domains] 的翻譯結果 ---")
translation_options_without_domains = {
"source_lang": "Chinese",
"target_lang": "English",
}
completion_without_domains = client.chat.completions.create(
model="qwen-mt-plus", # 注意:qwen-mt-lite不支援領域提示
messages=messages,
extra_body={
"translation_options": translation_options_without_domains
}
)
print(completion_without_domains.choices[0].message.content)
print("\n" + "="*50 + "\n") # 用於分割,方便對比
# --- 第二次請求:使用 domains 參數 (您的原始代碼) ---
print("--- [使用 domains] 的翻譯結果 ---")
translation_options_with_domains = {
"source_lang": "Chinese",
"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)# ======= 重要提示 =======
# 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# === 執行時請刪除該注釋 ====
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": "第二個SELECT語句返回一個數字,表示在沒有LIMIT子句的情況下,第一個SELECT語句返回了多少行。"
}
],
"translation_options": {
"source_lang": "Chinese",
"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."
}
}'響應樣本
--- [不使用 domains] 的翻譯結果 ---
The second SELECT statement returns a number indicating how many rows the first SELECT statement would return without the LIMIT clause.
==================================================
--- [使用 domains] 的翻譯結果 ---
The second SELECT statement returns a number that indicates how many rows the first SELECT statement would have returned if it had not included a LIMIT clause.DashScope
請求樣本
import os
import dashscope
# 如果使用華北2(北京)地區的模型,需要將base_url替換為:https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
{
"role": "user",
"content": "第二個SELECT語句返回一個數字,表示在沒有LIMIT子句的情況下,第一個SELECT語句返回了多少行。"
}
]
translation_options = {
"source_lang": "Chinese",
"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(
# 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:api_key="sk-xxx",
api_key=os.getenv('DASHSCOPE_API_KEY'),
model="qwen-mt-turbo", # 注意:qwen-mt-lite不支援領域提示
messages=messages,
result_format='message',
translation_options=translation_options
)
print(response.output.choices[0].message.content)// DashScope SDK 版本需要不低於 2.20.6
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,若使用北京地區的模型,需將url替換為: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("第二個SELECT語句返回一個數字,表示在沒有LIMIT子句的情況下,第一個SELECT語句返回了多少行。")
.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"))
// 注意:qwen-mt-lite不支援領域提示
.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("錯誤資訊:"+e.getMessage());
}
System.exit(0);
}
}# ======= 重要提示 =======
# 如果使用華北2(北京)地區的模型,需要將url替換為:https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
# === 執行時請刪除該注釋 ====
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": "第二個SELECT語句返回一個數字,表示在沒有LIMIT子句的情況下,第一個SELECT語句返回了多少行。",
"role": "user"
}
]
},
"parameters": {
"translation_options": {
"source_lang": "Chinese",
"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."}
}
}'響應樣本
The second SELECT statement returns a number that indicates how many rows were returned by the first SELECT statement without a LIMIT clause. 自訂提示詞
Qwen-MT 支援通過自訂提示詞(如指定語種、風格)引導翻譯。此方式與 translation_options 參數互斥,若同時使用,translation_options 的配置可能不生效。
為獲得最佳翻譯效果,推薦使用 translation_options 參數配置翻譯選項。以法律領域的漢譯英翻譯情境為例:
OpenAI相容
import os
from openai import OpenAI
client = OpenAI(
# 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
# 如果使用華北2(北京)地區的模型,需要將base_url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
prompt_template = """
# 角色
你是一名專業的法律翻譯專家,精通中文和英文,尤其擅長處理商業合約和法律檔案。
# 任務
我需要你將以下中文法律文本翻譯成專業、精準、正式的英文。
# 翻譯要求
1. **忠實原文**:嚴格按照原文的含義和法律意圖進行翻譯,不得添加或刪減資訊。
2. **術語精準**:使用英美法系(Common law)通用的標準法律術語。例如,“甲方”應翻譯為 "Party A",“乙方”應翻譯為 "Party B",“不可抗力”應翻譯為 "Force Majeure"。
3. **語氣正式**:保持法律檔案固有的嚴謹、客觀和正式的語體。
4. **語句清晰**:譯文必須清晰、無歧義,符合英文法律文書的表達習慣。
5. **格式保留**:保持原文的段落、編號和基本格式。
# 待翻譯文本
{text_to_translate}
"""
# --- 2. 準備待翻譯的法律文本 ---
chinese_legal_text = "本合約自雙方簽字蓋章之日起生效,有效期間為一年。"
final_prompt = prompt_template.format(text_to_translate=chinese_legal_text)
# --- 3. 構建messages ---
messages = [{"role": "user", "content": final_prompt}]
# --- 4. 發起API請求 ---
completion = client.chat.completions.create(model="qwen-mt-plus", messages=messages)
# --- 5. 列印模型的翻譯結果 ---
translation_result = completion.choices[0].message.content
print(translation_result)import OpenAI from 'openai';
const client = new OpenAI({
apiKey: process.env.DASHSCOPE_API_KEY,
// 如果使用華北2(北京)地區的模型,需要將base_url替換為:https://dashscope.aliyuncs.com/compatible-mode/v1
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
});
const promptTemplate = `
# 角色
你是一名專業的法律翻譯專家,精通中文和英文,尤其擅長處理商業合約和法律檔案。
# 任務
我需要你將以下中文法律文本翻譯成專業、精準、正式的英文。
# 翻譯要求
1. **忠實原文**:嚴格按照原文的含義和法律意圖進行翻譯,不得添加或刪減資訊。
2. **術語精準**:使用英美法系(Common law)通用的標準法律術語。例如,“甲方”應翻譯為 "Party A",“乙方”應翻譯為 "Party B",“不可抗力”應翻譯為 "Force Majeure"。
3. **語氣正式**:保持法律檔案固有的嚴謹、客觀和正式的語體。
4. **語句清晰**:譯文必須清晰、無歧義,符合英文法律文書的表達習慣。
5. **格式保留**:保持原文的段落、編號和基本格式。
# 待翻譯文本
{text_to_translate}
`;
const chineseLegalText = "本合約自雙方簽字蓋章之日起生效,有效期間為一年。";
const finalPrompt = promptTemplate.replace('{text_to_translate}', chineseLegalText);
const messages = [{"role": "user", "content": finalPrompt}];
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();響應樣本
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
請求樣本
import os
import dashscope
# 如果使用華北2(北京)地區的模型,需要將base_url替換為:https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
prompt_template = """
# 角色
你是一名專業的法律翻譯專家,精通中文和英文,尤其擅長處理商業合約和法律檔案。
# 任務
我需要你將以下中文法律文本翻譯成專業、精準、正式的英文。
# 翻譯要求
1. **忠實原文**:嚴格按照原文的含義和法律意圖進行翻譯,不得添加或刪減資訊。
2. **術語精準**:使用英美法系(Common law)通用的標準法律術語。例如,“甲方”應翻譯為 "Party A",“乙方”應翻譯為 "Party B",“不可抗力”應翻譯為 "Force Majeure"。
3. **語氣正式**:保持法律檔案固有的嚴謹、客觀和正式的語體。
4. **語句清晰**:譯文必須清晰、無歧義,符合英文法律文書的表達習慣。
5. **格式保留**:保持原文的段落、編號和基本格式。
# 待翻譯文本
{text_to_translate}
"""
# --- 2. 準備待翻譯的法律文本 ---
chinese_legal_text = "本合約自雙方簽字蓋章之日起生效,有效期間為一年。"
final_prompt = prompt_template.format(text_to_translate=chinese_legal_text)
# --- 3. 構建messages ---
messages = [
{
"role": "user",
"content": final_prompt
}
]
response = dashscope.Generation.call(
# 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為: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)// DashScope SDK 版本需要不低於 2.20.6
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 {
// 以下為新加坡地區url,若使用北京地區的模型,需將url替換為:https://dashscope.aliyuncs.com/api/v1
Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
String promptTemplate = "# 角色\n" +
"你是一名專業的法律翻譯專家,精通中文和英文,尤其擅長處理商業合約和法律檔案。\n\n" +
"# 任務\n" +
"我需要你將以下中文法律文本翻譯成專業、精準、正式的英文。\n\n" +
"# 翻譯要求\n" +
"1. **忠實原文**:嚴格按照原文的含義和法律意圖進行翻譯,不得添加或刪減資訊。\n" +
"2. **術語精準**:使用英美法系(Common law)通用的標準法律術語。例如,“甲方”應翻譯為 \"Party A\",“乙方”應翻譯為 \"Party B\",“不可抗力”應翻譯為 \"Force Majeure\"。\n" +
"3. **語氣正式**:保持法律檔案固有的嚴謹、客觀和正式的語體。\n" +
"4. **語句清晰**:譯文必須清晰、無歧義,符合英文法律文書的表達習慣。\n" +
"5. **格式保留**:保持原文的段落、編號和基本格式。\n\n" +
"# 待翻譯文本\n" +
"{text_to_translate}";
String chineseLegalText = "本合約自雙方簽字蓋章之日起生效,有效期間為一年。";
String finalPrompt = promptTemplate.replace("{text_to_translate}", chineseLegalText);
Message userMsg = Message.builder()
.role(Role.USER.getValue())
.content(finalPrompt)
.build();
GenerationParam param = GenerationParam.builder()
// 若沒有配置環境變數,請用阿里雲百鍊API Key將下行替換為:.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("錯誤資訊:"+e.getMessage());
e.printStackTrace();
}
}
}響應樣本
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.應用於生產環境
控制輸入 Token 數量
Qwen-MT 模型的輸入 Token 上限為 8,192。若輸入內容較長,可參考以下策略控制輸入 Token 數:
分段翻譯:翻譯長文本時請分段處理。按語義(如段落或完整句子)分割文本,而非按字元數。這能保證上下文完整性,提升翻譯品質。
傳入最相關的參考內容:術語、翻譯記憶和領域提示會作為輸入 Token 拼接到提示詞中。請僅提供與當前任務最相關的參考內容,避免使用龐大、通用的列表。
根據情境設定
source_lang在不確定翻譯原文的語種時(如社交聊天情境時存在多語言文本)可設定
source_lang為auto,模型將自動識別源語種。在語種固定、準確度要求高的情境(如技術文檔或操作手冊),建議始終指定
source_lang,明確指定源語種可提升翻譯準確率。
支援的語言
下表中的英文名或代碼用於在發起請求時指定。
當不確定源語種時,可為source_lang參數賦值auto以自動檢測。
qwen-mt-plus/flash/turbo 支援的語言 (92種)
語言 | 英文名 | 代碼 |
英語 | English | en |
簡體中文 | Chinese | zh |
繁體中文 | Traditional Chinese | zh_tw |
俄語 | Russian | ru |
日語 | Japanese | ja |
韓語 | Korean | ko |
西班牙語 | Spanish | es |
法語 | French | fr |
葡萄牙語 | Portuguese | pt |
德語 | German | de |
意大利語 | Italian | it |
泰語 | Thai | th |
越南語 | Vietnamese | vi |
印尼語 | Indonesian | id |
馬來語 | Malay | ms |
阿拉伯語 | Arabic | ar |
印地語 | Hindi | hi |
希伯來語 | Hebrew | he |
緬甸語 | Burmese | my |
泰米爾語 | Tamil | ta |
烏爾都語 | Urdu | ur |
孟加拉語 | Bengali | bn |
波蘭語 | Polish | pl |
荷蘭語 | Dutch | nl |
羅馬尼亞語 | Romanian | ro |
土耳其語 | Turkish | tr |
高棉語 | Khmer | km |
寮國語 | Lao | lo |
粵語 | Cantonese | yue |
捷克語 | Czech | cs |
希臘語 | Greek | el |
瑞典語 | Swedish | sv |
匈牙利語 | Hungarian | hu |
丹麥語 | Danish | da |
芬蘭語 | Finnish | fi |
烏克蘭語 | Ukrainian | uk |
保加利亞語 | Bulgarian | bg |
塞爾維亞語 | Serbian | sr |
泰盧固語 | Telugu | te |
南非荷蘭語 | Afrikaans | af |
亞美尼亞語 | Armenian | hy |
阿薩姆語 | Assamese | as |
阿斯圖里亞斯語 | Asturian | ast |
巴斯克語 | Basque | eu |
白俄羅斯語 | Belarusian | be |
波斯尼亞語 | Bosnian | bs |
加泰羅尼亞語 | Catalan | ca |
宿務語 | Cebuano | ceb |
克羅地亞語 | Croatian | hr |
埃及阿拉伯語 | Egyptian Arabic | arz |
愛沙尼亞語 | Estonian | et |
加利西亞語 | Galician | gl |
格魯吉亞語 | Georgian | ka |
古吉拉特語 | Gujarati | gu |
冰島語 | Icelandic | is |
爪哇語 | Javanese | jv |
卡納達語 | Kannada | kn |
哈薩克語 | Kazakh | kk |
拉脫維亞語 | Latvian | lv |
立陶宛語 | Lithuanian | lt |
盧森堡語 | Luxembourgish | lb |
馬其頓語 | Macedonian | mk |
馬加希語 | Maithili | mai |
馬爾他語 | Maltese | mt |
馬拉地語 | Marathi | mr |
美索不達米亞阿拉伯語 | Mesopotamian Arabic | acm |
摩洛哥阿拉伯語 | Moroccan Arabic | ary |
內志阿拉伯語 | Najdi Arabic | ars |
尼泊爾語 | Nepali | ne |
北阿塞拜疆語 | North Azerbaijani | az |
北黎凡特阿拉伯語 | North Levantine Arabic | apc |
北烏茲別克語 | Northern Uzbek | uz |
書面語挪威語 | Norwegian Bokmål | nb |
新挪威語 | Norwegian Nynorsk | nn |
奧克語 | Occitan | oc |
奧裡亞語 | Odia | or |
邦阿西楠語 | Pangasinan | pag |
西西里語 | Sicilian | scn |
信德語 | Sindhi | sd |
僧伽羅語 | Sinhala | si |
斯洛伐克語 | Slovak | sk |
斯洛文尼亞語 | Slovenian | sl |
南黎凡特阿拉伯語 | South Levantine Arabic | ajp |
斯瓦希裡語 | Swahili | sw |
他加祿語 | Tagalog | tl |
塔伊茲-亞丁阿拉伯語 | Ta’izzi-Adeni Arabic | acq |
托斯克阿爾巴尼亞語 | Tosk Albanian | sq |
突尼斯阿拉伯語 | Tunisian Arabic | aeb |
威尼斯語 | Venetian | vec |
瓦萊語 | Waray | war |
威爾士語 | Welsh | cy |
西波斯語 | Western Persian | fa |
qwen-mt-lite 支援的語言 (31種)
語言 | 英文名 | 代碼 |
英語 | English | en |
簡體中文 | Chinese | zh |
繁體中文 | Traditional Chinese | zh_tw |
俄語 | Russian | ru |
日語 | Japanese | ja |
韓語 | Korean | ko |
西班牙語 | Spanish | es |
法語 | French | fr |
葡萄牙語 | Portuguese | pt |
德語 | German | de |
意大利語 | Italian | it |
泰語 | Thai | th |
越南語 | Vietnamese | vi |
印尼語 | Indonesian | id |
馬來語 | Malay | ms |
阿拉伯語 | Arabic | ar |
印地語 | Hindi | hi |
希伯來語 | Hebrew | he |
烏爾都語 | Urdu | ur |
孟加拉語 | Bengali | bn |
波蘭語 | Polish | pl |
荷蘭語 | Dutch | nl |
土耳其語 | Turkish | tr |
高棉語 | Khmer | km |
捷克語 | Czech | cs |
瑞典語 | Swedish | sv |
匈牙利語 | Hungarian | hu |
丹麥語 | Danish | da |
芬蘭語 | Finnish | fi |
他加祿語 | Tagalog | tl |
波斯語 | Persian | fa |
API參考
Qwen-MT 模型的輸入與輸出參數請參考Qwen-MT 翻譯模型。