跳转到主要内容
专用模型

机器翻译(Qwen-MT)

支持 92 种语言及术语干预

Qwen-MT 是基于 Qwen3 微调的机器翻译模型,支持 92 种语言。它提供术语干预、领域提示和翻译记忆功能,帮助提升翻译质量。

工作原理

  1. 提供待翻译文本messages 数组中只能包含一条消息,role 设为 usercontent 为待翻译的文本。
  2. 设置语言:在 translation_options 参数中设置源语言(source_lang)和目标语言(target_lang)。支持的语言列表见支持的语言。如需自动检测源语言,将 source_lang 设为 auto
指定源语言可以提高翻译准确性。您也可以通过自定义提示词设置语言。
  • OpenAI 兼容
  • DashScope
# 导入依赖并创建客户端...
completion = client.chat.completions.create(
  model="qwen-mt-flash",    # 选择模型
  # messages 参数只能包含一条 role 为 user 的消息,content 为待翻译文本。
  messages=[{"role": "user", "content": "No me reí después de ver este video"}],
  # translation_options 不是标准 OpenAI 参数,需通过 extra_body 传递。
  extra_body={"translation_options": {"source_lang": "auto", "target_lang": "English"}},
)
使用限制
  • 仅支持单轮翻译:该模型专为翻译任务设计,不支持多轮对话。
  • 不支持系统消息:不能通过 system 角色的消息设置全局行为,请在 translation_options 参数中定义翻译配置。

模型选择

  • 通用场景推荐选择 qwen-mt-flash,在质量、速度和成本之间取得平衡,支持增量流式输出。
  • 对专业领域翻译质量要求最高时,选择 qwen-mt-plus
  • 对简单实时场景需要最快响应速度时,选择 qwen-mt-lite
模型适用场景质量速度成本支持语言数支持增量流式输出
qwen-mt-plus翻译质量要求高的场景,如专业领域、正式文档、学术论文、技术报告最佳标准92不支持
qwen-mt-flash通用首选。 适用于网站/应用内容、产品描述、日常沟通、博客文章等场景良好92支持
qwen-mt-turbo该模型将不再更新,请使用 flash 替代。一般92不支持
qwen-mt-lite简单、对延迟敏感的场景,如实时聊天、直播弹幕翻译基础最快最低31支持
模型详情、定价和限流,请参见模型广场

快速开始

获取 API Key将其设置为环境变量。如需使用 SDK,请先安装 SDK
  • OpenAI 兼容
  • DashScope
请求示例
import os
from openai import OpenAI

client = OpenAI(
  # 若未配置环境变量,请将下行替换为您的 API Key:api_key="sk-xxx",
  api_key=os.getenv("DASHSCOPE_API_KEY"),
  base_url="https://dashscope.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)
响应示例
I didn't laugh after watching this video.

流式输出

流式输出的通用概念(SSE 协议、如何启用流式、计费和 Token 用量),请参见流式输出。本节仅介绍机器翻译特有的流式行为。
在翻译调用中添加 stream: true 即可启用流式输出。与标准流式输出的唯一区别是需要包含 translation_options
completion = client.chat.completions.create(
  model="qwen-mt-flash",
  messages=[{"role": "user", "content": "No me reí después de ver este video"}],
  stream=True,
  stream_options={"include_usage": True},
  extra_body={"translation_options": {"source_lang": "auto", "target_lang": "English"}},
)
for chunk in completion:
  if chunk.choices:
    print(chunk.choices[0].delta.content or "", end="", flush=True)
模型差异
模型增量流式输出
qwen-mt-flash, qwen-mt-lite支持 — 每个 chunk 仅包含新生成的内容
qwen-mt-plus, qwen-mt-turbo不支持 — 每个 chunk 包含截至目前生成的全部内容
DashScope 接口中,在支持的模型上设置 incremental_output=True 可启用增量流式输出。

提升翻译质量

在专业翻译任务中,可能遇到以下问题:
  • 术语不一致:产品名称或行业术语翻译不正确。
  • 风格不匹配:译文风格不符合特定领域(如法律、营销)的要求。
您可以通过术语干预、翻译记忆和领域提示来解决这些问题。

术语干预

当文本包含品牌名称、产品名称或技术术语时,为确保翻译的准确性和一致性,您可以在 terms 字段中提供术语表,指定模型使用您定义的翻译。 按以下步骤定义和传递术语:
1

定义术语

创建一个 JSON 数组并赋值给 terms 字段。数组中每个对象表示一个术语,格式如下:
{
  "source": "原文术语",
  "target": "预设译文"
}
2

传递术语

通过 translation_options 参数传递定义的 terms 数组。
  • OpenAI 兼容
  • DashScope
请求示例
import os
from openai import OpenAI

client = OpenAI(
  # 若未配置环境变量,请将下行替换为您的 API Key:api_key="sk-xxx",
  api_key=os.getenv("DASHSCOPE_API_KEY"),
  base_url="https://dashscope.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."
  }
]

