Qwen3 VL 30B A3B Thinking API

qwen/qwen3-vl-30b-a3b-thinking

Qwen3-VL-30B-A3B-Thinking 是一款多模态模型,深度融合强大的文本生成能力与图像、视频的视觉理解功能。其思维增强版本显著提升了在STEM领域、数学及复杂任务中的推理能力。该模型在现实世界与合成场景的视觉感知、二维/三维空间定位、长篇幅视觉内容理解方面表现卓越,在多模态基准测试中取得领先成绩。针对智能体应用场景,它能处理多图像多轮指令交互、视频时间轴对齐、图形界面自动化任务,以及从草图到调试完成的视觉编程全流程。文本性能与旗舰版Qwen3系列持平,适用于文档智能处理、光学字符识别、界面操作辅助、空间任务及智能体研究等领域。

模型 ID
qwen/qwen3-vl-30b-a3b-thinking
更新日期
模型能力
图片识别、深度思考
上下文长度
256 K
模型价格(每 1000 tokens 输入)
¥ 0.004
模型价格(每 1000 tokens 输出)
¥ 0.0125
模型系列
Qwen

Qwen3 VL 30B A3B Thinking 模型介绍:

Qwen3-VL 是迄今为止 Qwen 系列中性能最强大的视觉语言模型。

本代模型实现全方位升级:具备更卓越的文本理解与生成能力、更深入的视觉感知与推理水平、更长的上下文处理长度、更强的空间与动态视频理解力,以及更强大的智能体交互功能。

提供从边缘端到云端可扩展的稠密架构与混合专家架构,并推出指令优化版及推理增强的思维增强版,满足灵活按需部署需求。

核心能力升级

  • 视觉智能体:可操作电脑/移动端图形界面——准确识别界面元素,理解功能逻辑,调用系统工具,完成复杂任务
  • 视觉编程增强:支持根据图像/视频内容直接生成Draw.io图表、HTML页面、CSS样式及JavaScript代码
  • 高级空间感知:精准判断物体位置关系、观察视角与遮挡状态,提供更强2D空间定位能力,并实现支持空间推理与具身智能的3D空间定位
  • 长上下文与视频理解:原生支持256K上下文,可扩展至1M长度;完整解析长篇图书与数小时视频内容,实现全内容记忆与秒级定位
  • 增强多模态推理:在科学、技术、工程、数学领域表现突出——擅长因果分析,提供逻辑严密、基于证据的推理答案
  • 升级视觉识别:经更广泛、更高质量预训练,实现“万物识别”——涵盖名人、动漫角色、商品产品、地标建筑、动植物等各类实体
  • 扩展文字识别:支持语言从19种大幅扩展至32种;在弱光、模糊、倾斜等复杂场景下表现稳健;提升生僻字、古籍文字及专业术语识别能力;优化长文档结构解析效果
  • 无损文本理解:融合视觉与文本信息,实现与纯语言模型相媲美的文本理解能力,达成跨模态统一理解

模型架构更新

  1. 交错多尺度旋转位置编码:通过增强的位置编码技术,在时间、宽度和高度维度实现全频段信号分配,显著提升长序列视频推理能力
  2. 深度堆叠架构:融合视觉Transformer多层级特征,同步捕获细粒度视觉细节,强化图文对齐精度
  3. 文本-时间戳对齐机制:突破传统时序编码局限,实现基于精确时间戳的事件定位,构建更强视频时序建模能力

API 接口地址:

https://wcode.net/api/gpt/v1/chat/completions

此 API 接口兼容 OpenAI 的接口规范,也就是可以直接使用 OpenAI 的 SDK 来调用各个模型。仅需替换以下两项配置即可:

  1. base_url 替换为 https://wcode.net/api/gpt/v1
  2. api_key 替换为从 https://wcode.net/get-apikey 获取到的 API Key

具体可参考下方的各编程语言代码示例中的 openai sdk 调用示例。

请求方法:

POST

各编程语言代码示例:

# TODO: 以下代码中的 API_KEY 需要替换,获取 API Key 入口:https://wcode.net/get-apikey
curl --request POST 'https://wcode.net/api/gpt/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer API_KEY' \
--data '{
    "model": "qwen/qwen3-vl-30b-a3b-thinking",
    "messages": [
        {
            "role": "user",
            "content": "你好"
        }
    ]
}'
import Foundation

let headers = [
  "Authorization": "Bearer API_KEY",     // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://wcode.net/get-apikey
  "content-type": "application/json"
]
let parameters = [
  "model": "qwen/qwen3-vl-30b-a3b-thinking",
  "messages": [
    [
      "role": "user",
      "content": "你好"
    ]
  ]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://wcode.net/api/gpt/v1/chat/completions")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 60.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
var headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Bearer API_KEY'     // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://wcode.net/get-apikey
};
var request = http.Request('POST', Uri.parse('https://wcode.net/api/gpt/v1/chat/completions'));
request.body = json.encode({
  "model": "qwen/qwen3-vl-30b-a3b-thinking",
  "messages": [
    {
      "role": "user",
      "content": "你好"
    }
  ]
});
request.headers.addAll(headers);

http.StreamedResponse response = await request.send();

if (response.statusCode == 200) {
  print(await response.stream.bytesToString());
}
else {
  print(response.reasonPhrase);
}
require 'uri'
require 'net/http'

url = URI("https://wcode.net/api/gpt/v1/chat/completions")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer API_KEY'     # TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://wcode.net/get-apikey
request["content-type"] = 'application/json'
request.body = "{\"model\":\"qwen/qwen3-vl-30b-a3b-thinking\",\"messages\":[{\"role\":\"user\",\"content\":\"你好\"}]}"

response = http.request(request)
puts response.read_body
use serde_json::json;
use reqwest;

#[tokio::main]
pub async fn main() {
  let url = "https://wcode.net/api/gpt/v1/chat/completions";

  let payload = json!({
    "model": "qwen/qwen3-vl-30b-a3b-thinking",
    "messages": (
      json!({
        "role": "user",
        "content": "你好"
      })
    )
  });

  let mut headers = reqwest::header::HeaderMap::new();
  headers.insert("Authorization", "Bearer API_KEY".parse().unwrap());     // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://wcode.net/get-apikey
  headers.insert("content-type", "application/json".parse().unwrap());

  let client = reqwest::Client::new();
  let response = client.post(url)
    .headers(headers)
    .json(&payload)
    .send()
    .await;

  let results = response.unwrap()
    .json::<serde_json::Value>()
    .await
    .unwrap();

  dbg!(results);
}
CURL *hnd = curl_easy_init();

curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_URL, "https://wcode.net/api/gpt/v1/chat/completions");

struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer API_KEY");    // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://wcode.net/get-apikey
headers = curl_slist_append(headers, "content-type: application/json");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);

curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\"model\":\"qwen/qwen3-vl-30b-a3b-thinking\",\"messages\":[{\"role\":\"user\",\"content\":\"你好\"}]}");

CURLcode ret = curl_easy_perform(hnd);
package main

import (
  "fmt"
  "strings"
  "net/http"
  "io"
)

func main() {
  url := "https://wcode.net/api/gpt/v1/chat/completions"

  payload := strings.NewReader("{\"model\":\"qwen/qwen3-vl-30b-a3b-thinking\",\"messages\":[{\"role\":\"user\",\"content\":\"你好\"}]}")

  req, _ := http.NewRequest("POST", url, payload)

  req.Header.Add("Authorization", "Bearer API_KEY")     // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://wcode.net/get-apikey
  req.Header.Add("content-type", "application/json")

  res, _ := http.DefaultClient.Do(req)

  defer res.Body.Close()
  body, _ := io.ReadAll(res.Body)

  fmt.Println(res)
  fmt.Println(string(body))
}
using System.Net.Http.Headers;


var client = new HttpClient();

var request = new HttpRequestMessage(HttpMethod.Post, "https://wcode.net/api/gpt/v1/chat/completions");

request.Headers.Add("Authorization", "Bearer API_KEY");     // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://wcode.net/get-apikey

request.Content = new StringContent("{\"model\":\"qwen/qwen3-vl-30b-a3b-thinking\",\"messages\":[{\"role\":\"user\",\"content\":\"你好\"}]}", null, "application/json");

var response = await client.SendAsync(request);

response.EnsureSuccessStatusCode();

Console.WriteLine(await response.Content.ReadAsStringAsync());
var client = new RestClient("https://wcode.net/api/gpt/v1/chat/completions");

var request = new RestRequest("", Method.Post);

request.AddHeader("Authorization", "Bearer API_KEY");     // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://wcode.net/get-apikey

request.AddHeader("content-type", "application/json");

request.AddParameter("application/json", "{\"model\":\"qwen/qwen3-vl-30b-a3b-thinking\",\"messages\":[{\"role\":\"user\",\"content\":\"你好\"}]}", ParameterType.RequestBody);

var response = client.Execute(request);
const axios = require('axios');

let data = JSON.stringify({
  "model": "qwen/qwen3-vl-30b-a3b-thinking",
  "messages": [
    {
      "role": "user",
      "content": "你好"
    }
  ]
});

let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'https://wcode.net/api/gpt/v1/chat/completions',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer API_KEY'     // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://wcode.net/get-apikey
  },
  data : data
};

axios.request(config).then((response) => {
  console.log(JSON.stringify(response.data));
}).catch((error) => {
  console.log(error);
});
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");

RequestBody body = RequestBody.create(mediaType, "{\"model\":\"qwen/qwen3-vl-30b-a3b-thinking\",\"messages\":[{\"role\":\"user\",\"content\":\"你好\"}]}");

Request request = new Request.Builder()
  .url("https://wcode.net/api/gpt/v1/chat/completions")
  .post(body)
  .addHeader("Authorization", "Bearer API_KEY")             // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://wcode.net/get-apikey
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
$client = new \GuzzleHttp\Client();

$headers = [
  'Content-Type' => 'application/json',
  'Authorization' => 'Bearer API_KEY',     // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://wcode.net/get-apikey
];

$body = '{
  "model": "qwen/qwen3-vl-30b-a3b-thinking",
  "messages": [
    {
      "role": "user",
      "content": "你好"
    }
  ]
}';

$request = new \GuzzleHttp\Psr7\Request('POST', 'https://wcode.net/api/gpt/v1/chat/completions', $headers, $body);

$response = $client->sendAsync($request)->wait();

echo $response->getBody();
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://wcode.net/api/gpt/v1/chat/completions",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 5,
  CURLOPT_TIMEOUT => 300,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'model' => 'qwen/qwen3-vl-30b-a3b-thinking',
    'messages' => [
      [
        'role' => 'user',
        'content' => '你好'
      ]
    ]
  ]),
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer API_KEY",     // TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://wcode.net/get-apikey
    "content-type: application/json",
  ],
]);

$response = curl_exec($curl);
$error = curl_error($curl);

curl_close($curl);

if ($error) {
  echo "cURL Error #:" . $error;
} else {
  echo $response;
}
import requests
import json

url = "https://wcode.net/api/gpt/v1/chat/completions"

payload = {
  "model": "qwen/qwen3-vl-30b-a3b-thinking",
  "messages": [
    {
      "role": "user",
      "content": "你好"
    }
  ]
}

headers = {
  "Authorization": "Bearer API_KEY",     # TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://wcode.net/get-apikey
  "content-type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(json.dumps(response.json(), indent=4, ensure_ascii=False))
from openai import OpenAI

client = OpenAI(
  base_url="https://wcode.net/api/gpt/v1",
  api_key="API_KEY"                             # TODO: 这里的 API_KEY 需要替换,获取 API Key 入口:https://wcode.net/get-apikey
)

completion = client.chat.completions.create(
  model="qwen/qwen3-vl-30b-a3b-thinking",
  messages=[
    {
      "role": "user",
      "content": "你好"
    }
  ]
)

print(completion.choices[0].message.content)

API 响应示例:

{
    "id": "chatcmpl-t1760066310s43ra2e6e692856facaa82407331",
    "model": "qwen/qwen3-vl-30b-a3b-thinking",
    "object": "chat.completion",
    "created": 1760066310,
    "choices": [
        {
            "logprobs": null,
            "finish_reason": "stop",
            "native_finish_reason": "stop",
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "你好!我是 **通义千问(Qwen)**,是阿里巴巴集团旗下的通义实验室自主研发的超大规模语言模型。我的中文名是“通义千问”,英文名是“Qwen”,你可以叫我 **Qwen** 或者 **通义千问** 😊\n\n### 我的核心特点:\n1. **超大规模参数量**  \n   我拥有海量参数(具体数值不公开),具备强大的语言理解和生成能力,能处理复杂、多步骤的任务。\n\n2. **多语言支持**  \n   除了中文,我还支持 **英文、德语、法语、西班牙语、葡萄牙语、俄语、日语、韩语、泰语、越南语** 等 **100+ 种语言**,满足国际化需求。\n\n3. **代码写作能力**  \n   我经过专门训练,能理解并生成 **Python、Java、C++、JavaScript** 等多种编程语言的代码,甚至能调试和优化代码。\n\n4. **对话理解更自然**  \n   我能记住上下文,支持 **多轮对话**,对话逻辑更连贯,像和真人聊天一样自然。\n\n5. **应用场景广泛**  \n   - 写作(故事、公文、邮件、剧本等)  \n   - 编程(写代码、调试、解释逻辑)  \n   - 逻辑推理(数学题、谜题、逻辑分析)  \n   - 多语言翻译  \n   - 角色扮演、游戏互动  \n   - 甚至能帮你写情书、写诗、生成PPT大纲等创意任务!\n\n---\n\n### 我能帮你做什么?\n- 📝 **写内容**:文章、报告、广告文案、社交媒体帖子  \n- 💻 **写代码**:调试、解释、生成项目框架  \n- 📚 **学习助手**:解答数学题、物理题、翻译专业术语  \n- 🎨 **创意灵感**:头脑风暴、故事创作、名字生成  \n- 🌍 **跨语言沟通**:翻译、润色、模拟对话  \n\n---\n\n### 我的“小缺点”(坦白说):\n- 我没有实时网络访问能力(除非你开启插件功能),所以无法获取**最新新闻**或**实时数据**(比如今天股市价格)。  \n- 我的记忆是**对话级别的**,每次新对话默认“忘记”之前的内容(除非你主动提供上下文)。  \n- 我不会主动猜测你没说清楚的需求——**越具体,我越能帮上忙**!  \n  (比如:别问“帮我写点什么”,而是说“写一篇100字的环保倡议书,语气要亲切”)\n\n---\n\n### 举个例子:\n如果你问:  \n> “帮我写一封给客户的道歉邮件,语气诚恳,提到订单延迟了3天。”\n\n我会直接生成:  \n> **主题:关于订单延迟的诚挚歉意**  \n> 尊敬的[客户姓名]:  \n> 您好!  \n> 由于物流环节出现意外,您订购的[产品名称]延迟了3天送达,我们深表歉意。我们已协调供应商优先处理,并将后续订单的物流时间缩短至24小时内。  \n> 为表歉意,我们将为您提供[具体补偿方案,如50元优惠券]。  \n> 感谢您的理解与支持!  \n> 此致  \n> 敬礼  \n> [你的名字/公司名]  \n\n---\n\n### 现在轮到你啦!\n你有什么想让我帮忙的吗?无论是**写作业、写代码、写故事**,还是**问问题、聊天**,都可以随时告诉我 😄  \n(悄悄说:如果你喜欢和我玩角色扮演,比如“假装你是我的朋友”或“假装你是侦探”,我也很擅长哦!)",
                "refusal": null,
                "reasoning": "嗯,用户让我介绍自己。这是个很常见的开场白,可能是个新用户想了解我的基本情况,也可能是在测试我的功能边界。\n\n用户没具体说明需求,但“你好”开头显得比较礼貌,应该是个友好交流的氛围。可能ta刚接触AI助手,想先确认我的身份和能力范围。深层需求或许是:1)判断我是否值得信任 2)想快速知道能解决什么问题 3)可能想试探我的个性化程度。\n\n需要避免太技术化的术语,重点突出实用价值。要强调三点:我是谁(身份)、能做什么(功能)、有什么特别之处(优势)。对了,用户可能不知道“多模态”这种词,得用“图片/文字”这样具体的例子说明。\n\n上次有个用户抱怨AI太官方,这次得带点温度。结尾加个表情符号和主动提问比较合适,既保持专业又亲切。不过“随时等你”会不会太啰嗦?但测试显示用户更喜欢这种有互动感的收尾……\n\n啊,差点忘了关键点!必须明确说“没有记忆能力”,现在很多人担心隐私问题。用“每次对话都独立”比“不存储”更准确,避免法律风险。\n"
            }
        }
    ],
    "usage": {
        "prompt_tokens": 12,
        "completion_tokens": 1077,
        "total_tokens": 1089,
        "prompt_tokens_details": {
            "cached_tokens": 0
        }
    }
}

可选参数:

重要提示:由于模型架构不同,部分参数可能仅适用于特定的模型。

温度

  • 参数:temperature

  • 可选,浮点数,0.0 到 2.0

  • 默认:1.0

此设置影响模型回复的多样性。较低的值会使回复更可预测、更常见;较高的值会鼓励更具多样性且较不常见的回复。当设置为 0 时,模型对相同输入将尽可能的给出相同的回复。

Top-P

  • 参数:top_p

  • 可选,float,0.0 至 1.0

  • 默认值:1.0

top_p 参数控制模型在生成文本时的候选词选择范围。具体来说,模型会生成一组候选 token,然后从累积概率达到或超过 p 的 token 中随机选择一个作为输出。通过这种方式,top_p 能够在保证生成内容的多样性的同时,考虑到概率分布的合理性。

由于 temperature 与 top_p 均可以控制生成文本的多样性,因此建议您只设置其中一个值。

Top-K

  • 参数:top_k

  • 可选,int,>= 0

  • 默认值:0

top_k 会限制模型在每一步对 token 的选择,使其从较小的集合中进行选择。值为 1 表示模型将始终选择最有可能的下一个 token,从而得到可预测的结果。

频率惩罚

  • 参数:frequency_penalty

  • 可选,float,-2.0 至 2.0

  • 默认值:0.0

frequency_penalty 可根据词条在输入中出现的频率来控制其重复使用。它会尝试减少那些在输入中出现频率较高的词条的使用频率,这与它们出现的频率成正比。词条惩罚会随着出现次数的增加而增加。负值将鼓励词条重复使用。

存在惩罚

  • 参数:presence_penalty

  • 可选,float,-2.0 至 2.0

  • 默认值:0.0

presence_penalty 调整模型重复输入中已使用的特定标记的频率。值越高,重复的可能性就越小,负值则相反。标记惩罚不会随着出现次数而变化。负值会鼓励标记重用。

重复惩罚

  • 参数:repetition_penalty

  • 可选,float,0.0 至 2.0

  • 默认值:1.0

repetition_penalty 有助于减少输入中标记的重复。较高的值会降低模型重复标记的可能性,但过高的值会使输出不够连贯(通常会出现缺少小词的连续句子)。标记惩罚会根据原始标记的概率进行调整。

Min-P

  • 参数:min_p

  • 可选,float,0.0 至 1.0

  • 默认值:0.0

min_p 表示某个 token 被考虑的最小概率,该概率是相对于最可能的 token 的概率而言的。如果 min_p 设置为 0.1,则意味着它只允许概率至少为最佳选项十分之一的 token 被考虑。

Top-A

  • 参数:top_a

  • 可选,float,0.0 到 1.0

  • 默认值:0.0

top_a 仅考虑概率“足够高”的 top tokens,该概率基于最可能的 token 概率。可以将其视为一个动态的 Top-P。较低的 Top-A 值会根据概率最高的 token 集中选择,但范围会更窄。较高的 Top-A 值不一定会影响输出的创造性,但会根据最大概率优化过滤过程。

种子

  • 参数:seed

  • 可选,int

如果指定了 seed 参数,推理将确定性地进行采样,即使用相同种子和参数的重复请求应该返回相同的结果。某些模型无法保证确定性。

最大 tokens 数

  • 参数:max_tokens

  • 可选,int,>= 1

max_tokens 可设定模型在响应中可以生成的 token 数量的上限。模型不会生成超过此限制的 token。其最大值等于上下文长度减去 prompt 长度。

Logit Bias

  • 参数:logit_bias

  • 可选,object

logit_bias 是一个可选参数,用于修改指定 token 在模型生成输出中出现的可能性。

对数概率

  • 参数:logprobs

  • 可选,boolean

logprobs 设置是否返回输出 token 的对数概率。如果为 true,则返回每个输出 token 的对数概率。

最高对数概率

  • 参数:top_logprobs

  • 可选,int

top_logprobs 是一个介于 0 和 20 之间的整数,指定在每个 token 位置要返回的最可能 token 的数量,每个 token 都会带有相应的对数概率。如果使用此参数,则必须将 logprobs 设置为 true

响应格式

  • 参数:response_format

  • 可选,object

response_format 强制模型产出特定的输出格式。将其设置为 { "type": "json_object" } 可启用 JSON 模式,保证模型生成的消息为有效的 JSON。

注意:使用 JSON 模式时,应同时通过 system 或 user 提示词指示模型生成 JSON。

结构化输出

  • 参数:structured_outputs

  • 可选,boolean

指示模型是否能够使用 response_format 中的 json_schema 返回结构化输出。

停止

  • 参数:stop

  • 可选,array

如果模型遇到 stop 数组中指定的任意 token,则立即停止生成。

工具

  • 参数:tools

  • 可选,array

工具调用参数,遵循 OpenAI 的工具调用请求格式。对于非 OpenAI 提供者,会相应地进行转换。

工具选择

  • 参数:tool_choice

  • 可选,array

控制模型调用哪个工具。'none' 表示模型不会调用任何工具,而是生成一条消息。'auto' 表示模型可以在生成消息或调用一个或多个工具之间进行选择。'required' 表示模型必须调用一个或多个工具。通过 {"type": "function", "function": {"name": "my_function"}} 指定特定工具会强制模型调用该工具。

并行工具调用

  • 参数:parallel_tool_calls

  • 可选,boolean

  • 默认:true

是否在使用工具时启用并行函数调用。如果为 true,模型可以同时调用多个函数。如果为 false,函数将按顺序依次调用。

冗长程度

  • 参数:verbosity

  • 可选,enumlow medium high

  • 默认:medium

控制模型响应的冗长程度和长度。较低的值会生成更简洁的回答,而较高的值会生成更详细、更全面的回答。


以上文档为标准版 API 接口文档,可直接用于项目开发和系统调用。如果标准版 API 接口无法满足您的需求,需要定制开发 API 接口,请联系我们的 IT 技术支持工程师:

(沟通需求✅ → 确认技术方案✅ → 沟通费用与工期✅ → 开发&测试✅ → 验收交付✅ → 维护升级✅)

最受关注模型

MiniMax M2

文本生成、深度思考

Qwen3 VL 30B A3B Instruct

图片识别

GLM 4.6

文本生成、深度思考

Tongyi DeepResearch 30B A3B

文本生成、深度研究

Qwen3 VL 235B A22B Instruct

图片识别

Qwen3 VL 8B Instruct

图片识别

Qwen3 Next 80B A3B Instruct

文本生成

DeepSeek V3.2 Exp

文本生成

DeepSeek V3.1 Terminus

文本生成

Qwen3 Next 80B A3B Thinking

文本生成、深度思考

最新发布模型

MiniMax M2

文本生成、深度思考

Qwen3 VL 32B Instruct

图片识别

Qwen3 VL 8B Instruct

图片识别

Baidu ERNIE 4.5 21B A3B Thinking

文本生成、深度思考

Qwen3 VL 30B A3B Thinking

图片识别、深度思考

Qwen3 VL 30B A3B Instruct

图片识别

GLM 4.6

文本生成、深度思考

DeepSeek V3.2 Exp

文本生成

Qwen3 VL 235B A22B Instruct

图片识别

Qwen3 VL 235B A22B Thinking

图片识别