Qwen3 Next 80B A3B Thinking API

qwen/qwen3-next-80b-a3b-thinking

Qwen3-Next-80B-A3B-Thining 是 Qwen3-Next 系列中优先推理的对话模型,默认输出结构化的"思维"轨迹。该模型专为复杂多步骤问题设计,涵盖数学证明、代码合成/调试、逻辑推理和智能体规划等领域,在知识理解、推理能力、编程实践、对齐性能及多语言评估中均表现卓越。相比此前Qwen3系列版本,该模型显著提升了长链思维下的稳定性与推理时的高效扩展性,经过调优后能够遵循复杂指令,同时减少重复性或偏离任务的行为。该模型适用于智能体框架与工具调用(函数调用)、高频率检索的工作流程,以及需要分步解决方案的标准化基准测试。它支持生成长篇详细的内容完成结果,并采用面向吞吐量的技术(如多令牌预测)以加速生成过程。需注意该模型仅运行在纯思维模式下。

模型 ID
qwen/qwen3-next-80b-a3b-thinking
更新日期
2025-09-12
模型能力
文本生成、深度思考
上下文长度
256 K
模型价格(每 1000 tokens 输入)
¥ 0.00175
模型价格(每 1000 tokens 输出)
¥ 0.0175
模型系列
Qwen

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-next-80b-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-next-80b-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-next-80b-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-next-80b-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-next-80b-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-next-80b-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-next-80b-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-next-80b-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-next-80b-a3b-thinking\",\"messages\":[{\"role\":\"user\",\"content\":\"你好\"}]}", ParameterType.RequestBody);

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

let data = JSON.stringify({
  "model": "qwen/qwen3-next-80b-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-next-80b-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-next-80b-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-next-80b-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-next-80b-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-next-80b-a3b-thinking",
  messages=[
    {
      "role": "user",
      "content": "你好"
    }
  ]
)

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

API 响应示例:

{
    "id": "chatcmpl-t1759073846s056r4265f084429f3f1822a192a0",
    "model": "qwen/qwen3-next-80b-a3b-thinking",
    "object": "chat.completion",
    "created": 1759073846,
    "choices": [
        {
            "logprobs": null,
            "finish_reason": "stop",
            "native_finish_reason": "stop",
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "\n\n你好!我是通义千问Qwen3,由通义实验室研发的超大规模语言模型。我能够回答问题、创作文字(比如写故事、公文、邮件、剧本)、编程、逻辑推理,还支持中文、英文、法语、西班牙语等100多种语言。无论是学习、工作还是日常交流,我都可以为你提供帮助。有什么需要我效劳的吗? 😊",
                "refusal": null,
                "reasoning": "嗯,用户让我介绍一下自己。我需要先想想自己到底是啥。我是通义千问,对吧?由通义实验室研发的。不过得用更自然的方式说出来,不能太官方。我应该先说名字,然后主要功能。\n\n嗯,用户可能想知道我能做什么。比如回答问题、写故事、写公文、写邮件、写剧本,还有编程之类的。还要提到我擅长多语言,支持很多种语言,比如中文、英文、德语、法语、西班牙语这些。不过得具体列出几个例子,这样用户更清楚。\n\n另外,我应该提到我有100万亿参数量,不过可能用户不太懂参数量是什么,但可以简单说一下,比如超大规模参数量,这样处理复杂任务有优势。不过可能需要更通俗的解释,比如“庞大的知识库”或者“强大的语言理解能力”。\n\n还要注意语气要友好,比如“你好!我是通义千问”这样开头。可能需要分段,但用户可能希望简洁的介绍。不过现在要组织成自然的中文,避免太机械。\n\n对了,可能还要提到我是超大规模语言模型,但用户可能更关心能帮他们做什么。比如可以协助创作、逻辑推理、编程、表达观点等等。比如“我可以帮助你解决问题、生成文本、解答问题,或者只是聊聊天”。这样的表述更亲切。\n\n还有,可能需要说明一下我的最新版本,比如Qwen3,不过用户可能不知道,但如果是通义千问的最新版,可以提一下。但可能不需要太详细,但可以提到我是Qwen3,是通义千问系列的最新版本,具有更强的语言理解和生成能力。\n\n嗯,还有多模态能力,比如理解图片、音频、视频等,但可能用户问的是基础介绍,可能只需要提到文本方面。或者简单提一下多模态,但可能更简单点,因为用户可能主要关心文本处理。\n\n让我再想想,常见的自我介绍结构:名字、归属公司、主要功能、擅长领域、可以帮用户做什么。比如:\n\n“你好!我是通义千问,由通义实验室研发的超大规模语言模型。我可以回答问题、创作文字,比如写故事、写公文、写邮件、写剧本,还能表达观点,玩游戏等。我支持多种语言,包括但不限于中文、英文、德语、法语、西班牙语等。如果你有任何问题或需要帮助,随时告诉我!”\n\n不过可能需要再具体一点,比如“100万亿参数”这样的数据是否需要?可能有些用户会关注具体参数量,但可能更关键的是说明能力强。或者可以说“拥有超大规模参数量,具备强大的语言理解和生成能力”。\n\n另外,要确认自己的最新版本是否Qwen3,是的,应该说明是Qwen3,是通义千问系列的最新版本。比如“我是通义千问Qwen3,是阿里巴巴通义实验室自主研发的超大规模语言模型。”\n\n可能还要提到应用场景,比如在多个领域有应用,如智能客服、内容创作、数据分析等。但可能用户只需要基础介绍,所以先说核心功能。\n\n再想想,有没有特别的点需要强调?比如“我具有多轮对话能力,可以保持上下文连贯”,或者“能够进行逻辑推理、编程等任务”。这些具体能力可能需要提到。\n\n比如:“我可以进行多轮对话,理解上下文,提供连贯的回答。同时,我能帮助你进行逻辑推理、编程、数据分析等复杂任务。”\n\n还有,是否要提到训练数据截止时间?比如“我的训练数据截止到2024年10月”,这样用户知道我的知识更新到什么时间。\n\n总结一下结构:\n\n1. 问候,自我介绍名字和归属。\n\n2. 说明是Qwen3,最新版本。\n\n3. 主要能力:回答问题、创作文字、编程、逻辑推理、多语言支持等。\n\n4. 支持的多模态(如果适用,但可能暂时不提,或者简单提)。\n\n5. 举例应用场景,比如写故事、公文、邮件、剧本等。\n\n6. 结尾友好,邀请用户提问。\n\n比如:\n\n“你好!我是通义千问Qwen3,由通义实验室研发的超大规模语言模型。我能够回答问题、创作文字,例如写故事、写公文、写邮件、写剧本,还能编程、进行逻辑推理,甚至表达观点和玩游戏。我支持包括中文、英文、法语、西班牙语等百种语言,并且我的训练数据截止到2024年10月。无论是学习、工作还是日常交流,我都可以提供帮助。有什么可以帮你的吗?”\n\n检查是否有错误。比如Qwen3的训练数据是否是到2024年10月?可能需要确认,通常来说,新版本的训练数据截止时间会更新。比如通义千问Qwen3的训练数据截止到2024年10月,应该没错。\n\n是否需要提到“超大规模参数量”?可能有点技术性,但可以说“拥有超大规模参数量,具备强大的语言理解与生成能力”,但可能简化为“超大规模语言模型”即可。\n\n或者可以更简洁,比如“我是通义实验室研发的Qwen3,一款超大规模语言模型,能处理各种文本任务,包括回答问题、创作、编程等。”\n\n是的,这样更简洁。比如:\n\n“你好!我是通义千问Qwen3,由通义实验室研发的超大规模语言模型。我能帮你回答问题、创作文字(如故事、公文、邮件、剧本)、编程、逻辑推理,还支持100多种语言。无论是学习、工作还是娱乐,我都可以陪伴你。有什么需要我帮忙的吗?”\n\n这样可能更好,具体说明支持的语言数量,但“百种语言”可能更准确,或者具体说“包括中文、英文、法语、西班牙语等100多种语言”。或者只提几个主要语言,然后说“多种语言”。\n\n例如,“支持包括中文、英文、德语、法语、西班牙语等100多种语言”。\n\n对,这样。\n\n然后结尾礼貌地询问需要什么帮助。\n\n确认无误后,就可以这样回答。\n"
            }
        }
    ],
    "usage": {
        "prompt_tokens": 14,
        "completion_tokens": 1402,
        "total_tokens": 1416,
        "prompt_tokens_details": null
    }
}

可选参数:

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

温度

  • 参数: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 技术支持工程师:

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