# --- 第一次请求:不使用 terms 参数 ---
print("--- [不使用术语干预的翻译结果] ---")
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("--- [使用术语干预的翻译结果] ---")
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)
响应示例添加术语后,翻译结果与您传入的术语一致:"biological sensor" 和 "health status of the body"。
--- [不使用术语干预的翻译结果] ---
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.

==================================================
--- [使用术语干预的翻译结果] ---
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.

翻译记忆

如需指定模型使用特定的翻译风格或句式,您可以在 tm_list 字段中提供源语言-目标语言的句对作为示例。模型会模仿这些示例的风格来完成当前翻译任务。
1

定义翻译记忆

创建一个名为 tm_list 的 JSON 数组。数组中每个 JSON 对象包含一个源语言句子及其对应的译文,格式如下:
{
  "source": "源语言语句",
  "target": "对应译文"
}
2

传递翻译记忆

通过 translation_options 参数传递翻译记忆数组。
  • OpenAI 兼容
  • DashScope
请求示例
import os
from openai import OpenAI

client = OpenAI(
  # 若未配置环境变量,请将下行替换为您的 API Key:api_key="sk-xxx",
  api_key=os.getenv("DASHSCOPE_API_KEY"),
  base_url="https://dashscope.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)
响应示例
You can run the following command to view the version of Thrift that is installed:

领域提示

如需让翻译风格适应特定领域,您可以通过 translation_options 参数传递领域提示。例如,法律或政务领域的翻译应使用正式用语,而社交媒体的翻译应口语化。
领域提示目前仅支持英文。
  • OpenAI 兼容
  • DashScope
请求示例
import os
from openai import OpenAI

client = OpenAI(
  # 若未配置环境变量,请将下行替换为您的 API Key:api_key="sk-xxx",
  api_key=os.getenv("DASHSCOPE_API_KEY"),
  base_url="https://dashscope.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."
  }
]

# --- 第一次请求:不使用 domains 参数 ---
print("--- [不使用领域提示的翻译结果] ---")
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") # 对比分隔线

