Qwen-Coder adalah model bahasa yang dirancang untuk tugas-tugas terkait kode. Anda dapat menggunakan API untuk memanggil model guna menghasilkan kode, melengkapi kode, dan berinteraksi dengan sistem eksternal melalui Pemanggilan alat.
Mulai
Prasyarat
Anda telah membuat Kunci API dan mengekspornya sebagai Variabel lingkungan.
Jika Anda menggunakan kit pengembangan perangkat lunak (SDK) untuk melakukan panggilan, Anda harus menginstal SDK. Versi DashScope Python SDK harus 1.24.6 atau lebih baru, dan versi DashScope Java SDK harus 2.21.10 atau lebih baru.
Contoh berikut menunjukkan cara memanggil model Qwen-Coder untuk menulis fungsi Python yang mencari bilangan prima.Anda juga dapat menggunakan alat developer seperti Qwen Code, Claude Code, dan Cline untuk mengintegrasikan model.
Kompatibel dengan OpenAI
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/en/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"),
# Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
# Contoh ini menggunakan qwen3-coder-plus. Anda dapat menggantinya dengan nama model lain sesuai kebutuhan.
model="qwen3-coder-plus",
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': 'Write a Python function named find_prime_numbers that accepts an integer n as a parameter and returns a list of all prime numbers less than n. Do not output any content other than the code and do not use Markdown code blocks.'}],
)
print(completion.choices[0].message.content)
Tanggapan
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/en/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,
// Jika Anda menggunakan model di wilayah 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-plus", //Contoh ini menggunakan qwen3-coder-plus. Anda dapat menggantinya dengan nama model lain sesuai kebutuhan.
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "Write a Python function named find_prime_numbers that accepts an integer n as a parameter and returns a list of all prime numbers less than n. Do not output any content other than the code and do not use Markdown code blocks." }
],
});
console.log(completion.choices[0].message.content);
}
main();Hasil
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
Jika Anda menggunakan model di wilayah 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-plus",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Write a Python function named find_prime_numbers that accepts an integer n as a parameter and returns a list of all prime numbers less than n. Do not output any content other than the code and do not use Markdown code blocks."
}
]
}'Hasil
{
"choices": [
{
"message": {
"content": "def find_prime_numbers(n):\n if n <= 2:\n return []\n \n primes = []\n \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",
"index": 0,
"logprobs": null
}
],
"object": "chat.completion",
"usage": {
"prompt_tokens": 96,
"completion_tokens": 90,
"total_tokens": 186,
"prompt_tokens_details": {
"cached_tokens": 0
}
},
"created": 1761615592,
"system_fingerprint": null,
"model": "qwen3-coder-plus",
"id": "chatcmpl-3de690bd-ae7f-461d-8eb6-d65b0577e803"
}DashScope
Python
Contoh permintaan
import dashscope
import os
# Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
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 named find_prime_numbers that accepts an integer n as a parameter and returns a list of all prime numbers less than n. Do not output any content other than the code and do not use Markdown code blocks."
}
]
response = dashscope.Generation.call(
# Kunci API bervariasi berdasarkan Wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/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"),
# Contoh ini menggunakan qwen3-coder-plus. Anda dapat menggantinya dengan nama model lain sesuai kebutuhan.
model="qwen3-coder-plus",
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}")Hasil
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");
// Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
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 named find_prime_numbers that accepts an integer n as a parameter and returns a list of all prime numbers less than n. Do not output any content other than the code and do not use Markdown code blocks.").build();
// Contoh ini menggunakan qwen3-coder-plus. Anda dapat menggantinya dengan nama model lain sesuai kebutuhan.
GenerationParam param = GenerationParam.builder()
.apiKey(apiKey)
.model("qwen3-coder-plus")
.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 exception: " + e.getMessage());
e.printStackTrace();
}
}
}Tanggapan
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
Jika Anda menggunakan model di wilayah 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-plus",
"input":{
"messages":[
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Write a Python function named find_prime_numbers that accepts an integer n as a parameter and returns a list of all prime numbers less than n. Do not output any content other than the code and do not use Markdown code blocks."
}
]
},
"parameters": {
"result_format": "message"
}
}'Tanggapan
{
"output": {
"choices": [
{
"message": {
"content": "def find_prime_numbers(n):\n if n <= 2:\n return []\n \n primes = []\n \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": 186,
"output_tokens": 90,
"input_tokens": 96,
"prompt_tokens_details": {
"cached_tokens": 0
}
},
"request_id": "b1b8d1f8-0d26-4651-a466-66eefa0e7c51"
}Pemilihan model
Qwen-Coder telah ditingkatkan ke seri Qwen3. Model ini mendukung jendela konteks hingga 1 juta token dan menawarkan beberapa varian untuk memenuhi berbagai kebutuhan terkait performa, kecepatan respons, dan biaya dalam berbagai skenario.
Rekomendasi:
qwen3-coder-plus: Model ini menawarkan kemampuan pemrograman terkuat dan cocok untuk tugas berkualitas tinggi seperti menghasilkan proyek kompleks dan melakukan Tinjauan kode mendalam.qwen3-coder-flash: Ini adalah model hemat biaya yang menyeimbangkan performa dan biaya, menawarkan kecepatan respons lebih cepat dengan harga lebih rendah. Cocok untuk skenario yang memerlukan respons cepat.
Untuk informasi lebih lanjut tentang nama model, jendela konteks, harga, dan versi snapshot, lihat Daftar Model. Untuk informasi lebih lanjut tentang batas permintaan konkuren, lihat Batas laju.
Kemampuan inti
Pemanggilan alat
Untuk memungkinkan model berinteraksi dengan lingkungan eksternal, seperti membaca dan menulis file, memanggil API, dan berinteraksi dengan database, Anda dapat menyediakan serangkaian tool. Model akan memutuskan apakah dan bagaimana memanggil tool tersebut berdasarkan instruksi Anda. Untuk informasi lebih lanjut, lihat Pemanggilan alat.
Proses pemanggilan alat lengkap mencakup langkah-langkah berikut:
Definisikan tool dan buat permintaan: Definisikan daftar tool dalam permintaan Anda dan minta model untuk melakukan tugas yang memerlukan tool tersebut.
Eksekusi tool: Uraikan
tool_callsdari tanggapan 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.
Kompatibel dengan OpenAI
Python
Contoh permintaan
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/en/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"),
# Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
tools = [
{
"type": "function",
"function": {
"name": "write_file",
"description": "Writes content to the specified file. If the file does not exist, it is created.",
"parameters": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The relative or absolute path of the target 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: The 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-plus",
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, cetak kontennya langsung.
if assistant_output.tool_calls is None:
print(f"No tool call needed, responding directly: {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}")
# Eksekusi 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 returned: {tool_message['content']}")
messages.append(tool_message)
# Panggil model lagi untuk mendapatkan tanggapan bahasa alami yang dirangkum.
response = client.chat.completions.create(
model="qwen3-coder-plus",
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"Model's final response: {assistant_output.content}")
Tanggapan
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 returned: Success: The file 'quick_sort.py' has been written.
Model's final response: Okay, I have created the file named `quick_sort.py` for you, which contains the Python implementation of quick sort. You can run this file to see the example output. Let me know if you need any further modifications or explanations!Node.js
Contoh permintaan
import OpenAI from "openai";
import fs from "fs/promises";
import path from "path";
const client = new OpenAI({
// Kunci API bervariasi berdasarkan Wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/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,
// Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1
baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1"
});
const tools = [
{
"type": "function",
"function": {
"name": "write_file",
"description": "Writes content to the specified file. If the file does not exist, it is created.",
"parameters": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The relative or absolute path of the target file."
},
"content": {
"type": "string",
"description": "The string content to write to the file."
}
},
"required": ["path", "content"]
}
}
}
];
// Implementasi fungsi tool
async function write_file(filePath, content) {
try:
// Untuk alasan keamanan, fitur penulisan file dinonaktifkan secara default. Untuk menggunakannya, hapus 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 `Success: The file '${filePath}' has been written.`;
} catch (error) {
return `Error: An exception occurred while writing the 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-plus",
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 diperlukan pemanggilan tool, cetak kontennya langsung.
if (!assistant_output.tool_calls) {
console.log(`No tool call needed, responding directly: ${assistant_output.content}`);
} else {
// Masuk ke loop pemanggilan tool.
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(`Calling tool [${func_name}] with arguments:`, args);
// Eksekusi tool.
const tool_result = await write_file(args.path, args.content);
// Buat pesan balasan tool.
const tool_message = {
"role": "tool",
"tool_call_id": tool_call_id,
"content": tool_result
};
console.log(`Tool returned: ${tool_message.content}`);
messages.push(tool_message);
}
// Panggil model lagi untuk mendapatkan tanggapan bahasa alami yang dirangkum.
const response = await client.chat.completions.create({
model: "qwen3-coder-plus",
messages: messages,
tools: tools
});
assistant_output = response.choices[0].message;
if (!assistant_output.content) assistant_output.content = "";
messages.push(assistant_output);
}
console.log(`Model's final response: ${assistant_output.content}`);
}
}
main();
Hasil
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 returned: Success: The file 'quick_sort.py' has been written.
Model's final 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 permintaan
Contoh ini menunjukkan langkah pertama proses pemanggilan tool: membuat permintaan dan mendapatkan maksud model untuk memanggil tool.
Jika Anda menggunakan model di wilayah 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-plus",
"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 the specified file. If the file does not exist, it is created.",
"parameters": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The relative or absolute path of the target file."
},
"content": {
"type": "string",
"description": "The string content to write to the file."
}
},
"required": ["path", "content"]
}
}
}
]
}'Tanggapan
{
"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-plus",
"id": "chatcmpl-20e96159-beea-451f-b3a4-d13b218112b5"
}DashScope
Python
Contoh permintaan
import os
import json
import dashscope
# Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
tools = [
{
"type": "function",
"function": {
"name": "write_file",
"description": "Writes content to the specified file. If the file does not exist, it is created.",
"parameters": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The relative or absolute path of the target 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: The 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-plus',
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, cetak kontennya langsung.
if "tool_calls" not in assistant_output or not assistant_output["tool_calls"]:
print(f"No tool call needed, responding directly: {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}")
# Eksekusi 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 returned: {tool_message['content']}")
messages.append(tool_message)
# Panggil model lagi untuk mendapatkan tanggapan bahasa alami yang dirangkum.
response = dashscope.Generation.call(
api_key=os.getenv('DASHSCOPE_API_KEY'),
model='qwen3-coder-plus',
messages=messages,
tools=tools,
result_format='message'
)
if response.status_code == 200:
print(f"Model's final 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: {response}")
break
else:
print(f"Execution error: {response}")
Tanggapan
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 returned: Success: The file 'quick_sort.py' has been written.
Model's final 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!Java
Contoh permintaan
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 with the result of the tool execution.
*/
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: The 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 target 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 the specified file. If the file does not exist, it is created.")
.parameters(JsonUtils.parseString(writePropertyParams).getAsJsonObject())
.build();
// Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
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-plus")
.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, cetak kontennya langsung.
if (assistantOutput.getToolCalls() == null || assistantOutput.getToolCalls().isEmpty()) {
System.out.println("No tool call needed, responding directly: " + 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);
// Eksekusi 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 returned: " + toolMessage.getContent());
messages.add(toolMessage);
}
// Panggil model lagi untuk mendapatkan tanggapan bahasa alami yang dirangkum.
param.setMessages(messages);
result = gen.call(param);
assistantOutput = result.getOutput().getChoices().get(0).getMessage();
messages.add(assistantOutput);
}
System.out.println("Model's final response: " + assistantOutput.getContent());
}
} catch (NoApiKeyException | InputRequiredException e) {
System.err.println("Error: " + e.getMessage());
} catch (Exception e) {
e.printStackTrace();
}
}
}
Tanggapan
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 returned: Success: The file 'quick_sort.py' has been written.
Model's final 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 permintaan
Contoh ini menunjukkan langkah pertama proses pemanggilan tool: membuat permintaan dan mendapatkan maksud model untuk memanggil tool.
Jika Anda menggunakan model di wilayah 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-plus",
"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 the specified file. If the file does not exist, it is created.",
"parameters": {
"type": "object",
"properties": {
"path": {
"type": "string",
"description": "The relative or absolute path of the target file."
},
"content": {
"type": "string",
"description": "The string content to write to the file."
}
},
"required": ["path", "content"]
}
}
}
]
}
}'Tanggapan
{
"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 untuk penyelesaian kode. Pilih salah satu berdasarkan kebutuhan Anda:
Mode parsial: Metode ini direkomendasikan. Implementasinya sederhana, mendukung penyelesaian awalan (prefix completion), dan tersedia untuk semua model Qwen-Coder di semua wilayah.
API Completions: Hanya mendukung seri model
qwen2.5-coderdi wilayah Tiongkok Daratan (Beijing). Mendukung penyelesaian awalan (prefix completion) dan penyelesaian isi tengah (fill-in-the-middle completion).
Mode parsial
Fitur ini memungkinkan model secara otomatis melengkapi sisa kode Anda berdasarkan awalan (prefix) yang Anda berikan.
Anda dapat mengaktifkan fitur ini dengan menambahkan pesan ke daftar messages dengan role diatur ke assistant dan menyertakan partial: true. content dari pesan assistant adalah awalan kode yang Anda berikan. Untuk informasi lebih lanjut, lihat Mode parsial.
Kompatibel dengan OpenAI
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"),
# Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3-coder-plus",
messages=[{
"role": "user",
"content": "Help me write a Python script to generate prime numbers up to 100. Do not output non-code content or Markdown code blocks."
},
{
"role": "assistant",
"content": "def generate_prime_number",
"partial": True
}]
)
print(completion.choices[0].message.content)
Tanggapan
(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,
// Jika Anda menggunakan model di wilayah 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-plus",
messages: [
{ role: "user", content: "Help me write a Python script to generate prime numbers up to 100. Do not output non-code content or Markdown code blocks." },
{ role: "assistant", content: "def generate_prime_number", partial: true}
],
});
console.log(completion.choices[0].message.content);
}
main();Nilai kembali
(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
Jika Anda menggunakan model di wilayah 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-plus",
"messages": [{
"role": "user",
"content": "Help me write a Python script to generate prime numbers up to 100. Do not output non-code content or Markdown code blocks."
},
{
"role": "assistant",
"content": "def generate_prime_number",
"partial": true
}]
}'Tanggapan
{
"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
# Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/api/v1
dashscope.base_http_api_url = 'https://dashscope-intl.aliyuncs.com/api/v1'
messages = [{
"role": "user",
"content": "Help me write a Python script to generate prime numbers up to 100. Do not output 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-plus',
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}")
Tanggapan
(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
Jika Anda menggunakan model di wilayah 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-plus",
"input":{
"messages":[{
"role": "user",
"content": "Help me write a Python script to generate prime numbers up to 100. Do not output non-code content or Markdown code blocks."
},
{
"role": "assistant",
"content": "def generate_prime_number",
"partial": true
}]
},
"parameters": {
"result_format": "message"
}
}'Tanggapan
{
"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"
}API Completions
API Completions hanya berlaku untuk model di wilayah Tiongkok Daratan (Beijing) dan memerlukan Kunci API untuk wilayah Tiongkok Daratan (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, dan qwen-coder-turbo
API Completions menggunakan tag khusus fim (Fill-in-the-Middle) dalam prompt untuk menginstruksikan model melakukan penyelesaian.
Penyelesaian awalan
Templat prompt:
<|fim_prefix|>{prefix_content}<|fim_suffix|><|fim_prefix|>dan<|fim_suffix|>adalah token khusus yang menginstruksikan 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 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 menginstruksikan 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 while preserving the position of non-alphabetic characters and maintaining word order.
Example:
reverse_words_with_special_chars("Hello, world!") -> "olleH, dlrow!"
Parameters:
s (str): The input string, which may contain punctuation.
Returns:
str: The processed string with reversed words, where the positions of non-alphabetic characters are unchanged.
'''
"""
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 while preserving the position of non-alphabetic characters and maintaining word order.
Example:
reverse_words_with_special_chars("Hello, world!") -> "olleH, dlrow!"
Parameters:
s (str): The input string, which may contain punctuation.
Returns:
str: The processed string with reversed words, where the positions of non-alphabetic characters are unchanged.
'''
`;
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 while preserving the position of non-alphabetic characters and maintaining word order.\n Example:\n reverse_words_with_special_chars(\"Hello, world!\") -> \"olleH, dlrow!\"\n Parameters:\n s (str): The input string, which may contain punctuation.\n Returns:\n str: The processed string with reversed words, where the positions of non-alphabetic characters are unchanged.\n\"\"\"\n<|fim_suffix|>return result<|fim_middle|>"
}'Peluncuran
Untuk mengoptimalkan efisiensi dan mengurangi biaya penggunaan model Qwen-Coder, pertimbangkan rekomendasi berikut:
Aktifkan keluaran streaming: Atur
stream=Trueuntuk mengembalikan hasil antara secara real time. Hal ini mengurangi risiko timeout dan meningkatkan pengalaman pengguna.Turunkan parameter suhu: Tugas pembuatan kode biasanya memerlukan hasil yang deterministik dan akurat. Nilai
suhuyang lebih rendah mengurangi keacakan hasil yang dihasilkan.Gunakan model yang mendukung cache konteks: Untuk 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 mengurangi overhead.
Kontrol jumlah tool: Untuk memastikan panggilan model yang efisien dan hemat biaya, jangan meneruskan lebih dari 20
toolsekaligus. Meneruskan banyak deskripsi tool akan menghabiskan terlalu banyak token input. Hal ini meningkatkan biaya, mengurangi kecepatan respons, dan menyulitkan model memilih tool yang tepat. Untuk informasi lebih lanjut, lihat Pemanggilan alat.
Penagihan dan batas laju
Penagihan dasar: Anda dikenai biaya untuk setiap permintaan berdasarkan jumlah token input
Tokendan token outputToken. Harga satuan bervariasi tergantung model. Untuk harga spesifik, lihat Daftar Model.Item penagihan khusus:
Harga bertingkat: Model seri
qwen3-codermenggunakan struktur harga bertingkat. Jika jumlah token input dalam satu permintaan mencapai tingkat tertentu, semua token input dan output untuk permintaan tersebut ditagih dengan tarif tingkat tersebut.Cache konteks: Untuk model yang mendukung cache konteks, seperti
qwen3-coder-plusdanqwen3-coder-flash, mekanisme caching dapat secara signifikan mengurangi biaya untuk permintaan yang berisi banyak input berulang, seperti selama tinjauan kode. Teks input yang mengenai cache implisit ditagih sebesar 20% dari harga standar, dan teks input yang mengenai cache eksplisit ditagih sebesar 10% dari harga standar. Untuk informasi lebih lanjut, lihat Cache konteks.Pemanggilan alat: Saat Anda menggunakan fitur pemanggilan alat, deskripsi tool yang Anda definisikan dalam parameter
toolsdihitung sebagai konten input dan dimasukkan dalam total jumlahTokenuntuk penagihan.
Batas laju: Panggilan API dikenai batas ganda untuk permintaan per menit (RPM) dan token per menit (TPM). Untuk informasi lebih lanjut, lihat Batas laju.
Kuota gratis(Hanya wilayah Singapura): Periode validitas dimulai ketika Anda mengaktifkan Model Studio atau ketika permintaan model Anda disetujui. Dalam periode 90 hari ini, setiap model Qwen-Coder menyediakan 1 juta token kuota gratis untuk pengguna baru.
Referensi API
Parameter input dan output untuk model Qwen-Coder dijelaskan dalam Qwen.
FAQ
Mengapa banyak token yang dikonsumsi saat saya menggunakan alat developer seperti Qwen Code dan Claude Code?
Saat Anda menggunakan alat developer eksternal untuk memanggil model Qwen-Coder, alat tersebut mungkin melakukan beberapa panggilan API, yang dapat mengakibatkan konsumsi token tinggi.Mulai alat dalam direktori proyek tertentu. Konsumsi token meningkat jika direktori startup, seperti Direktori root, berisi terlalu banyak file. Aktifkan fitur Hanya kuota gratis untuk menghindari biaya tambahan setelah kuota gratis Anda habis.
Bagaimana cara melihat penggunaan model saya?
Satu jam setelah Anda memanggil model, buka halaman Observasi Model (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 lebih lanjut, lihat dokumen Observasi Model.
Data diperbarui setiap jam. Selama periode puncak, mungkin terjadi latensi tingkat jam.

Bagaimana cara membuat model hanya mengeluarkan kode, tanpa teks penjelasan apa pun?
Anda dapat menggunakan metode berikut:
Batasan prompt: Berikan instruksi yang jelas dalam prompt. Misalnya: "Kembalikan hanya kode. Jangan sertakan penjelasan, komentar, atau tag Markdown."
Tetapkan urutan
stop: Gunakan frasa sepertistop=["\n# Explanation:", "Description", "Explanation:", "Note:"]untuk menghentikan model lebih awal saat mulai menghasilkan teks penjelasan. Untuk informasi lebih lanjut, lihat Referensi API Qwen.
Bagaimana cara menggunakan 2.000 panggilan gratis per hari untuk qwen3-coder-plus?
Kuota ini khusus untuk alat Qwen Code dan hanya dapat digunakan melalui alat tersebut. Kuota ini dihitung secara terpisah dari kuota gratis untuk pengguna baru yang Anda terima saat mengaktifkan Model Studio. Kedua kuota tersebut tidak saling bertentangan. Untuk informasi lebih lanjut, lihat Bagaimana cara menggunakan 2.000 panggilan gratis per hari?