请求体
POST
/chat/completions
调试
文本输入
Python import os
from openai import OpenAI
client = OpenAI(
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx"
# 新加坡/弗吉尼亚和北京地域的API Key不同。获取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
# 以下为新加坡地域base_url
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
# 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
model="qwen-plus",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "你是谁?"},
],
# extra_body={"enable_thinking": False},
)
print(completion.model_dump_json())
Java // 该代码 OpenAI SDK 版本为 2.6.0
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.chat.completions.ChatCompletion;
import com.openai.models.chat.completions.ChatCompletionCreateParams;
public class Main {
public static void main(String[] args) {
OpenAIClient client = OpenAIOkHttpClient.builder()
// 新加坡/弗吉尼亚和北京地域的API Key不同。获取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
// 以下为新加坡地域base_url
.baseUrl("https://dashscope-intl.aliyuncs.com/compatible-mode/v1")
.build();
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
.addUserMessage("你是谁")
.model("qwen-plus")
.build();
try {
ChatCompletion chatCompletion = client.chat().completions().create(params);
System.out.println(chatCompletion);
} catch (Exception e) {
System.err.println("Error occurred: " + e.getMessage());
e.printStackTrace();
}
}
}
Node.js import OpenAI from "openai";
const openai = new OpenAI(
{
// 若没有配置环境变量,请用百炼API Key将下行替换为:apiKey: "sk-xxx",
// 新加坡/弗吉尼亚和北京地域的API Key不同。获取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
apiKey: process.env.DASHSCOPE_API_KEY,
// 以下为新加坡地域base_url
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
}
);
async function main() {
const completion = await openai.chat.completions.create({
model: "qwen-plus", //此处以qwen-plus为例,可按需更换模型名称。模型列表:https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "你是谁?" }
],
});
console.log(JSON.stringify(completion))
}
main();
Go package main
import (
"context"
"os"
"github.com/openai/openai-go"
"github.com/openai/openai-go/option"
)
func main() {
client := openai.NewClient(
// 新加坡/弗吉尼亚和北京地域的API Key不同。获取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
option.WithAPIKey(os.Getenv("DASHSCOPE_API_KEY")), // defaults to os.LookupEnv("OPENAI_API_KEY")
// 以下为新加坡地域base_url
option.WithBaseURL("https://dashscope-intl.aliyuncs.com/compatible-mode/v1/"),
)
chatCompletion, err := client.Chat.Completions.New(
context.TODO(), openai.ChatCompletionNewParams{
Messages: openai.F(
[]openai.ChatCompletionMessageParamUnion{
openai.UserMessage("你是谁"),
},
),
Model: openai.F("qwen-plus"),
},
)
if err != nil {
panic(err.Error())
}
println(chatCompletion.Choices[0].Message.Content)
}
C#(HTTP) using System.Net.Http.Headers;
using System.Text;
class Program
{
private static readonly HttpClient httpClient = new HttpClient();
static async Task Main(string[] args)
{
// 若没有配置环境变量,请用百炼API Key将下行替换为:string? apiKey = "sk-xxx";
// 新加坡/弗吉尼亚和北京地域的API Key不同。获取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
string? apiKey = Environment.GetEnvironmentVariable("DASHSCOPE_API_KEY");
if (string.IsNullOrEmpty(apiKey))
{
Console.WriteLine("API Key 未设置。请确保环境变量 'DASHSCOPE_API_KEY' 已设置。");
return;
}
// 设置请求 URL 和内容
// 以下为新加坡地域base_urlchat/completions
string url = "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions";
// 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
string jsonContent = @"{
""model"": ""qwen-plus"",
""messages"": [
{
""role"": ""system"",
""content"": ""You are a helpful assistant.""
},
{
""role"": ""user"",
""content"": ""你是谁?""
}
]
}";
// 发送请求并获取响应
string result = await SendPostRequestAsync(url, jsonContent, apiKey);
// 输出结果
Console.WriteLine(result);
}
private static async Task<string> SendPostRequestAsync(string url, string jsonContent, string apiKey)
{
using (var content = new StringContent(jsonContent, Encoding.UTF8, "application/json"))
{
// 设置请求头
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// 发送请求并获取响应
HttpResponseMessage response = await httpClient.PostAsync(url, content);
// 处理响应
if (response.IsSuccessStatusCode)
{
return await response.Content.ReadAsStringAsync();
}
else
{
return $"请求失败: {response.StatusCode}";
}
}
}
}
PHP(HTTP) <?php
// 设置请求的URL
// 以下为新加坡地域base_urlchat/completions
$url = 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions';
// 若没有配置环境变量,请用百炼API Key将下行替换为:$apiKey = "sk-xxx";
// 新加坡/弗吉尼亚和北京地域的API Key不同。获取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
$apiKey = getenv('DASHSCOPE_API_KEY');
// 设置请求头
$headers = [
'Authorization: Bearer '.$apiKey,
'Content-Type: application/json'
];
// 设置请求体
$data = [
// 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
"model" => "qwen-plus",
"messages" => [
[
"role" => "system",
"content" => "You are a helpful assistant."
],
[
"role" => "user",
"content" => "你是谁?"
]
]
];
// 初始化cURL会话
$ch = curl_init();
// 设置cURL选项
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// 执行cURL会话
$response = curl_exec($ch);
// 检查是否有错误发生
if (curl_errno($ch)) {
echo 'Curl error: ' . curl_error($ch);
}
// 关闭cURL资源
curl_close($ch);
// 输出响应结果
echo $response;
?>
curl
新加坡/弗吉尼亚和北京地域的API Key不同。获取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key。若使用北京地域的模型,需将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-plus",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "你是谁?"
}
]
}'
流式输出
更多用法请参见流式输出 。
Python import os
from openai import OpenAI
client = OpenAI(
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx"
# 新加坡/弗吉尼亚和北京地域的API Key不同。获取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-plus", # 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
messages=[{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '你是谁?'}],
stream=True,
stream_options={"include_usage": True}
)
for chunk in completion:
print(chunk.model_dump_json())
Node.js import OpenAI from "openai";
const openai = new OpenAI(
{
// 新加坡/弗吉尼亚和北京地域的API Key不同。获取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
}
);
async function main() {
const completion = await openai.chat.completions.create({
model: "qwen-plus", // 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
messages: [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "你是谁?"}
],
stream: true,
});
for await (const chunk of completion) {
console.log(JSON.stringify(chunk));
}
}
main();
curl
新加坡/弗吉尼亚和北京地域的API Key不同。获取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
如果使用北京地域的模型,请将url替换为:https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions curl --location "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "qwen-plus",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "你是谁?"
}
],
"stream":true
}'
图像输入
关于大模型分析图像的更多用法,请参见图像与视频理解 。
Python import os
from openai import OpenAI
client = OpenAI(
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx"
# 新加坡/弗吉尼亚和北京地域的API Key不同。获取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-vl-plus", # 此处以qwen-vl-plus为例,可按需更换模型名称。模型列表:https://www.alibabacloud.com/help/zh/model-studio/models
messages=[{"role": "user","content": [
{"type": "image_url",
"image_url": {"url": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"}},
{"type": "text", "text": "这是什么"},
]}]
)
print(completion.model_dump_json())
Node.js import OpenAI from "openai";
const openai = new OpenAI(
{
// 新加坡/弗吉尼亚和北京地域的API Key不同。获取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
}
);
async function main() {
const response = await openai.chat.completions.create({
model: "qwen-vl-max", // 此处以qwen-vl-max为例,可按需更换模型名称。模型列表:https://www.alibabacloud.com/help/zh/model-studio/models
messages: [{role: "user",content: [
{ type: "image_url",image_url: {"url": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"}},
{ type: "text", text: "这是什么?" },
]}]
});
console.log(JSON.stringify(response));
}
main();
curl
新加坡/弗吉尼亚和北京地域的API Key不同。获取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
如果使用北京地域的模型,请将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-vl-plus",
"messages": [{
"role": "user",
"content": [
{"type": "image_url","image_url": {"url": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/dog_and_girl.jpeg"}},
{"type": "text","text": "这是什么"}
]}]
}'
视频输入
以下为传入图片列表的示例代码,关于更多用法(如传入视频文件),请参见视觉理解 。
Python import os
from openai import OpenAI
client = OpenAI(
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx"
# 新加坡/弗吉尼亚和北京地域的API Key不同。获取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
# 此处以qwen-vl-max为例,可按需更换模型名称。模型列表:https://www.alibabacloud.com/help/zh/model-studio/models
model="qwen-vl-max",
messages=[{
"role": "user",
"content": [
{
"type": "video",
"video": [
"https://img.alicdn.com/imgextra/i3/O1CN01K3SgGo1eqmlUgeE9b_!!6000000003923-0-tps-3840-2160.jpg",
"https://img.alicdn.com/imgextra/i4/O1CN01BjZvwg1Y23CF5qIRB_!!6000000003000-0-tps-3840-2160.jpg",
"https://img.alicdn.com/imgextra/i4/O1CN01Ib0clU27vTgBdbVLQ_!!6000000007859-0-tps-3840-2160.jpg",
"https://img.alicdn.com/imgextra/i1/O1CN01aygPLW1s3EXCdSN4X_!!6000000005710-0-tps-3840-2160.jpg"]
},
{
"type": "text",
"text": "描述这个视频的具体过程"
}]}]
)
print(completion.model_dump_json())
Node.js // 确保之前在 package.json 中指定了 "type": "module"
import OpenAI from "openai";
const openai = new OpenAI({
// 若没有配置环境变量,请用百炼API Key将下行替换为:apiKey: "sk-xxx",
// 新加坡/弗吉尼亚和北京地域的API Key不同。获取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
});
async function main() {
const response = await openai.chat.completions.create({
// 此处以qwen-vl-max为例,可按需更换模型名称。模型列表:https://www.alibabacloud.com/help/zh/model-studio/models
model: "qwen-vl-max",
messages: [{
role: "user",
content: [
{
type: "video",
video: [
"https://img.alicdn.com/imgextra/i3/O1CN01K3SgGo1eqmlUgeE9b_!!6000000003923-0-tps-3840-2160.jpg",
"https://img.alicdn.com/imgextra/i4/O1CN01BjZvwg1Y23CF5qIRB_!!6000000003000-0-tps-3840-2160.jpg",
"https://img.alicdn.com/imgextra/i4/O1CN01Ib0clU27vTgBdbVLQ_!!6000000007859-0-tps-3840-2160.jpg",
"https://img.alicdn.com/imgextra/i1/O1CN01aygPLW1s3EXCdSN4X_!!6000000005710-0-tps-3840-2160.jpg"
]
},
{
type: "text",
text: "描述这个视频的具体过程"
}
]}]
});
console.log(JSON.stringify(response));
}
main();
curl
新加坡/弗吉尼亚和北京地域的API Key不同,获取API Key 。以下为新加坡地域base_urlchat/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-vl-max",
"messages": [
{
"role": "user",
"content": [
{
"type": "video",
"video": [
"https://img.alicdn.com/imgextra/i3/O1CN01K3SgGo1eqmlUgeE9b_!!6000000003923-0-tps-3840-2160.jpg",
"https://img.alicdn.com/imgextra/i4/O1CN01BjZvwg1Y23CF5qIRB_!!6000000003000-0-tps-3840-2160.jpg",
"https://img.alicdn.com/imgextra/i4/O1CN01Ib0clU27vTgBdbVLQ_!!6000000007859-0-tps-3840-2160.jpg",
"https://img.alicdn.com/imgextra/i1/O1CN01aygPLW1s3EXCdSN4X_!!6000000005710-0-tps-3840-2160.jpg"
]
},
{
"type": "text",
"text": "描述这个视频的具体过程"
}
]
}
]
}'
工具调用
完整的Function Calling 流程代码请参见Function Calling 。
Python import os
from openai import OpenAI
client = OpenAI(
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx"
# 新加坡/弗吉尼亚和北京地域的API Key不同。获取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
tools = [
# 工具1 获取当前时刻的时间
{
"type": "function",
"function": {
"name": "get_current_time",
"description": "当你想知道现在的时间时非常有用。",
"parameters": {} # 因为获取当前时间无需输入参数,因此parameters为空字典
}
},
# 工具2 获取指定城市的天气
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "当你想查询指定城市的天气时非常有用。",
"parameters": {
"type": "object",
"properties": {
# 查询天气时需要提供位置,因此参数设置为location
"location": {
"type": "string",
"description": "城市或县区,比如北京市、杭州市、余杭区等。"
}
},
"required": ["location"]
}
}
}
]
messages = [{"role": "user", "content": "杭州天气怎么样"}]
completion = client.chat.completions.create(
model="qwen-plus", # 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
messages=messages,
tools=tools
)
print(completion.model_dump_json())
Node.js import OpenAI from "openai";
const openai = new OpenAI(
{
// 若没有配置环境变量,请用百炼API Key将下行替换为:apiKey: "sk-xxx",
// 新加坡/弗吉尼亚和北京地域的API Key不同。获取API Key:https://www.alibabacloud.com/help/zh/model-studio/get-api-key
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
}
);
const messages = [{"role": "user", "content": "杭州天气怎么样"}];
const tools = [
// 工具1 获取当前时刻的时间
{
"type": "function",
"function": {
"name": "get_current_time",
"description": "当你想知道现在的时间时非常有用。",
// 因为获取当前时间无需输入参数,因此parameters为空
"parameters": {}
}
},
// 工具2 获取指定城市的天气
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "当你想查询指定城市的天气时非常有用。",
"parameters": {
"type": "object",
"properties": {
// 查询天气时需要提供位置,因此参数设置为location
"location": {
"type": "string",
"description": "城市或县区,比如北京市、杭州市、余杭区等。"
}
},
"required": ["location"]
}
}
}
];
async function main() {
const response = await openai.chat.completions.create({
model: "qwen-plus", // 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
messages: messages,
tools: tools,
});
console.log(JSON.stringify(response));
}
main();
curl
新加坡/弗吉尼亚和北京地域的API Key不同,获取API Key 。以下为新加坡地域base_urlchat/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-plus",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "杭州天气怎么样"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_time",
"description": "当你想知道现在的时间时非常有用。",
"parameters": {}
}
},
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "当你想查询指定城市的天气时非常有用。",
"parameters": {
"type": "object",
"properties": {
"location":{
"type": "string",
"description": "城市或县区,比如北京市、杭州市、余杭区等。"
}
},
"required": ["location"]
}
}
}
]
}'
异步调用 import os
import asyncio
from openai import AsyncOpenAI
import platform
client = AsyncOpenAI(
# 若没有配置环境变量,请用百炼API Key将下行替换为:api_key="sk-xxx"
# 如果使用华北2(北京)地域的模型,需要使用华北2(北京)地域的 API KEY,获取链接:https://bailian.console.alibabacloud.com/?tab=model#/api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
async def main():
response = await client.chat.completions.create(
messages=[{"role": "user", "content": "你是谁"}],
model="qwen-plus", # 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://www.alibabacloud.com/help/zh/model-studio/getting-started/models
)
print(response.model_dump_json())
if platform.system() == "Windows":
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
asyncio.run(main())
model string (必选)
模型名称。
支持的模型:Qwen 大语言模型(商业版、开源版)、Qwen-VL、Qwen-Coder、Qwen-Omni、Qwen-Math。
具体模型名称和计费,请参见 文本生成-千问 。
messages array (必选)
传递给大模型的上下文,按对话顺序排列。
消息类型
System Message object (可选)
系统消息,用于设定大模型的角色、语气、任务目标或约束条件等。一般放在messages数组的第一位。
QwQ 模型不建议设置 System Message,QVQ 模型设置 System Message不会生效。
属性
content string (必选)
系统指令,用于明确模型的角色、行为规范、回答风格和任务约束等。
role string (必选)
系统消息的角色,固定为system。
User Message object (必选)
用户消息,用于向模型传递问题、指令或上下文等。
属性
content string 或 array (必选)
消息内容。若输入只有文本,则为 string 类型;若输入包含图像等多模态数据,或启用显式缓存,则为 array 类型。
使用多模态模型或启用显式缓存时的属性
type string (必选)
可选值:
text
输入文本时需设为text。
image_url
输入图片时需设为image_url。
input_audio
输入音频时需设为input_audio。
video
输入图片列表形式的视频时需设为video。
video_url
输入视频文件时需设为video_url。
Qwen-VL仅部分模型可输入视频文件,详情参见视频理解(Qwen-VL) ;QVQ与Qwen-Omni 模型支持直接传入视频文件。
text string
输入的文本。当type为text时,是必选参数。
image_url object
输入的图片信息。当type为image_url时是必选参数。
属性
url string (必选)
图片的 URL或 Base64 Data URL。传入本地文件请参考图像与视频理解 。
input_audio object
输入的音频信息。当type为input_audio时是必选参数。
属性
format string (必选)
输入音频的格式,如mp3、wav等。
video array
输入的图片列表形式的视频信息 。当type为video时是必选参数。使用方法请参见:视频理解(Qwen-VL) 、视频理解(QVQ) 或视频理解(Qwen-Omni) 。
示例值:
[
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/xzsgiz/football1.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/tdescd/football2.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/zefdja/football3.jpg",
"https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241108/aedbqh/football4.jpg"
]
video_url object
输入的视频文件信息。当type为video_url时是必选参数。
Qwen-VL 只可理解视频文件的视觉信息,Qwen-Omni 可理解视频文件中的视觉与音频信息。
fps float (可选)
每秒抽帧数。取值范围为 [0.1, 10],默认值为2.0。
功能说明
fps有两个功能:
较大的fps适合高速运动的场景(如体育赛事、动作电影等),较小的fps适合长视频或内容偏静态的场景。
示例值
图像列表传入:{"video":["https://xx1.jpg",...,"https://xxn.jpg"],"fps":2}
视频文件传入:{"video": "https://xx1.mp4","fps":2}
min_pixels integer (可选)
设定输入图像或视频帧的最小像素阈值。当输入图像或视频帧的像素小于min_pixels时,会将其进行放大,直到总像素高于min_pixels。适用于 Qwen-VL、QVQ 模型。
取值范围
输入图像:
Qwen3.5、Qwen3-VL:默认值和最小值均为:65536
qwen-vl-max、qwen-vl-max-latest、qwen-vl-max-0813、qwen-vl-plus、qwen-vl-plus-latest、qwen-vl-plus-0815:默认值和最小值均为4096
其他qwen-vl-plus模型、其他qwen-vl-max模型、Qwen2.5-VL开源系列及QVQ系列模型:默认值和最小值均为3136
输入视频文件或图像列表:
Qwen3.5、Qwen3-VL(包括商业版和开源版)、qwen-vl-max、qwen-vl-max-latest、qwen-vl-max-0813、qwen-vl-plus、qwen-vl-plus-latest、qwen-vl-plus-0815:默认值为65536,最小值为4096
其他qwen-vl-plus模型、其他qwen-vl-max模型、Qwen2.5-VL开源系列及QVQ系列模型:默认值为50176,最小值为3136
示例值
输入图像:{"type": "image_url","image_url": {"url":"https://xxxx.jpg"},"min_pixels": 65536}
输入视频文件时:{"type": "video_url","video_url": {"url":"https://xxxx.mp4"},"min_pixels": 65536}
输入图像列表时:{"type": "video","video": ["https://xx1.jpg",...,"https://xxn.jpg"],"min_pixels": 65536}
max_pixels integer (可选)
用于设定输入图像或视频帧的最大像素阈值。当输入图像或视频的像素在[min_pixels, max_pixels]区间内时,模型会按原图进行识别。当输入图像像素大于max_pixels时,会将图像进行缩小,直到总像素低于max_pixels。适用于 Qwen-VL、QVQ 模型。
示例值
输入图像:{"type": "image_url","image_url": {"url":"https://xxxx.jpg"},"max_pixels": 8388608}
输入视频文件时:{"type": "video_url","video_url": {"url":"https://xxxx.mp4"},"max_pixels": 655360}
输入图像列表时:{"type": "video","video": ["https://xx1.jpg",...,"https://xxn.jpg"],"max_pixels": 655360}
total_pixels integer (可选)
用于限制从视频中抽取的所有帧的总像素(单帧图像像素 × 总帧数)。如果视频总像素超过此限制,系统将对视频帧进行缩放,但仍会确保单帧图像的像素值在[min_pixels, max_pixels]范围内。适用于 Qwen-VL、QVQ 模型。
对于抽帧数量较多的长视频,可适当降低此值以减少Token消耗和处理时间,但这可能会导致图像细节丢失。
取值范围
qwen3.5系列、qwen3-vl-plus系列、qwen3-vl-flash系列、qwen3-vl-235b-a22b-thinking、qwen3-vl-235b-a22b-instruct:默认值和最小值均为134217728,该值对应 131072 个图像 Token(每 32×32 像素对应 1 个图像 Token)。
其他Qwen3-VL开源模型、qwen-vl-max、qwen-vl-max-latest、qwen-vl-max-0813、qwen-vl-plus、qwen-vl-plus-latest、qwen-vl-plus-0815:默认值和最小值均为67108864,该值对应 65536 个图像 Token(每 32×32 像素对应 1 个图像 Token)。
其他qwen-vl-plus模型、其他qwen-vl-max模型、Qwen2.5-VL开源系列及QVQ系列模型:默认值和最小值均为51380224,该值对应 65536 个图像 Token(每 28×28 像素对应 1 个图像 Token)。
示例值
输入视频文件时:{"type": "video_url","video_url": {"url":"https://xxxx.mp4"},"total_pixels": 134217728}
输入图像列表时:{"type": "video","video": ["https://xx1.jpg",...,"https://xxn.jpg"],"total_pixels": 134217728}
cache_control object (可选)
用于开启显式缓存。相关文档:显式缓存 。
属性
type string (必选)
仅支持设定为ephemeral。
role string (必选)
用户消息的角色,固定为user。
Assistant Message object (可选)
模型的回复。通常用于在多轮对话中作为上下文回传给模型。
属性
content string (可选)
模型回复的文本内容。包含tool_calls时,content可以为空;否则content为必选。
role string (必选)
助手消息的角色,固定为assistant。
partial boolean (可选)默认值为false
是否开启前缀续写。
可选值:
支持的模型参见前缀续写 。
tool_calls array (可选)
发起 Function Calling 后,返回的工具与入参信息,包含一个或多个对象。由上一轮模型响应的tool_calls字段获得。
属性
type string (必选)
工具类型,当前只支持设为function。
function object (必选)
工具与入参信息。
属性
arguments string (必选)
入参信息,为JSON格式字符串。
index integer (必选)
当前工具信息在tool_calls数组中的索引。
Tool Message object (可选)
工具的输出信息。
属性
content string (必选)
工具函数的输出内容,必须为字符串。若工具返回结构化数据(如JSON),需将其序列化为字符串。
role string (必选)
固定为tool。
tool_call_id string (必选)
发起 Function Calling 后返回的 id,通过completion.choices[0].message.tool_calls[$index].id获取,用于标记 Tool Message 对应的工具。
stream boolean (可选) 默认值为 false
是否以流式输出方式回复。相关文档:流式输出
可选值:
推荐设置为true,可提升阅读体验并降低超时风险。
stream_options object (可选)
流式输出的配置项,仅在 stream 为 true 时生效。
属性
include_usage boolean (可选)默认值为false
是否在响应的最后一个数据块 包含Token消耗信息。
可选值:
流式输出时,Token 消耗信息仅可出现在响应的最后一个数据块。
modalities array (可选)默认值为["text"]
输出数据的模态,仅适用于 Qwen-Omni 模型。相关文档:非实时(Qwen-Omni)
可选值:
audio object (可选)
输出音频的音色与格式,仅适用于 Qwen-Omni 模型,且modalities参数需为["text","audio"]。相关文档:非实时(Qwen-Omni)
属性
voice string (必选)
输出音频的音色。请参见音色列表 。
format string (必选)
输出音频的格式,仅支持设定为wav。
temperature float (可选)
采样温度,控制模型生成文本的多样性。
temperature越高,生成的文本更多样,反之,生成的文本更确定。
取值范围: [0, 2)
temperature与top_p均可以控制生成文本的多样性,建议只设置其中一个值。更多说明,请参见文本生成模型概述 。
不建议修改QVQ模型的默认temperature值 。
top_p float (可选)
核采样的概率阈值,控制模型生成文本的多样性。
top_p越高,生成的文本更多样。反之,生成的文本更确定。
取值范围:(0,1.0]
temperature与top_p均可以控制生成文本的多样性,建议只设置其中一个值。更多说明,请参见文本生成模型概述 。
不建议修改QVQ模型的默认 top_p 值。
top_k integer (可选)
指定生成过程中用于采样的候选 Token 数量。值越大,输出越随机;值越小,输出越确定。若设为 null 或大于 100,则禁用 top_k 策略,仅 top_p 策略生效。取值必须为大于或等于 0 的整数。
top_k默认值
QVQ系列、qwen-vl-plus-2025-07-10、qwen-vl-plus-2025-08-15:10;
QwQ 系列:40;
其余qwen-vl-plus系列、qwen-vl-max-2025-08-13之前的模型、qwen2.5-omni-7b:1;
Qwen3-Omni-Flash系列:50;
其余模型均为20。
该参数非OpenAI标准参数。通过 Python SDK调用时,请放入 extra_body 对象中。 配置方式为:extra_body={"top_k":xxx}。
不建议修改QVQ模型的默认 top_k 值。
presence_penalty float (可选)
控制模型生成文本时的内容重复度。
取值范围:[-2.0, 2.0]。正值降低重复度,负值增加重复度。
在创意写作或头脑风暴等需要多样性、趣味性或创造力的场景中,建议调高该值;在技术文档或正式文本等强调一致性与术语准确性的场景中,建议调低该值。
presence_penalty默认值
Qwen3.5(非思考模式)、qwen3-max-preview(思考模式)、Qwen3(非思考模式)、Qwen3-Instruct系列、qwen3-0.6b/1.7b/4b(思考模式)、QVQ系列、qwen-max、qwen-max-latest、qwen-max-latestqwen2.5-vl系列、qwen-vl-max系列、qwen-vl-plus、Qwen3-VL(非思考):1.5;
qwen-vl-plus-latest、qwen-vl-plus-2025-08-15:1.2
qwen-vl-plus-2025-01-25:1.0;
qwen3-8b/14b/32b/30b-a3b/235b-a22b(思考模式)、qwen-plus/qwen-plus-latest/2025-04-28(思考模式)、qwen-turbo/qwen-turbo/2025-04-28(思考模式):0.5;
其余均为0.0。
原理介绍
如果参数值是正数,模型将对目前文本中已存在的Token施加一个惩罚值(惩罚值与文本出现的次数无关),减少这些Token重复出现的几率,从而减少内容重复度,增加用词多样性。
示例
提示词:把这句话翻译成中文“This movie is good. The plot is good, the acting is good, the music is good, and overall, the whole movie is just good. It is really good, in fact. The plot is so good, and the acting is so good, and the music is so good.”
参数值为2.0:这部电影很好。剧情很棒,演技棒,音乐也非常好听,总的来说,整部电影都好得不得了。实际上它真的很优秀。剧情非常精彩,演技出色,音乐也是那么的动听。
参数值为0.0:这部电影很好。剧情好,演技好,音乐也好,总的来说,整部电影都很好。事实上,它真的很棒。剧情非常好,演技也非常出色,音乐也同样优秀。
参数值为-2.0:这部电影很好。情节很好,演技很好,音乐也很好,总的来说,整部电影都很好。实际上,它真的很棒。情节非常好,演技也非常好,音乐也非常好。
使用qwen-vl-plus-2025-01-25模型进行文字提取时,建议设置presence_penalty为1.5。
不建议修改QVQ模型的默认presence_penalty值。
response_format object (可选) 默认值为{"type": "text"}
返回内容的格式。可选值:
{"type": "text"}:输出文字回复;
{"type": "json_object"}:输出标准格式的JSON字符串。
{"type": "json_schema","json_schema": {...} }:输出指定格式的JSON字符串。
相关文档:结构化输出 。
若指定为{"type": "json_object"},需在提示词中明确指示模型输出JSON,如:“请按照json格式输出”,否则会报错。
支持的模型参见结构化输出 。
属性
type string (必选)
返回内容的格式。可选值:
json_schema object
当 type 为 json_schema 时,该字段为必选,用于定义结构化输出的配置。
属性
name string (必选)
Schema 的唯一标识名称。仅支持字母(不区分大小写)、数字、下划线和短横线,最长 64 个字符。
description string (可选)
描述 Schema 的用途,帮助模型理解输出的语义上下文。
schema object (可选)
符合 JSON Schema 标准的对象,定义模型输出的数据结构。
构建JSON Schema 方法参加:JSON Schema
strict boolean (可选)默认值为false
控制是否强制模型严格遵守 Schema 的所有约束。
max_tokens integer (可选)
用于限制模型输出的最大 Token 数。若生成内容超过此值,生成将提前停止,且返回的finish_reason为length。
默认值与最大值均为模型的最大输出长度,请参见文本生成-千问 。
适用于需控制输出长度的场景,如生成摘要、关键词,或用于降低成本、缩短响应时间。
触发 max_tokens 时,响应的 finish_reason 字段为 length。
max_tokens不限制思考模型思维链的长度。
vl_high_resolution_images boolean (可选)默认值为false
是否将输入图像的像素上限提升至 16384 Token 对应的像素值。相关文档:处理高分辨率图像 。
该参数非OpenAI标准参数。通过 Python SDK调用时,请放入 extra_body 对象中。 配置方式为:extra_body={"vl_high_resolution_images":xxx}。
n integer (可选) 默认值为1
生成响应的数量,取值范围是1-4。适用于需生成多个候选响应的场景,例如创意写作或广告文案。
仅支持 Qwen3(非思考模式) 模型。
若传入 tools 参数, 请将n 设为 1。
增大 n 会增加输出 Token 的消耗,但不增加输入 Token 消耗。
enable_thinking boolean (可选)
使用混合思考(回复前既可思考也可不思考)模型时,是否开启思考模式。适用于 Qwen3.5、Qwen3 、Qwen3-Omni-Flash、Qwen3-VL模型。相关文档:深度思考
可选值:
true:开启
开启后,思考内容将通过reasoning_content字段返回。
false:不开启
不同模型的默认值:支持的模型
该参数非OpenAI标准参数。通过 Python SDK调用时,请放入 extra_body 对象中。 配置方式为:extra_body={"enable_thinking": xxx}。
thinking_budget integer (可选)
思考过程的最大 Token 数。适用于Qwen3.5、Qwen3-VL、Qwen3 的商业版与开源版模型。相关文档:限制思考长度 。
默认值为模型最大思维链长度,请参见:模型列表
该参数非OpenAI标准参数。通过 Python SDK调用时,请放入 extra_body 对象中。 配置方式为:extra_body={"thinking_budget": xxx}。
enable_code_interpreter boolean (可选)默认值为 false
是否开启代码解释器功能。相关文档:代码解释器
可选值:
该参数非OpenAI标准参数。通过 Python SDK调用时,请放入 extra_body 对象中。 配置方式为:extra_body={"enable_code_interpreter": xxx}。
seed integer (可选)
随机数种子。用于确保在相同输入和参数下生成结果可复现。若调用时传入相同的 seed 且其他参数不变,模型将尽可能返回相同结果。
取值范围:[0,231 −1]。
logprobs boolean (可选)默认值为 false
是否返回输出 Token 的对数概率,可选值:
思考阶段生成的内容(reasoning_content)不会返回对数概率。
支持的模型
qwen-plus系列的快照模型(不包含稳定版模型)
qwen-turbo 系列的快照模型(不包含稳定版模型)
qwen3-vl-plus系列模型(包含稳定版模型)
qwen3-vl-flash系列模型(包含稳定版模型)
Qwen3 开源模型
top_logprobs integer (可选)默认值为0
指定在每一步生成时,返回模型最大概率的候选 Token 个数。
取值范围:[0,5]
仅当 logprobs 为 true 时生效。
stop string 或 array (可选)
用于指定停止词。当模型生成的文本中出现stop 指定的字符串或token_id时,生成将立即终止。
可传入敏感词以控制模型的输出。
stop为数组时,不可将token_id和字符串同时作为元素输入,比如不可以指定为["你好",104307]。
tools array (可选)
包含一个或多个工具对象的数组,供模型在 Function Calling 中调用。相关文档:Function Calling
设置 tools 且模型判断需要调用工具时,响应会通过 tool_calls 返回工具信息。
属性
type string (必选)
工具类型,当前仅支持设为function。
function object (必选)
属性
name string (必选)
工具名称。仅允许字母、数字、下划线(_)和短划线(-),最长 64 个 Token。
description string (必选)
工具描述信息,帮助模型判断何时以及如何调用该工具。
parameters object (可选)默认值为 {}
工具的参数描述,需要是一个合法的JSON Schema。JSON Schema的描述可以见链接 。若parameters参数为空,表示该工具没有入参(如时间查询工具)。
为提高工具调用的准确性,建议传入 parameters。
tool_choice string 或 object (可选)默认值为 auto
工具选择策略。若需对某类问题强制指定工具调用方式(例如始终使用某工具或禁用所有工具),可设置此参数。
可选值:
auto
大模型自主选择工具策略。
none
若不希望进行工具调用,可设定tool_choice参数为none;
{"type": "function", "function": {"name": "the_function_to_call"}}
若希望强制调用某个工具,可设定tool_choice参数为{"type": "function", "function": {"name": "the_function_to_call"}},其中the_function_to_call是指定的工具函数名称。
思考模式的模型不支持强制调用某个工具。
parallel_tool_calls boolean (可选)默认值为 false
是否开启并行工具调用。相关文档:并行工具调用
可选值:
enable_search boolean (可选)默认值为 false
是否开启联网搜索。相关文档:联网搜索
可选值:
true:开启;
若开启后未联网搜索,可优化提示词,或设置search_options中的forced_search参数开启强制搜索。
false:不开启。
启用互联网搜索功能可能会增加 Token 的消耗。
该参数非OpenAI标准参数。通过 Python SDK调用时,请放入 extra_body 对象中。 配置方式为:extra_body={"enable_search": True}。
search_options object (可选)
联网搜索的策略。相关文档:联网搜索
属性
forced_search boolean (可选)默认值为false
是否强制开启联网搜索,仅当enable_search为true时生效。
可选值:
true:强制开启;
false:不强制开启,由模型判断是否联网搜索。
search_strategy string (可选)默认值为turbo
搜索量级策略,仅当enable_search为true时生效。
可选值:
turbo (默认): 兼顾响应速度与搜索效果,适用于大多数场景。
max: 采用更全面的搜索策略,可调用多源搜索引擎,以获取更详尽的搜索结果,但响应时间可能更长。
agent:可多次调用联网搜索工具与大模型,实现多轮信息检索与内容整合。
该策略仅适用于 qwen3.5-plus、qwen3.5-plus-2026-02-15、qwen3.5-flash、qwen3.5-flash-2026-02-23、qwen3-max、qwen3-max-2026-01-23、qwen3-max-2025-09-23。
启用该策略时,仅支持返回搜索来源 (enable_source: true),其他联网搜索功能不可用。
agent_max:在agent策略基础上支持网页抓取,参见:网页抓取 。
该策略仅适用于qwen3.5-plus、qwen3.5-plus-2026-02-15、qwen3.5-flash、qwen3.5-flash-2026-02-23,以及qwen3-max、qwen3-max-2026-01-23的思考模式。
启用该策略时,仅支持返回搜索来源 (enable_source: true),其他联网搜索功能不可用。
enable_search_extension boolean (可选)默认值为false
是否开启垂域搜索,仅当enable_search为true时生效。
可选值:
该参数非OpenAI标准参数。通过 Python SDK调用时,请放入 extra_body 对象中。 配置方式为:extra_body={"search_options": xxx}。