# --- 第二次请求:使用 domains 参数 ---
print("--- [使用领域提示的翻译结果] ---")
translation_options_with_domains = {
  "source_lang": "auto",
  "target_lang": "English",
  "domains": "The sentence is from a 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)
响应示例
--- [不使用领域提示的翻译结果] ---
The second SELECT statement returns a number indicating how many rows the first SELECT statement would return without the LIMIT clause.

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

--- [使用领域提示的翻译结果] ---
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.

自定义提示词

您可以在 Qwen-MT 中使用自定义提示词来指定语言、风格等细节。此方式与 translation_options 参数互斥——如果同时使用,translation_options 可能不会生效。
为获得最佳翻译效果,建议使用 translation_options 配置翻译设置。
示例:将西班牙语翻译为英语(法律领域):
  • OpenAI 兼容
  • DashScope
请求示例
import os
from openai import OpenAI

client = OpenAI(
  # 若未配置环境变量,请将下行替换为您的 API Key:api_key="sk-xxx",
  api_key=os.getenv("DASHSCOPE_API_KEY"),
  base_url="https://dashscope.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. 准备待翻译的法律文本 ---
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. 构建 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)
响应示例
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 模型的最大输入限制为 8,192 个 Token。对于长内容,可采用以下策略控制输入 Token 数:
    • 分段翻译:翻译长文本时,按语义单元(如段落或完整句子)而非字符数分段处理,以保持上下文完整性,提高翻译质量。
    • 提供最相关的参考内容:术语、翻译记忆和领域提示都会作为 Token 加入输入提示词。为优化 Token 用量,请只提供与当前任务最相关的参考内容,避免使用大而全的通用列表。
  • 根据场景设置 source_lang
    • 源语言不确定时(如社交聊天中包含多语言文本),将 source_lang 设为 auto,由模型自动识别源语言。
    • 语言固定且准确性要求高的场景(如技术文档、操作手册),始终明确指定 source_lang,可以提高翻译准确性。

支持的语言

发送请求时,请使用下表中的 English nameCode
如果不确定源语言,可以将 source_lang 参数设为 auto 进行自动检测。
  • qwen-mt-plus/flash/turbo(92 种语言)
  • qwen-mt-lite(31 种语言)
语言English nameCode
英语Englishen
简体中文Chinesezh
繁体中文Traditional Chinesezh_tw
俄语Russianru
日语Japaneseja
韩语Koreanko
西班牙语Spanishes
法语Frenchfr
葡萄牙语Portuguesept
德语Germande
意大利语Italianit
泰语Thaith
越南语Vietnamesevi
印度尼西亚语Indonesianid
马来语Malayms
阿拉伯语Arabicar
印地语Hindihi
希伯来语Hebrewhe
缅甸语Burmesemy
泰米尔语Tamilta
乌尔都语Urduur
孟加拉语Bengalibn
波兰语Polishpl
荷兰语Dutchnl
罗马尼亚语Romanianro
土耳其语Turkishtr
高棉语Khmerkm
老挝语Laolo
粤语Cantoneseyue
捷克语Czechcs
希腊语Greekel
瑞典语Swedishsv
匈牙利语Hungarianhu
丹麦语Danishda
芬兰语Finnishfi
乌克兰语Ukrainianuk
保加利亚语Bulgarianbg
塞尔维亚语Serbiansr
泰卢固语Telugute
南非荷兰语Afrikaansaf
亚美尼亚语Armenianhy
阿萨姆语Assameseas
阿斯图里亚斯语Asturianast
巴斯克语Basqueeu
白俄罗斯语Belarusianbe
波斯尼亚语Bosnianbs
加泰罗尼亚语Catalanca
宿务语Cebuanoceb
克罗地亚语Croatianhr
埃及阿拉伯语Egyptian Arabicarz
爱沙尼亚语Estonianet
加利西亚语Galiciangl
格鲁吉亚语Georgianka
古吉拉特语Gujaratigu
冰岛语Icelandicis
爪哇语Javanesejv
卡纳达语Kannadakn
哈萨克语Kazakhkk
拉脱维亚语Latvianlv
立陶宛语Lithuanianlt
卢森堡语Luxembourgishlb
马其顿语Macedonianmk
迈蒂利语Maithilimai
马耳他语Maltesemt
马拉地语Marathimr
美索不达米亚阿拉伯语Mesopotamian Arabicacm
摩洛哥阿拉伯语Moroccan Arabicary
内志阿拉伯语Najdi Arabicars
尼泊尔语Nepaline
北阿塞拜疆语North Azerbaijaniaz
北黎凡特阿拉伯语North Levantine Arabicapc
北乌兹别克语Northern Uzbekuz
书面挪威语Norwegian Bokmalnb
新挪威语Norwegian Nynorsknn
奥克西坦语Occitanoc
奥里亚语Odiaor
邦阿西楠语Pangasinanpag
西西里语Sicilianscn
信德语Sindhisd
僧伽罗语Sinhalasi
斯洛伐克语Slovaksk
斯洛文尼亚语Sloveniansl
南黎凡特阿拉伯语South Levantine Arabicajp
斯瓦希里语Swahilisw
他加禄语Tagalogtl
塔伊兹-亚丁阿拉伯语Ta'izzi-Adeni Arabicacq
托斯克阿尔巴尼亚语Tosk Albaniansq
突尼斯阿拉伯语Tunisian Arabicaeb
威尼斯语Venetianvec
瓦瑞语Waraywar
威尔士语Welshcy
西波斯语Western Persianfa

API 参考

API 参数详情请参见: