Qwen-Coder adalah language model yang mengkhususkan diri pada tugas-tugas terkait kode. Gunakan API untuk memanggil model guna melakukan pembuatan kode, penyelesaian kode, dan interaksi dengan sistem eksternal melalui tools.
Mulai
Sebelum memulai, dapatkan Kunci API dan konfigurasikan Kunci API sebagai Variabel lingkungan. Jika Anda memanggil model menggunakan SDK, instal OpenAI atau DashScope SDK.
Contoh berikut menunjukkan cara memanggil qwen3-coder-next untuk menulis fungsi Python yang mencari bilangan prima. Anda juga dapat mengintegrasikan model dengan alat pengembangan seperti Qwen Code, Claude Code, dan Cline.
OpenAI compatible Chat Completions API
Python
Contoh permintaan
import os
from openai import OpenAI
client = OpenAI(
# Kunci API bervariasi berdasarkan Wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Jika Anda belum mengonfigurasi Variabel lingkungan, ganti baris berikut dengan Kunci API Alibaba Cloud Model Studio Anda: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3-coder-next",
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': 'Write a Python function find_prime_numbers that takes an integer n as an argument and returns a list of all prime numbers less than n. Do not output any non-code content or Markdown code blocks.'}],
)
print(completion.choices[0].message.content)
Response
def find_prime_numbers(n):
if n <= 2:
return []
primes = []
for num in range(2, n):
is_prime = True
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
is_prime = False
break
if is_prime:
primes.append(num)
return primesNode.js
Contoh permintaan
import OpenAI from "openai";
const client = new OpenAI(
{
// Kunci API bervariasi berdasarkan Wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/zh/model-studio/get-api-key
// Jika Anda belum mengonfigurasi Variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: apiKey: "sk-xxx",
apiKey: process.env.DASHSCOPE_API_KEY,
// Untuk menggunakan model di Wilayah China (Beijing), ganti base_url dengan https://dashscope.aliyuncs.com/compatible-mode/v1
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
}
);
async function main() {
const completion = await client.chat.completions.create({
model: "qwen3-coder-next",
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "Write a Python function find_prime_numbers that takes an integer n as an argument and returns a list of all prime numbers less than n. Do not output any non-code content or Markdown code blocks." }
],
});
console.log(completion.choices[0].message.content);
}
main();Response
def find_prime_numbers(n):
if n <= 2:
return []
primes = []
for num in range(2, n):
is_prime = True
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
is_prime = False
break
if is_prime:
primes.append(num)
return primescurl
Contoh permintaan
Untuk menggunakan model di Wilayah China (Beijing), ganti URL dengan 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": "qwen3-coder-next",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Write a Python function find_prime_numbers that takes an integer n as an argument and returns a list of all prime numbers less than n. Do not output any non-code content or Markdown code blocks."
}
]
}'Response
{
"model": "qwen3-coder-next",
"id": "chatcmpl-3123d5cb-01b8-9a90-98cc-5bffbb369xxx",
"choices": [
{
"message": {
"content": "def find_prime_numbers(n):\n if n <= 2:\n return []\n \n primes = []\n for num in range(2, n):\n is_prime = True\n for i in range(2, int(num ** 0.5) + 1):\n if num % i == 0:\n is_prime = False\n break\n if is_prime:\n primes.append(num)\n \n return primes",
"role": "assistant"
},
"index": 0,
"finish_reason": "stop"
}
],
"created": 1770108104,
"object": "chat.completion",
"usage": {
"total_tokens": 155,
"completion_tokens": 89,
"prompt_tokens": 66
}
}DashScope
Python
Contoh permintaan
import dashscope
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Write a Python function find_prime_numbers that takes an integer n as an argument and returns a list of all prime numbers less than n. Do not output any non-code content or Markdown code blocks."
}
]
response = dashscope.Generation.call(
# Kunci API bervariasi berdasarkan Wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Jika Anda belum mengonfigurasi Variabel lingkungan, ganti baris berikut dengan Kunci API Alibaba Cloud Model Studio Anda: api_key = "sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3-coder-next",
messages=messages,
result_format="message"
)
if response.status_code == 200:
print(response.output.choices[0].message.content)
else:
print(f"HTTP status code: {response.status_code}")
print(f"Error code: {response.code}")
print(f"Error message: {response.message}")Response
def find_prime_numbers(n):
if n <= 2:
return []
primes = []
for num in range(2, n):
is_prime = True
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
is_prime = False
break
if is_prime:
primes.append(num)
return primesJava
Contoh permintaan
import java.util.Arrays;
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.protocol.Protocol;
public class Main {
public static GenerationResult callWithMessage()
throws NoApiKeyException, ApiException, InputRequiredException {
String apiKey = System.getenv("DASHSCOPE_API_KEY");
Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
Message sysMsg = Message.builder()
.role(Role.SYSTEM.getValue())
.content("You are a helpful assistant.").build();
Message userMsg = Message.builder()
.role(Role.USER.getValue())
.content("Write a Python function find_prime_numbers that takes an integer n as an argument and returns a list of all prime numbers less than n. Do not output any non-code content or Markdown code blocks.").build();
GenerationParam param = GenerationParam.builder()
.apiKey(apiKey)
.model("qwen3-coder-next")
.messages(Arrays.asList(sysMsg, userMsg))
.resultFormat(GenerationParam.ResultFormat.MESSAGE)
.build();
return gen.call(param);
}
public static void main(String[] args){
try {
GenerationResult result = callWithMessage();
System.out.println(result.getOutput().getChoices().get(0).getMessage().getContent());
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
System.err.println("Request failed: " + e.getMessage());
e.printStackTrace();
}
}
}Response
def find_prime_numbers(n):
if n <= 2:
return []
primes = []
for num in range(2, n):
is_prime = True
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
is_prime = False
break
if is_prime:
primes.append(num)
return primescurl
Contoh permintaan
Untuk menggunakan model di Wilayah China (Beijing), ganti URL dengan https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation.
curl -X POST "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-coder-next",
"input":{
"messages":[
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Write a Python function find_prime_numbers that takes an integer n as an argument and returns a list of all prime numbers less than n. Do not output any non-code content or Markdown code blocks."
}
]
},
"parameters": {
"result_format": "message"
}
}'Response
{
"output": {
"choices": [
{
"message": {
"content": "def find_prime_numbers(n):\n if n <= 2:\n return []\n \n primes = []\n for num in range(2, n):\n is_prime = True\n for i in range(2, int(num ** 0.5) + 1):\n if num % i == 0:\n is_prime = False\n break\n if is_prime:\n primes.append(num)\n \n return primes",
"role": "assistant"
},
"finish_reason": "stop"
}
]
},
"usage": {
"total_tokens": 155,
"input_tokens": 66,
"output_tokens": 89
},
"request_id": "dd78b1cf-8029-46bb-9bea-b794ded7bxxx"
}Pemilihan model
Rekomendasi utama:
qwen3-coder-nextmemberikan keseimbangan luar biasa antara kualitas kode, kecepatan respons, dan biaya, menjadikannya pilihan utama untuk sebagian besar skenario. Model ini mendukung pemanggilan tool multi-turn, menawarkan pemahaman kode tingkat repositori yang dioptimalkan, menyediakan stabilitas yang lebih baik untuk pemanggilan tool, serta memiliki kompatibilitas yang lebih baik dengan alat pengkodean Agentic.Untuk kualitas tertinggi: Untuk tugas yang sangat kompleks atau ketika Anda memerlukan generasi berkualitas tertinggi, gunakan
qwen3-coder-plusuntuk mencapai hasil terbaik.
Untuk kode model, ukuran context window, harga, dan Snapshot, lihat daftar model (Commercial | Open source). Untuk batas permintaan bersamaan, lihat Pembatasan laju ( Commercial | Open source).
Kemampuan inti
Pemanggilan alat
Untuk memungkinkan model berinteraksi dengan lingkungan eksternal, seperti membaca dan menulis file, memanggil API, serta berinteraksi dengan database, Anda dapat menyediakan serangkaian tools. Model akan menentukan apakah dan bagaimana memanggil tools tersebut berdasarkan instruksi Anda. Untuk informasi selengkapnya, lihat Function Calling.
Proses lengkap pemanggilan tool mencakup langkah-langkah berikut:
Definisikan tools dan buat permintaan: Definisikan daftar tools dalam permintaan Anda dan minta model untuk melakukan tugas yang memerlukan tools tersebut.
Jalankan tools: Uraikan
tool_callsdari respons model dan panggil fungsi tool lokal yang sesuai untuk menjalankan tugas.Kembalikan hasil eksekusi: Kemas hasil eksekusi tool ke dalam format yang diperlukan dan kirimkan kembali ke model. Hal ini memungkinkan model menyelesaikan tugas akhir berdasarkan hasil tersebut.
Contoh berikut menunjukkan cara memandu model untuk menghasilkan kode dan menggunakan tool write_file untuk menyimpannya ke file lokal.
OpenAI compatible Chat Completions API
Python
import os
import json
from openai import OpenAI
client = OpenAI(
# Kunci API bervariasi berdasarkan Wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# Jika Anda belum mengonfigurasi Variabel lingkungan, ganti baris berikut dengan Kunci API Alibaba Cloud Model Studio Anda: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
tools = [
{
"type": "function",
"function": {
"name": "write_file",
"description": "Writes content to a specified file. Creates the file if it does not exist.",
"parameters": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The relative or absolute path of the object file"
},
"content": {
"type": "string",
"description": "The string content to write to the file"
}
},
"required": ["path", "content"]
}
}
}
]
# Implementasi fungsi tool
def write_file(path: str, content: str) -> str:
"""Write file content"""
try:
# Pastikan direktori ada.
os.makedirs(os.path.dirname(path),
exist_ok=True) if os.path.dirname(path) else None
with open(path, 'w', encoding='utf-8') as f:
f.write(content)
return f"Success: File '{path}' has been written."
except Exception as e:
return f"Error: An exception occurred while writing the file - {str(e)}"
messages = [{"role": "user", "content": "Write a Python script for quick sort and name it quick_sort.py."}]
completion = client.chat.completions.create(
model="qwen3-coder-next",
messages=messages,
tools=tools
)
assistant_output = completion.choices[0].message
if assistant_output.content is None:
assistant_output.content = ""
messages.append(assistant_output)
# Jika tidak diperlukan pemanggilan tool, langsung keluarkan kontennya.
if assistant_output.tool_calls is None:
print(f"No tool call is required. Direct response: {assistant_output.content}")
else:
# Masuk ke loop pemanggilan tool.
while assistant_output.tool_calls is not None:
for tool_call in assistant_output.tool_calls:
tool_call_id = tool_call.id
func_name = tool_call.function.name
arguments = json.loads(tool_call.function.arguments)
print(f"Calling tool [{func_name}] with arguments: {arguments}")
# Jalankan tool.
tool_result = write_file(**arguments)
# Buat pesan balasan tool.
tool_message = {
"role": "tool",
"tool_call_id": tool_call_id,
"content": tool_result,
}
print(f"Tool returns: {tool_message['content']}")
messages.append(tool_message)
# Panggil model lagi untuk mendapatkan respons bahasa alami yang dirangkum.
response = client.chat.completions.create(
model="qwen3-coder-next",
messages=messages,
tools=tools
)
assistant_output = response.choices[0].message
if assistant_output.content is None:
assistant_output.content = ""
messages.append(assistant_output)
print(f"Final model response: {assistant_output.content}")
Response
Calling tool [write_file] with arguments: {'content': 'def quick_sort(arr):\\n if len(arr) <= 1:\\n return arr\\n pivot = arr[len(arr) // 2]\\n left = [x for x in arr if x < pivot]\\n middle = [x for x in arr if x == pivot]\\n right = [x for x in arr if x > pivot]\\n return quick_sort(left) + middle + quick_sort(right)\\n\\nif __name__ == \\"__main__\\":\\n example_list = [3, 6, 8, 10, 1, 2, 1]\\n print(\\"Original list:\\", example_list)\\n sorted_list = quick_sort(example_list)\\n print(\\"Sorted list:\\", sorted_list)', 'path': 'quick_sort.py'}
Tool returns: Success: File 'quick_sort.py' has been written.
Final model response: OK. I have created a file named `quick_sort.py` for you, which contains the Python implementation of quick sort. You can run this file to see the sample output. Let me know if you need any further modifications or explanations!Node.js
import OpenAI from "openai";
import fs from "fs/promises";
import path from "path";
const client = new OpenAI({
// Kunci API bervariasi menurut Wilayah. Untuk mendapatkan kunci API, lihat https://www.alibabacloud.com/help/zh/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan kunci API Model Studio Anda: apiKey: "sk-xxx",
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
});
const tools = [
{
"type": "function",
"function": {
"name": "write_file",
"description": "Menulis konten ke file yang ditentukan. Membuat file jika tidak ada.",
"parameters": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "Jalur relatif atau absolut dari file objek"
},
"content": {
"type": "string",
"description": "Konten string untuk ditulis ke file"
}
},
"required": ["path", "content"]
}
}
}
];
// Implementasi fungsi alat
async function write_file(filePath, content) {
try {
// Untuk alasan keamanan, fitur penulisan file dinonaktifkan secara default. Untuk menggunakannya, batalkan komentar pada kode dan pastikan jalurnya aman.
// const dir = path.dirname(filePath);
// if (dir) {
// await fs.mkdir(dir, { recursive: true });
// }
// await fs.writeFile(filePath, content, "utf-8");
return `Sukses: File '${filePath}' telah ditulis.`;
} catch (error) {
return `Error: Terjadi pengecualian saat menulis file - ${error.message}`;
}
}
const messages = [{"role": "user", "content": "Write a Python script for quick sort and name it quick_sort.py."}];
async function main() {
const completion = await client.chat.completions.create({
model: "qwen3-coder-next",
messages: messages,
tools: tools
});
let assistant_output = completion.choices[0].message;
// Pastikan konten tidak null.
if (!assistant_output.content) assistant_output.content = "";
messages.push(assistant_output);
// Jika tidak ada pemanggilan alat yang diperlukan, langsung keluarkan kontennya.
if (!assistant_output.tool_calls) {
console.log(`Tidak ada pemanggilan alat yang diperlukan. Tanggapan langsung: ${assistant_output.content}`);
} else {
// Masuk ke loop pemanggilan alat.
while (assistant_output.tool_calls) {
for (const tool_call of assistant_output.tool_calls) {
const tool_call_id = tool_call.id;
const func_name = tool_call.function.name;
const args = JSON.parse(tool_call.function.arguments);
console.log(`Memanggil alat [${func_name}] dengan argumen:`, args);
// Jalankan alat.
const tool_result = await write_file(args.path, args.content);
// Buat paket pengembalian alat.
const tool_message = {
"role": "tool",
"tool_call_id": tool_call_id,
"content": tool_result
};
console.log(`Alat mengembalikan: ${tool_message.content}`);
messages.push(tool_message);
}
// Panggil model lagi untuk mendapatkan tanggapan bahasa alami yang diringkas.
const response = await client.chat.completions.create({
model: "qwen3-coder-next",
messages: messages,
tools: tools
});
assistant_output = response.choices[0].message;
if (!assistant_output.content) assistant_output.content = "";
messages.push(assistant_output);
}
console.log(`Tanggapan model akhir: ${assistant_output.content}`);
}
}
main();
Response
Calling tool [write_file] with arguments: {
content: 'def quick_sort(arr):\\n if len(arr) <= 1:\\n return arr\\n pivot = arr[len(arr) // 2]\\n left = [x for x in arr if x < pivot]\\n middle = [x for x in arr if x == pivot]\\n right = [x for x in arr if x > pivot]\\n return quick_sort(left) + middle + quick_sort(right)\\n\\nif __name__ == \\"__main__\\":\\n example_list = [3, 6, 8, 10, 1, 2, 1]\\n print(\\"Original list:\\", example_list)\\n sorted_list = quick_sort(example_list)\\n print(\\"Sorted list:\\", sorted_list)',
path: 'quick_sort.py'
}
Tool returns: Success: File 'quick_sort.py' has been written.
Final model response: The `quick_sort.py` file has been successfully created with the Python implementation of quick sort. You can run the file to see the sorting result for the example list. Let me know if you need any further modifications or explanations!curl
Contoh ini menunjukkan langkah pertama proses pemanggilan tool: membuat permintaan dan mendapatkan maksud model untuk memanggil tool.
Untuk menggunakan model di Wilayah China (Beijing), ganti URL dengan 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": "qwen3-coder-next",
"messages": [
{
"role": "user",
"content": "Write a Python script for quick sort and name it quick_sort.py."
}
],
"tools": [
{
"type": "function",
"function": {
"name": "write_file",
"description": "Writes content to a specified file. Creates the file if it does not exist.",
"parameters": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The relative or absolute path of the object file"
},
"content": {
"type": "string",
"description": "The string content to write to the file"
}
},
"required": ["path", "content"]
}
}
}
]
}'Response
{
"choices": [
{
"message": {
"content": "",
"role": "assistant",
"tool_calls": [
{
"index": 0,
"id": "call_0ca7505bb6e44471a40511e5",
"type": "function",
"function": {
"name": "write_file",
"arguments": "{\"content\": \"def quick_sort(arr):\\\\n if len(arr) <= 1:\\\\n return arr\\\\n pivot = arr[len(arr) // 2]\\\\n left = [x for x in arr if x < pivot]\\\\n middle = [x for x in arr if x == pivot]\\\\n right = [x for x in arr if x > pivot]\\\\n return quick_sort(left) + middle + quick_sort(right)\\\\n\\\\nif __name__ == \\\\\\\"__main__\\\\\\\":\\\\n example_list = [3, 6, 8, 10, 1, 2, 1]\\\\n print(\\\\\\\"Original list:\\\\\\\", example_list)\\\\n sorted_list = quick_sort(example_list)\\\\n print(\\\\\\\"Sorted list:\\\\\\\", sorted_list)\", \"path\": \"quick_sort.py\"}"
}
}
]
},
"finish_reason": "tool_calls",
"index": 0,
"logprobs": null
}
],
"object": "chat.completion",
"usage": {
"prompt_tokens": 494,
"completion_tokens": 193,
"total_tokens": 687,
"prompt_tokens_details": {
"cached_tokens": 0
}
},
"created": 1761620025,
"system_fingerprint": null,
"model": "qwen3-coder-next",
"id": "chatcmpl-20e96159-beea-451f-b3a4-d13b218112b5"
}DashScope
Python
import os
import json
import dashscope
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
tools = [
{
"type": "function",
"function": {
"name": "write_file",
"description": "Writes content to a specified file. Creates the file if it does not exist.",
"parameters": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The relative or absolute path of the object file"
},
"content": {
"type": "string",
"description": "The string content to write to the file"
}
},
"required": ["path", "content"]
}
}
}
]
# Implementasi fungsi tool
def write_file(path: str, content: str) -> str:
"""Write file content"""
try:
# Untuk alasan keamanan, fitur penulisan file dinonaktifkan secara default. Untuk menggunakannya, hapus komentar pada kode dan pastikan jalurnya aman.
# os.makedirs(os.path.dirname(path),exist_ok=True) if os.path.dirname(path) else None
# with open(path, 'w', encoding='utf-8') as f:
# f.write(content)
return f"Success: File '{path}' has been written."
except Exception as e:
return f"Error: An exception occurred while writing the file - {str(e)}"
messages = [{"role": "user", "content": "Write a Python script for quick sort and name it quick_sort.py."}]
response = dashscope.Generation.call(
# Jika Anda belum mengonfigurasi Variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: api_key="sk-xxx",
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3-coder-next',
messages=messages,
tools=tools,
result_format='message'
)
if response.status_code == 200:
assistant_output = response.output.choices[0].message
messages.append(assistant_output)
# Jika tidak diperlukan pemanggilan tool, langsung keluarkan kontennya.
if "tool_calls" not in assistant_output or not assistant_output["tool_calls"]:
print(f"No tool call is required. Direct response: {assistant_output['content']}")
else:
# Masuk ke loop pemanggilan tool.
while "tool_calls" in assistant_output and assistant_output["tool_calls"]:
for tool_call in assistant_output["tool_calls"]:
func_name = tool_call["function"]["name"]
arguments = json.loads(tool_call["function"]["arguments"])
tool_call_id = tool_call.get("id")
print(f"Calling tool [{func_name}] with arguments: {arguments}")
# Jalankan tool.
tool_result = write_file(**arguments)
# Buat pesan balasan tool.
tool_message = {
"role": "tool",
"content": tool_result,
"tool_call_id": tool_call_id
}
print(f"Tool returns: {tool_message['content']}")
messages.append(tool_message)
# Panggil model lagi untuk mendapatkan respons bahasa alami yang dirangkum.
response = dashscope.Generation.call(
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3-coder-next',
messages=messages,
tools=tools,
result_format='message'
)
if response.status_code == 200:
print(f"Final model response: {response.output.choices[0].message.content}")
assistant_output = response.output.choices[0].message
messages.append(assistant_output)
else:
print(f"Error during summary response generation: {response}")
break
else:
print(f"Execution error: {response}")
Response
Calling tool [write_file], parameters: {'content': 'def quick_sort(arr):\\n if len(arr) <= 1:\\n return arr\\n pivot = arr[len(arr) // 2]\\n left = [x for x in arr if x < pivot]\\n middle = [x for x in arr if x == pivot]\\n right = [x for x in arr if x > pivot]\\n return quick_sort(left) + middle + quick_sort(right)\\n\\nif __name__ == \\"__main__\\":\\n example_list = [3, 6, 8, 10, 1, 2, 1]\\n print(\\"Original list:\\", example_list)\\n sorted_list = quick_sort(example_list)\\n print(\\"Sorted list:\\", sorted_list)', 'path': 'quick_sort.py'}
Tool returned: Success: File 'quick_sort.py' has been written
Final model response: The `quick_sort.py` file has been successfully created. It contains a Python implementation of quick sort. You can run the file to view the sorting result for the example list. If you need any further modifications or explanations, please let me know!Java
import com.alibaba.dashscope.aigc.generation.Generation;
import com.alibaba.dashscope.aigc.generation.GenerationParam;
import com.alibaba.dashscope.aigc.generation.GenerationResult;
import com.alibaba.dashscope.common.Message;
import com.alibaba.dashscope.common.Role;
import com.alibaba.dashscope.protocol.Protocol;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.tools.FunctionDefinition;
import com.alibaba.dashscope.tools.ToolCallBase;
import com.alibaba.dashscope.tools.ToolCallFunction;
import com.alibaba.dashscope.tools.ToolFunction;
import com.alibaba.dashscope.utils.JsonUtils;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
/**
* Write file content
* @param arguments A JSON string passed by the model, containing the parameters required by the tool.
* @return A string result after the tool is executed.
*/
public static String writeFile(String arguments) {
try {
ObjectMapper objectMapper = new ObjectMapper();
JsonNode argsNode = objectMapper.readTree(arguments);
String path = argsNode.get("path").asText();
String content = argsNode.get("content").asText();
// Untuk alasan keamanan, fitur penulisan file dinonaktifkan secara default. Untuk menggunakannya, hapus komentar pada kode dan pastikan jalurnya aman.
// File file = new File(path);
// File parentDir = file.getParentFile();
// if (parentDir != null && !parentDir.exists()) {
// parentDir.mkdirs();
// }
// Files.write(Paths.get(path), content.getBytes(StandardCharsets.UTF_8));
return "Success: File '" + path + "' has been written.";
} catch (Exception e) {
return "Error: An exception occurred while writing the file - " + e.getMessage();
}
}
public static void main(String[] args) {
try {
// Definisikan skema parameter tool.
String writePropertyParams =
"{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\",\"description\":\"The relative or absolute path of the object file\"},\"content\":{\"type\":\"string\",\"description\":\"The string content to write to the file\"}},\"required\":[\"path\",\"content\"]}";
FunctionDefinition writeFileFunction = FunctionDefinition.builder()
.name("write_file")
.description("Writes content to a specified file. Creates the file if it does not exist.")
.parameters(JsonUtils.parseString(writePropertyParams).getAsJsonObject())
.build();
Generation gen = new Generation(Protocol.HTTP.getValue(), "https://dashscope-intl.aliyuncs.com/api/v1");
String userInput = "Write a Python script for quick sort and name it quick_sort.py.";
List<Message> messages = new ArrayList<>();
messages.add(Message.builder().role(Role.USER.getValue()).content(userInput).build());
// Panggilan pertama ke model
GenerationParam param = GenerationParam.builder()
.model("qwen3-coder-next")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.messages(messages)
.tools(Arrays.asList(ToolFunction.builder().function(writeFileFunction).build()))
.resultFormat(GenerationParam.ResultFormat.MESSAGE)
.build();
GenerationResult result = gen.call(param);
Message assistantOutput = result.getOutput().getChoices().get(0).getMessage();
messages.add(assistantOutput);
// Jika tidak diperlukan pemanggilan tool, langsung keluarkan kontennya.
if (assistantOutput.getToolCalls() == null || assistantOutput.getToolCalls().isEmpty()) {
System.out.println("No tool call is required. Direct response: " + assistantOutput.getContent());
} else {
// Masuk ke loop pemanggilan tool.
while (assistantOutput.getToolCalls() != null && !assistantOutput.getToolCalls().isEmpty()) {
for (ToolCallBase toolCall : assistantOutput.getToolCalls()) {
ToolCallFunction functionCall = (ToolCallFunction) toolCall;
String funcName = functionCall.getFunction().getName();
String arguments = functionCall.getFunction().getArguments();
System.out.println("Calling tool [" + funcName + "] with arguments: " + arguments);
// Jalankan tool.
String toolResult = writeFile(arguments);
// Buat pesan balasan tool.
Message toolMessage = Message.builder()
.role("tool")
.toolCallId(toolCall.getId())
.content(toolResult)
.build();
System.out.println("Tool returns: " + toolMessage.getContent());
messages.add(toolMessage);
}
// Panggil model lagi untuk mendapatkan respons bahasa alami yang dirangkum.
param.setMessages(messages);
result = gen.call(param);
assistantOutput = result.getOutput().getChoices().get(0).getMessage();
messages.add(assistantOutput);
}
System.out.println("Final model response: " + assistantOutput.getContent());
}
} catch (NoApiKeyException | InputRequiredException e) {
System.err.println("Error: " + e.getMessage());
} catch (Exception e) {
e.printStackTrace();
}
}
}
Response
Calling tool [write_file] with arguments: {"content": "def quick_sort(arr):\\n if len(arr) <= 1:\\n return arr\\n pivot = arr[len(arr) // 2]\\n left = [x for x in arr if x < pivot]\\n middle = [x for x in arr if x == pivot]\\n right = [x for x in arr if x > pivot]\\n return quick_sort(left) + middle + quick_sort(right)\\n\\nif __name__ == \\\"__main__\\\":\\n example_array = [3, 6, 8, 10, 1, 2, 1]\\n print(\\\"Original array:\\\", example_array)\\n sorted_array = quick_sort(example_array)\\n print(\\\"Sorted array:\\\", sorted_array)", "path": "quick_sort.py"}
Tool returns: Success: File 'quick_sort.py' has been written.
Final model response: I have successfully created the Python code file `quick_sort.py` for you. This file contains a `quick_sort` function and an example of its usage. You can run it in your terminal or editor to test the quick sort functionality.curl
Contoh ini menunjukkan langkah pertama proses pemanggilan tool: membuat permintaan dan mendapatkan maksud model untuk memanggil tool.
Untuk menggunakan model di Wilayah China (Beijing), ganti URL dengan https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation.
curl --location "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"model": "qwen3-coder-next",
"input": {
"messages": [{
"role": "user",
"content": "Write a Python script for quick sort and name it quick_sort.py."
}]
},
"parameters": {
"result_format": "message",
"tools": [
{
"type": "function",
"function": {
"name": "write_file",
"description": "Writes content to a specified file. Creates the file if it does not exist.",
"parameters": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The relative or absolute path of the object file"
},
"content": {
"type": "string",
"description": "The string content to write to the file"
}
},
"required": ["path", "content"]
}
}
}
]
}
}'Response
{
"output": {
"choices": [
{
"finish_reason": "tool_calls",
"message": {
"role": "assistant",
"tool_calls": [
{
"function": {
"name": "write_file",
"arguments": "{\"content\": \"def quick_sort(arr):\\\\n if len(arr) <= 1:\\\\n return arr\\\\n pivot = arr[len(arr) // 2]\\\\n left = [x for x in arr if x < pivot]\\\\n middle = [x for x in arr if x == pivot]\\\\n right = [x for x in arr if x > pivot]\\\\n return quick_sort(left) + middle + quick_sort(right)\\\\n\\\\nif __name__ == \\\\\\\"__main__\\\\\\\":\\\\n example_list = [3, 6, 8, 10, 1, 2, 1]\\\\n print(\\\\\\\"Original list:\\\\\\\", example_list)\\\\n sorted_list = quick_sort(example_list)\\\\n print(\\\\\\\"Sorted list:\\\\\\\", sorted_list), \"path\": \"quick_sort.py\"}"
},
"index": 0,
"id": "call_645b149bbd274e8bb3789aae",
"type": "function"
}
],
"content": ""
}
}
]
},
"usage": {
"total_tokens": 684,
"output_tokens": 193,
"input_tokens": 491,
"prompt_tokens_details": {
"cached_tokens": 0
}
},
"request_id": "d2386acd-fce3-9d0f-8015-c5f3a8bf9f5c"
}Penyelesaian kode
Qwen-Coder mendukung dua metode penyelesaian kode:
Mode parsial: Mendukung semua model Qwen-Coder dan wilayah. Mendukung penyelesaian awalan (prefix completion), implementasinya sederhana, dan direkomendasikan.
Completions API: Metode ini hanya tersedia untuk seri
qwen2.5-coderdi Wilayah China (Beijing). Mendukung penyelesaian awalan (prefix completion) dan penyelesaian isi-tengah (fill-in-the-middle completion).
Mode parsial
Secara otomatis melengkapi sisa kode Anda berdasarkan awalan (prefix) yang telah ditulis sebagian.
Untuk menggunakan fitur ini, tambahkan pesan dengan role diatur ke assistant ke daftar messages dan atur partial: true. content dari pesan assistant adalah awalan kode yang Anda berikan. Untuk informasi selengkapnya, lihat Partial mode.
OpenAI compatible
Python
Contoh permintaan
import os
from openai import OpenAI
client = OpenAI(
# Jika Anda belum mengonfigurasi Variabel lingkungan, ganti baris berikut dengan Kunci API Alibaba Cloud Model Studio Anda: api_key="sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3-coder-next",
messages=[{
"role": "user",
"content": "Write a Python script to generate prime numbers up to 100. Do not output any non-code content or Markdown code blocks."
},
{
"role": "assistant",
"content": "def generate_prime_number",
"partial": True
}]
)
print(completion.choices[0].message.content)
Response
(n):
primes = []
for i in range(2, n+1):
is_prime = True
for j in range(2, int(i**0.5)+1):
if i % j == 0:
is_prime = False
break
if is_prime:
primes.append(i)
return primes
prime_numbers = generate_prime_number(100)
print(prime_numbers)Node.js
Contoh permintaan
import OpenAI from "openai";
const client = new OpenAI(
{
// Jika Anda belum mengonfigurasi Variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: apiKey: "sk-xxx",
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
}
);
async function main() {
const completion = await client.chat.completions.create({
model: "qwen3-coder-next",
messages: [
{ role: "user", content: "Write a Python script to generate prime numbers up to 100. Do not output any non-code content or Markdown code blocks." },
{ role: "assistant", content: "def generate_prime_number", partial: true}
],
});
console.log(completion.choices[0].message.content);
}
main();Response
(n):
primes = []
for i in range(2, n+1):
is_prime = True
for j in range(2, int(i**0.5)+1):
if i % j == 0:
is_prime = False
break
if is_prime:
primes.append(i)
return primes
prime_numbers = generate_prime_number(100)
print(prime_numbers)curl
Contoh permintaan
Untuk menggunakan model di Wilayah China (Beijing), ganti URL dengan 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": "qwen3-coder-next",
"messages": [{
"role": "user",
"content": "Write a Python script to generate prime numbers up to 100. Do not output any non-code content or Markdown code blocks."
},
{
"role": "assistant",
"content": "def generate_prime_number",
"partial": true
}]
}'Response
{
"choices": [
{
"message": {
"content": "(n):\n primes = []\n for num in range(2, n + 1):\n is_prime = True\n for i in range(2, int(num ** 0.5) + 1):\n if num % i == 0:\n is_prime = False\n break\n if is_prime:\n primes.append(num)\n return primes\n\nprime_numbers = generate_prime_number(100)\nprint(prime_numbers)",
"role": "assistant"
},
"finish_reason": "stop",
"index": 0,
"logprobs": null
}
],
"object": "chat.completion",
"usage": {
"prompt_tokens": 38,
"completion_tokens": 93,
"total_tokens": 131,
"prompt_tokens_details": {
"cached_tokens": 0
}
},
"created": 1761634556,
"system_fingerprint": null,
"model": "qwen3-coder-plus",
"id": "chatcmpl-c108050a-bb6d-4423-9d36-f64aa6a32976"
}DashScope
Python
Contoh permintaan
from http import HTTPStatus
import dashscope
import os
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [{
"role": "user",
"content": "Write a Python script to generate prime numbers up to 100. Do not output any non-code content or Markdown code blocks."
},
{
"role": "assistant",
"content": "def generate_prime_number",
"partial": True
}]
response = dashscope.Generation.call(
# Jika Anda belum mengonfigurasi Variabel lingkungan, ganti baris berikut dengan Kunci API Studio Model Anda: api_key="sk-xxx",
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3-coder-next',
messages=messages,
result_format='message',
)
if response.status_code == HTTPStatus.OK:
print(response.output.choices[0].message.content)
else:
print(f"HTTP status code: {response.status_code}")
print(f"Error code: {response.code}")
print(f"Error message: {response.message}")
Response
(n):
primes = []
for i in range(2, n+1):
is_prime = True
for j in range(2, int(i**0.5)+1):
if i % j == 0:
is_prime = False
break
if is_prime:
primes.append(i)
return primes
prime_numbers = generate_prime_number(100)
print(prime_numbers)curl
Contoh permintaan
Untuk menggunakan model di Wilayah China (Beijing), ganti URL dengan https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation.
curl -X POST "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3-coder-next",
"input":{
"messages":[{
"role": "user",
"content": "Write a Python script to generate prime numbers up to 100. Do not output any non-code content or Markdown code blocks."
},
{
"role": "assistant",
"content": "def generate_prime_number",
"partial": true
}]
},
"parameters": {
"result_format": "message"
}
}'Response
{
"output": {
"choices": [
{
"message": {
"content": "(n):\n prime_list = []\n for i in range(2, n+1):\n is_prime = True\n for j in range(2, int(i**0.5)+1):\n if i % j == 0:\n is_prime = False\n break\n if is_prime:\n prime_list.append(i)\n return prime_list\n\nprime_numbers = generate_prime_number(100)\nprint(prime_numbers)",
"role": "assistant"
},
"finish_reason": "stop"
}
]
},
"usage": {
"total_tokens": 131,
"output_tokens": 92,
"input_tokens": 39,
"prompt_tokens_details": {
"cached_tokens": 0
}
},
"request_id": "9917f629-e819-4519-af44-b0e677e94b2c"
}Completions API
Completions API hanya berlaku untuk model di Wilayah China (Beijing) dan memerlukan Kunci API untuk Wilayah China (Beijing).
Model yang didukung:
qwen2.5-coder-0.5b-instruct, qwen2.5-coder-1.5b-instruct, qwen2.5-coder-3b-instruct, qwen2.5-coder-7b-instruct, qwen2.5-coder-14b-instruct, qwen2.5-coder-32b-instruct, qwen-coder-turbo-0919, qwen-coder-turbo-latest, qwen-coder-turbo
Completions API menggunakan tag khusus fim (Fill-in-the-Middle) dalam prompt untuk memandu penyelesaian model.
Penyelesaian berbasis awalan
Templat prompt:
<|fim_prefix|>{prefix_content}<|fim_suffix|><|fim_prefix|>dan<|fim_suffix|>adalah token khusus yang memandu model untuk melengkapi teks. Jangan ubah token tersebut.Ganti
{prefix_content}dengan informasi awalan, seperti nama fungsi, parameter input, dan instruksi penggunaan.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
api_key=os.getenv("DASHSCOPE_API_KEY")
)
completion = client.completions.create(
model="qwen2.5-coder-32b-instruct",
prompt="<|fim_prefix|>def quick_sort(arr):<|fim_suffix|>",
)
print(completion.choices[0].text)import OpenAI from "openai";
const client = new OpenAI(
{
// Jika Anda belum mengonfigurasi Variabel lingkungan, ganti baris berikut dengan Kunci API Alibaba Cloud Model Studio Anda: apiKey: "sk-xxx",
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1"
}
);
async function main() {
const completion = await client.completions.create({
model: "qwen2.5-coder-32b-instruct",
prompt: "<|fim_prefix|>def quick_sort(arr):<|fim_suffix|>",
});
console.log(completion.choices[0].text)
}
main();curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen2.5-coder-32b-instruct",
"prompt": "<|fim_prefix|>def quick_sort(arr):<|fim_suffix|>"
}'Penyelesaian berbasis awalan dan akhiran
Templat prompt:
<|fim_prefix|>{prefix_content}<|fim_suffix|>{suffix_content}<|fim_middle|><|fim_prefix|>,<|fim_suffix|>, dan<|fim_middle|>adalah token khusus yang memandu model untuk melengkapi teks. Jangan ubah token tersebut.Ganti
{prefix_content}dengan informasi awalan, seperti nama fungsi, parameter input, dan instruksi penggunaan.Ganti
{suffix_content}dengan informasi akhiran, seperti parameter kembalian fungsi.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
api_key=os.getenv("DASHSCOPE_API_KEY")
)
prefix_content = """def reverse_words_with_special_chars(s):
'''
Reverses each word in a string, preserving the position of non-alphabetic characters and word order.
Example:
reverse_words_with_special_chars("Hello, world!") -> "olleH, dlrow!"
Arguments:
s (str): Input string (may contain punctuation)
Returns:
str: The processed string, with words reversed but non-alphabetic characters in their original positions
'''
"""
suffix_content = "return result"
completion = client.completions.create(
model="qwen2.5-coder-32b-instruct",
prompt=f"<|fim_prefix|>{prefix_content}<|fim_suffix|>{suffix_content}<|fim_middle|>",
)
print(completion.choices[0].text)import OpenAI from 'openai';
const client = new OpenAI({
baseURL: "https://dashscope.aliyuncs.com/compatible-mode/v1",
apiKey: process.env.DASHSCOPE_API_KEY
});
const prefixContent = `def reverse_words_with_special_chars(s):
'''
Reverses each word in a string, preserving the position of non-alphabetic characters and word order.
Example:
reverse_words_with_special_chars("Hello, world!") -> "olleH, dlrow!"
Arguments:
s (str): Input string (may contain punctuation)
Returns:
str: The processed string, with words reversed but non-alphabetic characters in their original positions
'''
`;
const suffixContent = "return result";
async function main() {
const completion = await client.completions.create({
model: "qwen2.5-coder-32b-instruct",
prompt: `<|fim_prefix|>${prefixContent}<|fim_suffix|>${suffixContent}<|fim_middle|>`
});
console.log(completion.choices[0].text);
}
main();curl -X POST https://dashscope.aliyuncs.com/compatible-mode/v1/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen2.5-coder-32b-instruct",
"prompt": "<|fim_prefix|>def reverse_words_with_special_chars(s):\n\"\"\"\nReverses each word in a string, preserving the position of non-alphabetic characters and word order.\n Example:\n reverse_words_with_special_chars(\"Hello, world!\") -> \"olleH, dlrow!\"\n Arguments:\n s (str): Input string (may contain punctuation)\n Returns:\n str: The processed string, with words reversed but non-alphabetic characters in their original positions\n\"\"\"\n<|fim_suffix|>return result<|fim_middle|>"
}'Peluncuran
Untuk mengoptimalkan efisiensi dan mengurangi biaya, pertimbangkan rekomendasi berikut:
Streaming output: Mengatur
stream=Truemengembalikan hasil antara secara real time, yang mengurangi risiko timeout dan meningkatkan pengalaman pengguna.Turunkan suhu: Tugas pembuatan kode biasanya memerlukan hasil yang deterministik dan akurat. Turunkan
suhuuntuk mengurangi keacakan hasil yang dihasilkan.Cache konteks: Dalam skenario dengan banyak awalan berulang, seperti penyelesaian kode dan tinjauan kode, gunakan model yang mendukung cache konteks (seperti qwen3-coder-plus dan qwen3-coder-flash) untuk secara efektif mengurangi overhead.
Batasi jumlah tool: Untuk memastikan efisiensi dan efektivitas biaya pemanggilan model, kirimkan tidak lebih dari 20
toolssekaligus. Mengirimkan banyak deskripsi tool menghabiskan token input secara berlebihan. Hal ini tidak hanya meningkatkan biaya dan mengurangi kecepatan respons tetapi juga membuat model lebih sulit memilih tool yang tepat. Untuk informasi selengkapnya, lihat Function Calling.
Penagihan dan pembatasan laju
Penagihan dasar: Penagihan didasarkan pada jumlah token input
tokendan token outputtokenuntuk setiap permintaan. Harga satuan bervariasi berdasarkan model. Untuk harga spesifik, lihat Daftar model.Item penagihan khusus:
Penagihan bertingkat: Model
qwen3-codermenggunakan penagihan bertingkat. Ketika jumlah token input dalam permintaan tunggal mencapai tingkat tertentu, semua token input dan output untuk permintaan tersebut ditagih dengan harga satuan tingkat tersebut.Cache konteks: Untuk model yang mendukung cache konteks (
qwen3-coder-plus,qwen3-coder-flash), ketika beberapa permintaan berisi banyak input berulang (seperti dalam tinjauan kode), mekanisme caching dapat secara signifikan mengurangi biaya. Teks input yang mengenai cache implisit ditagih sebesar 20% dari harga satuan. Teks input yang mengenai cache eksplisit ditagih sebesar 10% dari harga satuan. Untuk informasi selengkapnya, lihat Cache konteks.Pemanggilan tool (Function calling): Saat Anda menggunakan pemanggilan tool, deskripsi tool yang Anda definisikan dalam parameter
toolsdihitung sebagai jumlah token inputtokendan dikenai biaya.
Pembatasan laju: Pemanggilan API dikenai batas ganda berdasarkan permintaan per menit (RPM) dan token per menit (TPM). Untuk informasi selengkapnya, lihat Pembatasan laju.
Kuota gratis (hanya untuk Wilayah Singapura): Tersedia Kuota gratis untuk pengguna baru sebesar 1 juta token untuk setiap model Qwen-Coder. Kuota berlaku selama 90 hari sejak Anda mengaktifkan Model Studio atau permintaan model Anda disetujui.
Referensi API
Untuk parameter input dan output, lihat Qwen.
FAQ
Mengapa alat pengembangan seperti Qwen Code dan Claude Code mengonsumsi banyak token?
Saat Anda menggunakan alat pengembangan eksternal untuk memanggil Qwen-Coder menyelesaikan tugas, alat tersebut mungkin memanggil API beberapa kali, yang mengonsumsi banyak token. Kami menyarankan memulai alat di direktori proyek tertentu. Banyak file di direktori startup (seperti direktori root) meningkatkan konsumsi token. Anda dapat mengaktifkan fitur Hanya kuota gratis untuk menghindari biaya tambahan setelah kuota gratis Anda habis.
Anda juga dapat membeli Paket Pengkodean, yang menawarkan kuota permintaan bulanan dengan biaya bulanan tetap dan dapat digunakan di alat AI. Untuk informasi selengkapnya, lihat Paket Pengkodean.
Bagaimana cara melihat penggunaan model?
Satu jam setelah Anda memanggil model, buka halaman Pemantauan (Singapura atau Beijing). Atur kondisi kueri, seperti rentang waktu dan ruang kerja. Kemudian, di area Models, temukan model target dan klik Monitor di kolom Actions untuk melihat statistik pemanggilan model. Untuk informasi selengkapnya, lihat dokumen Pemantauan.
Data diperbarui setiap jam. Selama periode puncak, mungkin terjadi latensi hingga satu jam.

Bagaimana cara membuat model hanya mengeluarkan kode tanpa teks penjelasan apa pun?
Anda dapat menggunakan metode berikut:
Batasan prompt: Beri instruksi eksplisit kepada model dalam prompt. Contohnya: "Kembalikan hanya kode. Jangan sertakan penjelasan, komentar, atau tag markdown apa pun."
Mengatur urutan
stop: Anda dapat menggunakan frasa sepertistop=["\n# Explanation:", "Description", "Explanation:", "Note:"]untuk menghentikan model lebih awal saat mulai menghasilkan teks penjelasan. Untuk informasi selengkapnya, lihat Referensi API Qwen.
Bagaimana cara menggunakan 2.000 panggilan gratis harian untuk Qwen-Coder?
Kuota ini khusus untuk alat Qwen Code dan harus digunakan melalui alat tersebut. Kuota ini dihitung secara terpisah dari kuota gratis untuk pengguna baru yang Anda terima saat mengaktifkan Model Studio. Keduanya tidak saling bertentangan. Untuk informasi selengkapnya, lihat Bagaimana cara menggunakan 2.000 panggilan gratis harian?