请求体 | import os
from openai import OpenAI
client = OpenAI(
# 新加坡和北京地域的API Key不同。获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key
# 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
# 以下是北京地域base_url,如果使用新加坡地域的模型,需要将base_url替换为:https://dashscope-intl.aliyuncs.com/compatible-mode/v1
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
# ----------------音频输入 ----------------
messages = [
{
"role": "user",
"content": [
{
"type": "input_audio",
"input_audio": {
"data": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250211/tixcef/cherry.wav",
"format": "wav",
},
}
],
}
]
# ----------------视频输入(需取消注释)----------------
# messages = [
# {
# "role": "user",
# "content": [
# {
# "type": "video_url",
# "video_url": {
# "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4"
# },
# }
# ],
# },
# ]
completion = client.chat.completions.create(
model="qwen3-livetranslate-flash",
messages=messages,
modalities=["text", "audio"],
audio={"voice": "Cherry", "format": "wav"},
stream=True,
stream_options={"include_usage": True},
extra_body={"translation_options": {"source_lang": "zh", "target_lang": "en"}},
)
for chunk in completion:
print(chunk)
import OpenAI from "openai";
const client = new OpenAI({
// 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:apiKey: "sk-xxx",
// 新加坡和北京地域的API Key不同。获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key
apiKey: process.env.DASHSCOPE_API_KEY,
// 以下是北京地域base_url,如果使用新加坡地域的模型,需要将base_url替换为:https://dashscope-intl.aliyuncs.com/compatible-mode/v1
baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1",
});
// ---------------- 音频输入 ----------------
const messages = [
{
role: "user",
content: [
{
type: "input_audio",
input_audio: {
data: "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250211/tixcef/cherry.wav",
format: "wav",
},
},
],
},
];
// ---------------- 视频输入(需取消注释) ----------------
// const messages = [
// {
// role: "user",
// content: [
// {
// type: "video_url",
// video_url: {
// url: "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4",
// },
// },
// ],
// },
// ];
async function main() {
const completion = await client.chat.completions.create({
model: "qwen3-livetranslate-flash",
messages: messages,
modalities: ["text", "audio"],
audio: { voice: "Cherry", format: "wav" },
stream: true,
stream_options: { include_usage: true },
translation_options: { source_lang: "zh", target_lang: "en" },
});
for await (const chunk of completion) {
console.log(JSON.stringify(chunk));
}
}
main();
# ======= 重要提示 =======
# 新加坡和北京地域的API Key不同。获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key
# 以下是北京地域示例,如果使用新加坡地域的模型,需要将请求地址替换为:https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions
# === 执行时请删除该注释 ===
curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-livetranslate-flash",
"messages": [
{
"role": "user",
"content": [
{
"type": "input_audio",
"input_audio": {
"data": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250211/tixcef/cherry.wav",
"format": "wav"
}
}
]
}
],
"modalities": ["text", "audio"],
"audio": {
"voice": "Cherry",
"format": "wav"
},
"stream": true,
"stream_options": {
"include_usage": true
},
"translation_options": {
"source_lang": "zh",
"target_lang": "en"
}
}'
|
model string (必选) 模型名称。支持的模型:qwen3-livetranslate-flash、qwen3-livetranslate-flash-2025-12-01。 |
messages array (必选) 消息数组,用于向大模型传递上下文。仅支持传入一个 User Message。 消息类型 User Message object (必选) 用户消息。 属性 content array (必选) 消息内容。 属性 type string (必选) 可选值: input_audio
输入音频时需设为input_audio。 video_url
输入视频文件时需设为video_url。
input_audio object 输入的音频信息。当type为input_audio时是必选参数。 属性 format string(必选) 输入音频的格式,如mp3、wav等。 video_url object 输入的视频文件信息。当type为video_url时是必选参数。 role string (必选) 用户消息的角色,固定为user。 |
stream boolean (必选) 默认值为 false 是否以流式方式输出回复。模型仅支持流式输出方式调用,仅可设为true。 |
stream_options object (可选) 流式输出的配置项,仅在 stream 为 true 时生效。 属性 include_usage boolean (可选)默认值为 false 是否在最后一个数据块包含Token消耗信息。 可选值: |
modalities array (可选)默认值为["text"] 输出数据的模态。可选值: |
audio object (可选) 输出音频的音色与格式。modalities参数需为["text","audio"]。 属性 voice string (必选) 输出音频的音色。请参见支持的音色。 format string (必选) 输出音频的格式,仅支持设定为wav。 |
max_tokens integer (可选) 用于限制模型输出的最大 Token 数。若生成内容超过此值,响应将被截断。 默认值与最大值均为模型的最大输出长度,请参见模型选型。 |
seed integer (可选) 随机数种子。用于确保在相同输入和参数下生成结果可复现。若调用时传入相同的 seed 且其他参数不变,模型将尽可能返回相同结果。 取值范围:[0,231−1]。 |
temperature float (可选) 默认值为0.000001 采样温度,控制模型生成内容的多样性。temperature越高,生成的内容更多样,反之更确定。 取值范围: [0, 2) 为了翻译的准确性,不建议修改该值。 |
top_p float (可选)默认值为0.8 核采样的概率阈值,控制模型生成内容的多样性。 top_p越高,生成的内容更多样。反之更确定。 取值范围:(0,1.0] 为了翻译的准确性,不建议修改该值。 |
presence_penalty float (可选)默认值为0 控制模型生成文本时的内容重复度。 取值范围:[-2.0, 2.0]。正值降低重复度,负值增加重复度。为了翻译的准确性,不建议修改该值。 |
top_k integer (可选)默认值为1 生成过程中采样候选集的大小。例如,取值为50时,仅将单次生成中得分最高的50个Token组成随机采样的候选集。取值越大,生成的随机性越高;取值越小,生成的确定性越高。取值为None或当top_k大于100时,表示不启用top_k策略,此时仅有top_p策略生效。 取值需要大于或等于0。为了翻译的准确性,不建议修改该值。 该参数非OpenAI标准参数。通过 Python SDK调用时,请放入 extra_body 对象中,配置方式为:extra_body={"top_k": xxx};通过 Node.js SDK 或 HTTP 方式调用时,请作为顶层参数传递。 |
repetition_penalty float (可选)默认值为1.05 模型生成时连续序列中的重复度。提高repetition_penalty时可以降低模型生成的重复度,1.0表示不做惩罚。取值大于0即可。为了翻译的准确性,不建议修改该值。 该参数非OpenAI标准参数。通过 Python SDK调用时,请放入 extra_body 对象中,配置方式为:extra_body={"repetition_penalty": xxx};通过 Node.js SDK 或 HTTP 方式调用时,请作为顶层参数传递。 |
translation_options object (必选) 需配置的翻译参数。 属性 source_lang string (可选) 源语言的英文全称,请参见支持的语种。若不设置,模型会自动识别输入的语种。 target_lang string (必选) 目标语言的英文全称,请参见支持的语种。 该参数非OpenAI标准参数。通过 Python SDK调用时,请放入 extra_body 对象中,配置方式为:extra_body={"translation_options": xxx};通过 Node.js SDK 或 HTTP 方式调用时,请作为顶层参数传递。 |