Model Qwen di Alibaba Cloud Model Studio mendukung API Respons yang kompatibel dengan OpenAI. Sebagai evolusi dari API Chat Completions, API Respons menyediakan kemampuan agen native dengan cara yang lebih ringkas dan intuitif.
Keunggulan dibandingkan OpenAI Chat Completions API:
Built-in tools: Menyertakan alat bawaan seperti web search, web scraping, code interpreter, text-to-image search, dan image-to-image search. Alat-alat ini meningkatkan hasil untuk tugas yang kompleks. Untuk informasi selengkapnya, lihat Call built-in tools.
More flexible input: Menerima input berupa string biasa atau array pesan dalam format Chat.
Simplified context management: Kirimkan
previous_response_iddari respons sebelumnya, bukan membangun secara manual array riwayat pesan lengkap.
Untuk informasi lebih lanjut mengenai parameter masukan dan keluaran, lihat OpenAI Responses API reference.
Prasyarat
Pertama, dapatkan Kunci API dan atur Kunci API sebagai Variabel lingkungan. Jika Anda memanggil API menggunakan OpenAI SDK, Anda harus menginstal SDK.
Model yang didukung
qwen3-max, qwen3-max-2026-01-23, qwen3.5-plus, qwen3.5-plus-2026-02-15, qwen3.5-flash, qwen3.5-flash-2026-02-23, qwen3.5-397b-a17b, qwen3.5-122b-a10b, qwen3.5-27b, qwen3.5-35b-a3b, qwen-plus, qwen-flash, qwen3-coder-plus, qwen3-coder-flash, .
Titik akhir layanan
Singapore
base_url untuk SDK: https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1
Titik akhir permintaan HTTP: POST https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/responses
China (Beijing)
base_url untuk SDK: https://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1
Titik akhir permintaan HTTP: POST https://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/responses
Contoh kode
Panggilan dasar
Anda dapat memanggil API dengan mengirimkan pesan dan mengambil balasan model.
Python
import os
from openai import OpenAI
client = OpenAI(
# Jika variabel lingkungan belum diatur, ganti dengan: api_key="sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1",
)
response = client.responses.create(
model="qwen3.5-plus",
input="What can you do?"
)
# Dapatkan respons model
# print(response.model_dump_json())
print(response.output_text)Node.js
import OpenAI from "openai";
const openai = new OpenAI({
// Jika variabel lingkungan belum diatur, ganti dengan: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1"
});
async function main() {
const response = await openai.responses.create({
model: "qwen3.5-plus",
input: "What can you do?"
});
// Dapatkan respons model
console.log(response.output_text);
}
main();curl
curl -X POST https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.5-plus",
"input": "What can you do?"
}'Contoh respons
API mengembalikan respons lengkap berikut.
{
"created_at": 1771226624,
"id": "bf0d5c2e-f14b-9ad7-bc0d-ee0c8c9ee2d8",
"model": "qwen3-max-2026-01-23",
"object": "response",
"output": [
{
"content": [
{
"annotations": [],
"text": "Hi there! I'm actually quite ......",
"type": "output_text"
}
],
"id": "msg_1e17fdb2-5fc3-4c78-a9e9-cbd78eb043f0",
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"parallel_tool_calls": false,
"status": "completed",
"tool_choice": "auto",
"tools": [],
"usage": {
"input_tokens": 37,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 220,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 257,
"x_details": [
{
"input_tokens": 37,
"output_tokens": 220,
"total_tokens": 257,
"x_billing_type": "response_api"
}
]
}
}Percakapan multi-putaran
Anda dapat menggunakan parameter previous_response_id untuk secara otomatis menautkan konteks tanpa perlu membangun riwayat pesan secara manual. id respons saat ini tetap valid selama 7 hari.
iddari respons sebelumnya (misalnya,f0dbb153-117f-9bbf-8176-5284b47f3xxxdalam format UUID) sebagai nilaiprevious_response_id. Jangan gunakaniddari pesan di dalam arrayoutput(misalnya,msg_56c860c4-3ad8-4a96-8553-d2f94c259xxx).
Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1",
)
# Putaran pertama
response1 = client.responses.create(
model="qwen3.5-plus",
input="My name is John, please remember it."
)
print(f"Respons pertama: {response1.output_text}")
# Putaran kedua - gunakan previous_response_id untuk menautkan konteks
# ID respons kedaluwarsa dalam 7 hari
response2 = client.responses.create(
model="qwen3.5-plus",
input="Do you remember my name?",
previous_response_id=response1.id
)
print(f"Respons kedua: {response2.output_text}")Node.js
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1"
});
async function main() {
// Putaran pertama
const response1 = await openai.responses.create({
model: "qwen3.5-plus",
input: "My name is John, please remember it."
});
console.log(`Respons pertama: ${response1.output_text}`);
// Putaran kedua - gunakan previous_response_id untuk menautkan konteks
// ID respons kedaluwarsa dalam 7 hari
const response2 = await openai.responses.create({
model: "qwen3.5-plus",
input: "Do you remember my name?",
previous_response_id: response1.id
});
console.log(`Respons kedua: ${response2.output_text}`);
}
main();curl
# Putaran pertama
curl -X POST https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.5-plus",
"input": "My name is John, please remember it."
}'
# Putaran kedua - gunakan id dari respons pertama sebagai previous_response_id
curl -X POST https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.5-plus",
"input": "Do you remember my name?",
"previous_response_id": "response_id_from_first_round"
}'Contoh respons putaran kedua
{
"id": "f0dbb153-117f-9bbf-8176-5284b47f3xxx",
"created_at": 1769173209.0,
"model": "qwen3.5-plus",
"object": "response",
"status": "completed",
"output": [
{
"id": "msg_56c860c4-3ad8-4a96-8553-d2f94c259xxx",
"type": "message",
"role": "assistant",
"status": "completed",
"content": [
{
"type": "output_text",
"text": "Yes, John! I remember your name. How can I assist you today?",
"annotations": []
}
]
}
],
"usage": {
"input_tokens": 78,
"output_tokens": 16,
"total_tokens": 94,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens_details": {
"reasoning_tokens": 0
}
}
}Catatan: input_tokens untuk putaran kedua adalah 78, yang mencakup konteks dari putaran pertama. Model berhasil mengingat nama “John”.
Keluaran streaming
Anda dapat menggunakan keluaran streaming untuk menerima konten yang dihasilkan model secara real time. Ini ideal untuk skenario generasi teks panjang.
Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1",
)
stream = client.responses.create(
model="qwen3.5-plus",
input="Please briefly introduce artificial intelligence.",
stream=True
)
print("Menerima keluaran streaming:")
for event in stream:
# print(event.model_dump_json()) # Hapus komentar untuk melihat respons event mentah
if event.type == 'response.output_text.delta':
print(event.delta, end='', flush=True)
elif event.type == 'response.completed':
print("\nStreaming selesai")
print(f"Total token: {event.response.usage.total_tokens}")Node.js
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1"
});
async function main() {
const stream = await openai.responses.create({
model: "qwen3.5-plus",
input: "Please briefly introduce artificial intelligence.",
stream: true
});
console.log("Menerima keluaran streaming:");
for await (const event of stream) {
// console.log(JSON.stringify(event)); // Hapus komentar untuk melihat respons event mentah
if (event.type === 'response.output_text.delta') {
process.stdout.write(event.delta);
} else if (event.type === 'response.completed') {
console.log("\nStreaming selesai");
console.log(`Total token: ${event.response.usage.total_tokens}`);
}
}
}
main();curl
curl -X POST https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.5-plus",
"input": "Please briefly introduce artificial intelligence.",
"stream": true
}'Contoh respons
{"response":{"id":"47a71e7d-868c-4204-9693-ef8ff9058xxx","created_at":1769417481.0,"error":null,"incomplete_details":null,"instructions":null,"metadata":null,"model":"","object":"response","output":[],"parallel_tool_calls":false,"temperature":null,"tool_choice":"auto","tools":[],"top_p":null,"background":null,"completed_at":null,"conversation":null,"max_output_tokens":null,"max_tool_calls":null,"previous_response_id":null,"prompt":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":null,"safety_identifier":null,"service_tier":null,"status":"queued","text":null,"top_logprobs":null,"truncation":null,"usage":null,"user":null},"sequence_number":0,"type":"response.dibuat"}
{"response":{"id":"47a71e7d-868c-4204-9693-ef8ff9058xxx","created_at":1769417481.0,"error":null,"incomplete_details":null,"instructions":null,"metadata":null,"model":"","object":"response","output":[],"parallel_tool_calls":false,"temperature":null,"tool_choice":"auto","tools":[],"top_p":null,"background":null,"completed_at":null,"conversation":null,"max_output_tokens":null,"max_tool_calls":null,"previous_response_id":null,"prompt":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":null,"safety_identifier":null,"service_tier":null,"status":"sedang_diproses","text":null,"top_logprobs":null,"truncation":null,"usage":null,"user":null},"sequence_number":1,"type":"response.sedang_diproses"}
{"item":{"id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","content":[],"role":"assistant","status":"sedang_diproses","type":"message"},"output_index":0,"sequence_number":2,"type":"response.item_keluaran.ditambahkan"}
{"content_index":0,"item_id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","output_index":0,"part":{"annotations":[],"text":"","type":"output_text","logprobs":null},"sequence_number":3,"type":"response.bagian_konten.ditambahkan"}
{"content_index":0,"delta":"Kecerdasan buatan","item_id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","logprobs":[],"output_index":0,"sequence_number":4,"type":"response.teks_keluaran.delta"}
{"content_index":0,"delta":" (Kecerdasan Buatan, ","item_id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","logprobs":[],"output_index":0,"sequence_number":5,"type":"response.teks_keluaran.delta"}
{"content_index":0,"delta":"atau AI)","item_id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","logprobs":[],"output_index":0,"sequence_number":6,"type":"response.teks_keluaran.delta"}
{"content_index":0,"delta":" adalah teknologi dan ilmu pengetahuan yang mensimulasikan perilaku cerdas manusia dengan sistem komputer. ","item_id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","logprobs":[],"output_index":0,"sequence_number":7,"type":"response.teks_keluaran.delta"}
... (peristiwa antara dihilangkan) ...
{"content_index":0,"delta":" bidang-bidang tersebut, serta secara mendalam mengubah kehidupan dan cara kerja kita","item_id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","logprobs":[],"output_index":0,"sequence_number":38,"type":"response.teks_keluaran.delta"}
{"content_index":0,"delta":".","item_id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","logprobs":[],"output_index":0,"sequence_number":39,"type":"response.teks_keluaran.delta"}
{"content_index":0,"item_id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","logprobs":[],"output_index":0,"sequence_number":40,"text":"Kecerdasan buatan (AI) adalah teknologi dan ilmu pengetahuan yang mensimulasikan perilaku cerdas manusia dengan sistem komputer. xxxx","type":"response.teks_keluaran.selesai"}
{"content_index":0,"item_id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","output_index":0,"part":{"annotations":[],"text":"Kecerdasan buatan (AI) adalah teknologi dan ilmu pengetahuan yang mensimulasikan perilaku cerdas manusia dengan sistem komputer. xxx","type":"output_text","logprobs":null},"sequence_number":41,"type":"response.bagian_konten.selesai"}
{"item":{"id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","content":[{"annotations":[],"text":"Kecerdasan buatan (AI) adalah teknologi dan ilmu pengetahuan yang mensimulasikan perilaku cerdas manusia dengan sistem komputer. Tujuannya adalah memungkinkan mesin untuk melakukan tugas-tugas yang biasanya memerlukan kecerdasan manusia, seperti:\n\n- **Pembelajaran** (misalnya, melatih model dengan data)\n- **Penalaran** (misalnya, penilaian logis dan pemecahan masalah)\n- **Persepsi** (misalnya, mengenali gambar, ucapan, atau teks)\n- **Pemahaman bahasa** (misalnya, pemrosesan bahasa alami)\n- **Pengambilan keputusan** (misalnya, membuat pilihan optimal dalam lingkungan yang kompleks)\n\nKecerdasan buatan dapat dibagi menjadi **AI lemah** (berfokus pada tugas-tugas spesifik, seperti asisten suara dan sistem rekomendasi) dan **AI kuat** (memiliki kecerdasan umum yang mirip manusia, yang belum tercapai hingga saat ini).\n\nSaat ini, AI telah diterapkan secara luas di banyak bidang, seperti layanan kesehatan, keuangan, transportasi, pendidikan, dan hiburan, serta secara mendalam mengubah kehidupan dan cara kerja kita.","type":"output_text","logprobs":null}],"role":"assistant","status":"selesai","type":"message"},"output_index":0,"sequence_number":42,"type":"response.item_keluaran.selesai"}
{"response":{"id":"47a71e7d-868c-4204-9693-ef8ff9058xxx","created_at":1769417481.0,"error":null,"incomplete_details":null,"instructions":null,"metadata":null,"model":"qwen3.5-plus","object":"response","output":[{"id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","content":[{"annotations":[],"text":"Kecerdasan buatan (AI) adalah xxxxxx","type":"output_text","logprobs":null}],"role":"assistant","status":"selesai","type":"message"}],"parallel_tool_calls":false,"temperature":null,"tool_choice":"auto","tools":[],"top_p":null,"background":null,"completed_at":null,"conversation":null,"max_output_tokens":null,"max_tool_calls":null,"previous_response_id":null,"prompt":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":null,"safety_identifier":null,"service_tier":null,"status":"selesai","text":null,"top_logprobs":null,"truncation":null,"usage":{"input_tokens":37,"input_tokens_details":{"cached_tokens":0},"output_tokens":166,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":203},"user":null},"sequence_number":43,"type":"response.selesai"}Pemikiran mendalam
Saat mode pemikiran mendalam diaktifkan, model berpikir sebelum membalas. Proses berpikir muncul dalam item output bertipe reasoning. Ini cocok untuk masalah yang memerlukan penalaran kompleks.
Parameter thinking_budget tidak didukung untuk mengontrol panjang maksimum proses berpikir.
Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1",
)
response = client.responses.create(
model="qwen3.5-plus",
input="Which is larger, 9.9 or 9.11?",
extra_body={"enable_thinking": True}
)
# Proses output
for item in response.output:
if item.type == "reasoning":
print("=== Proses Berpikir ===")
for summary in item.summary:
print(summary.text)
elif item.type == "message":
print("\n=== Jawaban Akhir ===")
print(item.content[0].text)
# Lihat jumlah token berpikir
print(f"\nToken Berpikir: {response.usage.output_tokens_details.reasoning_tokens}")Node.js
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1"
});
async function main() {
const response = await openai.responses.create({
model: "qwen3.5-plus",
input: "Which is larger, 9.9 or 9.11?",
enable_thinking: true
});
for (const item of response.output) {
if (item.type === "reasoning") {
console.log("=== Proses Berpikir ===");
for (const summary of item.summary) {
console.log(summary.text);
}
} else if (item.type === "message") {
console.log("\n=== Jawaban Akhir ===");
console.log(item.content[0].text);
}
}
// Lihat jumlah token berpikir
console.log(`\nToken Berpikir: ${response.usage.output_tokens_details.reasoning_tokens}`);
}
main();curl
curl -X POST https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.5-plus",
"input": "Which is larger, 9.9 or 9.11?",
"enable_thinking": true
}'Contoh respons
{
"created_at": 1774498317,
"id": "resp_xxx",
"model": "qwen3.5-plus",
"object": "response",
"output": [
{
"id": "msg_xxx",
"summary": [
{
"text": "Proses Berpikir:\n\n1. **Analisis Permintaan:**\n * Pertanyaan: \"Mana yang lebih besar, 9,9 atau 9,11?\"\n * Konteks: Pengguna mengajukan pertanyaan perbandingan matematis sederhana.\n * Tanggal Saat Ini: Kamis, 26 Maret 2026 (diberikan dalam petunjuk sistem).\n * Batas Pembaruan Pengetahuan: 2026 (diberikan dalam petunjuk sistem).\n\n2. **Evaluasi Angka-Angka:**\n * Angka A: 9,9\n * Angka B: 9,11\n * Keduanya merupakan bilangan desimal.\n * Bandingkan bagian bilangan bulat: Keduanya adalah 9.\n * Bandingkan tempat persepuluhan (digit pertama setelah tanda koma):\n * 9,9 memiliki angka 9 di tempat persepuluhan.\n * 9,11 memiliki angka 1 di tempat persepuluhan.\n * Karena 9 > 1, maka 9,9 lebih besar daripada 9,11.\n\n3. **Pertimbangkan Ambiguitas Potensial:**\n * Apakah ini penomoran versi? (misalnya, versi perangkat lunak). Dalam pengendalian versi, 9,11 sering kali dianggap \"lebih baru\" atau \"lebih tinggi\" daripada 9,9. Namun, secara matematis, 9,9 > 9,11.\n * Apakah ini tanggal? (9 September dibandingkan 11 September). Tanggal 11 lebih akhir.\n * Interpretasi standar: Tanpa konteks tambahan, bilangan desimal diasumsikan sebagai nilai matematis.\n * Jebakan umum: Beberapa orang keliru memperlakukan desimal seperti bilangan bulat (di mana 11 > 9), sehingga berpikir bahwa 9,11 > 9,9. Ini merupakan bias kognitif atau kesalahpahaman yang diketahui dalam matematika dasar.\n * Keputusan: Berikan jawaban matematis secara jelas, tetapi mungkin akui konteks pengendalian versi jika relevan (meskipun biasanya, untuk pertanyaan spesifik ini, ini merupakan uji matematika). Mengingat kesederhanaannya, utamakan kebenaran matematis terlebih dahulu.\n\n4. **Rumuskan Jawaban:**\n * Jawaban langsung: 9,9 lebih besar.\n * Penjelasan: Bandingkan nilai tempat. 9,9 = 9,90, 9,11 = 9,11. 90 perseratus > 11 perseratus.\n * Nada: Membantu dan jelas.\n\n5. **Penyusunan Tanggapan (Monolog Internal/Rancangan):**\n * Oke, secara matematis 9,9 lebih besar. 9,9 adalah 9 dan 9 persepuluhan. 9,11 adalah 9 dan 11 perseratus (atau 1 persepuluhan dan 1 perseratus). 9 persepuluhan lebih besar daripada 1 persepuluhan.\n * Jadi, 9,9 > 9,11.\n * Saya harus menjawab dalam bahasa Mandarin karena pertanyaannya dalam bahasa Mandarin.\n * \"9,9 lebih besar.\"\n * Tambahkan penjelasan singkat untuk menghindari kebingungan. \"Karena 9,9 sama dengan 9,90, dan 9,90 lebih besar daripada 9,11.\"\n\n6. **Penyempurnaan berdasarkan kemungkinan \"Nomor Versi\":**\n * Terkadang ini merupakan pertanyaan jebakan tentang versi perangkat lunak. Dalam semver, 9,11 > 9,9.\n * Namun, biasanya, ketika ditanyakan secara langsung \"mana yang lebih besar\", ini mengacu pada nilai numerik.\n * Saya akan memberikan jawaban numerik sebagai prioritas utama, mungkin menambahkan catatan tentang versi jika dirasa perlu. Namun, kesederhanaan lebih baik. Kemungkinan besar, ini menguji logika perbandingan desimal.\n * Mari kita tetap menggunakan nilai matematis sebagai default.\n\n7. **Penyempurnaan Akhir:**\n * Jawaban: 9,9 lebih besar.\n * Alasan: Saat membandingkan desimal, pertama-tama lihat bagian bilangan bulat, lalu tempat persepuluhan. Digit persepuluhan dari 9,9 adalah 9, sedangkan digit persepuluhan dari 9,11 adalah 1. Karena 9 > 1, maka 9,9 > 9,11.\n\n8. **Pembuatan Output:** (Sesuai proses berpikir)\n * Nyatakan dengan jelas mana yang lebih besar.\n * Jelaskan alasannya.\n\n *Koreksi Diri tentang Waktu/Tanggal:* Petunjuk sistem menyebutkan tanggal saat ini adalah 2026. Hal ini tidak memengaruhi pertanyaan matematika, tetapi saya harus memastikan tidak merujuk pada apa pun setelah tahun 2026 jika menambahkan konteks (tidak diperlukan di sini).\n\n *Keputusan Akhir:* Jawab pertanyaan matematika secara langsung.\n\n \"Secara numerik, 9,9 lebih besar.\"\n Jelaskan: 9,9 = 9,90, 9,11 = 9,11. 90 > 11.\n\n Tunggu, apakah ada interpretasi lain?\n - Tanggal? 9/9 dibandingkan 9/11. Tanggal 11 lebih akhir.\n - Versi? 9,11 lebih baru.\n - Namun, \"siapa yang lebih besar\" (yang berarti \"siapa yang lebih besar/lebih besar\") biasanya mengimplikasikan besaran.\n - Saya akan menjawab berdasarkan besaran numerik tetapi menyebutkan konteks versi secara singkat jika menambah nilai tanpa membingungkan. Sebenarnya, lebih baik bersikap tegas. Nilai numerik adalah interpretasi standar untuk \"siapa yang lebih besar\" dengan angka.\n\n Mari kita gunakan jawaban numerik.\n\n **Rencana:**\n 1. Nyatakan bahwa 9,9 lebih besar secara numerik.\n 2. Jelaskan perbandingan desimal.\n 3. (Opsional namun membantu) Sebutkan bahwa jika ini nomor versi, 9,11 mungkin dianggap \"lebih tinggi\". Namun, prioritaskan matematika.\n Sebenarnya, untuk permintaan sederhana seperti ini, menjelaskan versi secara berlebihan mungkin membingungkan. Saya akan tetap menggunakan matematika tetapi mengakui kekeliruan umum.\n\n *Rencana Direvisi:*\n 1. Jawaban langsung: 9,9 lebih besar (secara matematis).\n 2. Penjelasan: Nilai tempat.\n 3. Catatan: Kecuali jika ini nomor versi.\n\n Mari kita buat ringkas.\n\n \"Dalam hal nilai matematis, 9,9 lebih besar.\"\n \"Karena 9,9 sama dengan 9,90, yang lebih besar daripada 9,11.\"\n \"Jika ini nomor versi, maka versi 9,11 biasanya lebih tinggi daripada versi 9,9.\"\n Ini mencakup kedua aspek.\n\n Tunggu, melihat pelatihan AI umum, ini sering kali merupakan pertanyaan \"jebakan\" untuk melihat apakah AI memperlakukan desimal seperti bilangan bulat. Jawaban matematis yang benar sangat penting.\n\n Oke, struktur output akhir:\n 1. Jawaban matematis.\n 2. Penjelasan singkat.\n 3. Catatan kontekstual (versi).\n\n Mari kita tulis.\n \"Dalam hal nilai matematis, 9,9 lebih besar.\"\n \"Saat membandingkan desimal, pertama-tama lihat bagian bilangan bulat (keduanya 9), lalu tempat persepuluhan: digit persepuluhan dari 9,9 adalah 9, sedangkan digit persepuluhan dari 9,11 adalah 1. Karena 9 > 1, maka 9,9 > 9,11.\"\n \"Namun, jika ini nomor versi perangkat lunak, versi 9,11 biasanya lebih baru daripada versi 9,9.\"\n\n Ini seimbang.\n\n Tunggu, saya perlu memeriksa instruksi lagi. \"Harap ingat waktu aktual saat ini...\". Ini hanya konteks sistem. Saya tidak perlu menyebutkan tanggal dalam jawaban kecuali relevan. Di sini tidak relevan.\n\n Oke, siap untuk menghasilkan.\n\n Tunggu, satu pemeriksaan lagi. Apakah ada konteks budaya? Dalam beberapa konteks, orang mungkin mengatakan 9,11 lebih besar karena 11 > 9. Ini adalah kesalahpahaman yang harus saya koreksi.\n Jadi, penekanan pada aturan matematis sangat penting.\n\n Pemeriksaan akhir:\n 9,9 = 9 + 9/10 = 9,90\n 9,11 = 9 + 1/10 + 1/100 = 9,11\n 9,90 > 9,11. Benar.\n\n Tanggapan akan dalam bahasa Mandarin.\n \"Dalam hal nilai numerik, 9,9 lebih besar.\"\n Jelaskan alasannya.\n Sebutkan pengecualian versi.\n Selesai.",
"type": "summary_text"
}
],
"type": "reasoning"
},
{
"content": [
{
"annotations": [],
"text": "Dalam hal **nilai matematis**, **9,9 lebih besar**.\n\nBerikut alasannya:\nSaat membandingkan desimal, Anda pertama-tama melihat bagian bilangan bulat, yang nilainya 9 untuk keduanya. Lalu Anda melihat tempat persepuluhan (digit pertama setelah tanda koma):\n* Digit persepuluhan dari 9,9 adalah **9**\n* Digit persepuluhan dari 9,11 adalah **1**\n\nKarena 9 lebih besar daripada 1, maka **9,9 > 9,11** (Anda dapat menganggap 9,9 sebagai 9,90 untuk perbandingan).\n\n**Catatan**: Jika ini merupakan **nomor versi perangkat lunak**, versi 9,11 biasanya dianggap lebih baru (lebih tinggi) daripada versi 9,9. Namun, dalam perbandingan numerik murni, 9,9 lebih besar.",
"type": "output_text"
}
],
"id": "msg_xxx",
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"parallel_tool_calls": false,
"status": "completed",
"tool_choice": "auto",
"tools": [],
"usage": {
"input_tokens": 57,
"input_tokens_details": {
"cached_tokens": 0
},
"output_tokens": 2018,
"output_tokens_details": {
"reasoning_tokens": 1861
},
"total_tokens": 2075,
"x_details": [
{
"input_tokens": 57,
"output_tokens": 2018,
"output_tokens_details": {
"reasoning_tokens": 1861
},
"total_tokens": 2075,
"x_billing_type": "response_api"
}
]
}
}Panggil alat bawaan
Anda dapat mengaktifkan alat bawaan untuk meningkatkan hasil saat menangani tugas kompleks. Alat web scraping dan code interpreter gratis untuk waktu terbatas. Untuk informasi selengkapnya tentang alat yang didukung, lihat Pemanggilan alat.
Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1",
)
response = client.responses.create(
model="qwen3.5-plus",
input="Find the Alibaba Cloud website and extract key information",
# Untuk hasil terbaik, aktifkan semua alat bawaan
tools=[
{"type": "web_search"},
{"type": "code_interpreter"},
{"type": "web_extractor"}
],
extra_body={"enable_thinking": True}
)
# Hapus komentar baris di bawah untuk melihat output antara
# print(response.output)
print(response.output_text)
Node.js
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1"
});
async function main() {
const response = await openai.responses.create({
model: "qwen3.5-plus",
input: "Find the Alibaba Cloud website and extract key information",
tools: [
{ type: "web_search" },
{ type: "code_interpreter" },
{ type: "web_extractor" }
],
enable_thinking: true
});
for (const item of response.output) {
if (item.type === "reasoning") {
console.log("Model sedang berpikir...");
} else if (item.type === "web_search_call") {
console.log(`Kueri pencarian: ${item.action.query}`);
} else if (item.type === "web_extractor_call") {
console.log("Mengekstraksi konten web...");
} else if (item.type === "message") {
console.log(`Respons: ${item.content[0].text}`);
}
}
}
main();curl
curl -X POST https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.5-plus",
"input": "Find the Alibaba Cloud website and extract key information",
"tools": [
{
"type": "web_search"
},
{
"type": "code_interpreter"
},
{
"type": "web_extractor"
}
],
"enable_thinking": true
}'Contoh respons
{
"id": "69258b21-5099-9d09-92e8-8492b1955xxx",
"object": "response",
"status": "completed",
"output": [
{
"type": "reasoning",
"summary": [
{
"type": "summary_text",
"text": "The user wants to find the Alibaba Cloud official website and extract information..."
}
]
},
{
"type": "web_search_call",
"status": "completed",
"action": {
"query": "Alibaba Cloud official website",
"type": "search",
"sources": [
{
"type": "url",
"url": "https://cn.aliyun.com/"
},
{
"type": "url",
"url": "https://www.alibabacloud.com/zh"
}
]
}
},
{
"type": "reasoning",
"summary": [
{
"type": "summary_text",
"text": "The search results show the URL of the Alibaba Cloud official website..."
}
]
},
{
"type": "web_extractor_call",
"status": "completed",
"goal": "Extract key information from the homepage of the Alibaba Cloud official website",
"output": "Qwen large language model, complete product system, AI solutions...",
"urls": [
"https://cn.aliyun.com/"
]
},
{
"type": "message",
"role": "assistant",
"status": "completed",
"content": [
{
"type": "output_text",
"text": "Key information from the Alibaba Cloud official website: Qwen large language model, cloud computing services..."
}
]
}
],
"usage": {
"input_tokens": 40836,
"output_tokens": 2106,
"total_tokens": 42942,
"output_tokens_details": {
"reasoning_tokens": 677
},
"x_tools": {
"web_extractor": {
"count": 1
},
"web_search": {
"count": 1
}
}
}
}Cache sesi
Ikhtisar
Cache sesi adalah mode cache sisi server yang dirancang untuk percakapan multi-putaran dalam API Respons. Berbeda dengan caching eksplisit yang mengharuskan Anda menambahkan flag cache_control secara manual, cache sesi menangani logika caching secara otomatis. Anda hanya perlu mengaktifkan atau menonaktifkannya melalui Header HTTP dan melakukan panggilan seperti pada percakapan multi-putaran biasa.
Saat Anda menggunakan previous_response_id untuk percakapan multi-putaran, mengaktifkan cache sesi memungkinkan server secara otomatis menyimpan cache konteks percakapan. Hal ini mengurangi latensi inferensi dan biaya penggunaan.Penggunaan
Tambahkan salah satu field berikut ke header permintaan untuk mengaktifkan atau menonaktifkan cache sesi:
x-dashscope-session-cache: enable: Mengaktifkan cache sesi.x-dashscope-session-cache: disable: Menonaktifkan cache sesi. Jika model mendukungnya, caching implisit akan diaktifkan sebagai gantinya.
Saat menggunakan SDK, Anda dapat mengirimkan header ini melalui parameter default_headers (Python) atau parameter defaultHeaders (Node.js). Saat menggunakan curl, kirimkan dengan parameter -H.
Model yang didukung
qwen3-max, qwen3.5-plus, qwen3.5-flash, qwen-plus, qwen-flash, qwen3-coder-plus, qwen3-coder-flash
Cache sesi hanya berlaku untuk API Respons (Kompatibel dengan OpenAI - Respons) dan tidak berlaku untuk API Chat Completions.
Contoh kode
Python
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1",
# Aktifkan cache sesi melalui default_headers
default_headers={"x-dashscope-session-cache": "enable"}
)
# Buat teks panjang lebih dari 1.024 token untuk memastikan pembuatan cache. Jika teks kurang dari 1.024 token, cache dibuat saat konteks percakapan terakumulasi melebihi 1.024 token.
long_context = "Artificial intelligence is an important branch of computer science, dedicated to researching and developing theories, methods, technologies, and application systems that can simulate, extend, and expand human intelligence." * 50
# Putaran pertama
response1 = client.responses.create(
model="qwen3.5-plus",
input=long_context + "\n\nBased on the background knowledge above, please briefly introduce the random forest algorithm in machine learning.",
)
print(f"Balasan pertama: {response1.output_text}")
# Putaran kedua: Tautkan konteks menggunakan previous_response_id. Cache ditangani secara otomatis oleh server.
response2 = client.responses.create(
model="qwen3.5-plus",
input="What are the main differences between it and GBDT?",
previous_response_id=response1.id,
)
print(f"Balasan kedua: {response2.output_text}")
# Periksa status hit cache
usage = response2.usage
print(f"Token Input: {usage.input_tokens}")
print(f"Token Cache: {usage.input_tokens_details.cached_tokens}")Node.js
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: process.env.DASHSCOPE_API_KEY,
baseURL: "https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1",
// Aktifkan cache sesi melalui defaultHeaders
defaultHeaders: {"x-dashscope-session-cache": "enable"}
});
// Buat teks panjang lebih dari 1.024 token untuk memastikan pembuatan cache. Jika teks kurang dari 1.024 token, cache dibuat saat konteks percakapan terakumulasi melebihi 1.024 token.
const longContext = "Artificial intelligence is an important branch of computer science, dedicated to researching and developing theories, methods, technologies, and application systems that can simulate, extend, and expand human intelligence.".repeat(50);
async function main() {
// Putaran pertama
const response1 = await openai.responses.create({
model: "qwen3.5-plus",
input: longContext + "\n\nBased on the background knowledge above, please briefly introduce the random forest algorithm in machine learning, including its basic principles and application scenarios."
});
console.log(`Balasan pertama: ${response1.output_text}`);
// Putaran kedua: Tautkan konteks menggunakan previous_response_id. Cache ditangani secara otomatis oleh server.
const response2 = await openai.responses.create({
model: "qwen3.5-plus",
input: "What are the main differences between it and GBDT?",
previous_response_id: response1.id
});
console.log(`Balasan kedua: ${response2.output_text}`);
// Periksa status hit cache
console.log(`Token Input: ${response2.usage.input_tokens}`);
console.log(`Token Cache: ${response2.usage.input_tokens_details.cached_tokens}`);
}
main();curl
# Putaran pertama
# Ganti input dengan teks panjang lebih dari 1.024 token untuk memastikan pembuatan cache.
curl -X POST https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-H "x-dashscope-session-cache: enable" \
-d '{
"model": "qwen3.5-plus",
"input": "Kecerdasan buatan adalah cabang penting dari ilmu komputer, yang didedikasikan untuk meneliti dan mengembangkan teori, metode, teknologi, dan sistem aplikasi yang dapat mensimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer, yang didedikasikan untuk meneliti dan mengembangkan teori, metode, teknologi, dan sistem aplikasi yang dapat mensimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer, yang didedikasikan untuk meneliti dan mengembangkan teori, metode, teknologi, dan sistem aplikasi yang dapat mensimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer, yang didedikasikan untuk meneliti dan mengembangkan teori, metode, teknologi, dan sistem aplikasi yang dapat mensimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer, yang didedikasikan untuk meneliti dan mengembangkan teori, metode, teknologi, dan sistem aplikasi yang dapat mensimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer, yang didedikasikan untuk meneliti dan mengembangkan teori, metode, teknologi, dan sistem aplikasi yang dapat mensimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer, yang didedikasikan untuk meneliti dan mengembangkan teori, metode, teknologi, dan sistem aplikasi yang dapat mensimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer, yang didedikasikan untuk meneliti dan mengembangkan teori, metode, teknologi, dan sistem aplikasi yang dapat mensimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer, yang didedikasikan untuk meneliti dan mengembangkan teori, metode, teknologi, dan sistem aplikasi yang dapat mensimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer, yang didedikasikan untuk meneliti dan mengembangkan teori, metode, teknologi, dan sistem aplikasi yang dapat mensimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer, yang didedikasikan untuk meneliti dan mengembangkan teori, metode, teknologi, dan sistem aplikasi yang dapat mensimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer, yang didedikasikan untuk meneliti dan mengembangkan teori, metode, teknologi, dan sistem aplikasi yang dapat mensimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer, yang didedikasikan untuk meneliti dan mengembangkan teori, metode, teknologi, dan sistem aplikasi yang dapat mensimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer, yang didedikasikan untuk meneliti dan mengembangkan teori, metode, teknologi, dan sistem aplikasi yang dapat mensimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer, yang didedikasikan untuk meneliti dan mengembangkan teori, metode, teknologi, dan sistem aplikasi yang dapat mensimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer, yang didedikasikan untuk meneliti dan mengembangkan teori, metode, teknologi, dan sistem aplikasi yang dapat mensimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer, yang didedikasikan untuk meneliti dan mengembangkan teori, metode, teknologi, dan sistem aplikasi yang dapat mensimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer, yang didedikasikan untuk meneliti dan mengembangkan teori, metode, teknologi, dan sistem aplikasi yang dapat mensimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer, yang didedikasikan untuk meneliti dan mengembangkan teori, metode, teknologi, dan sistem aplikasi yang dapat mensimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer, yang didedikasikan untuk meneliti dan mengembangkan teori, metode, teknologi, dan sistem aplikasi yang dapat mensimulasikan, memperluas, dan mengembangkan kecerdasan manusia.\n\nBerdasarkan pengetahuan latar belakang di atas, tolong jelaskan secara singkat algoritma random forest dalam pembelajaran mesin, termasuk prinsip-prinsip dasar dan skenario aplikasinya."
}'
# Putaran kedua - Gunakan ID yang dikembalikan pada putaran pertama sebagai previous_response_id
curl -X POST https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-H "x-dashscope-session-cache: enable" \
-d '{
"model": "qwen3.5-plus",
"input": "Apa perbedaan utama antara itu dan GBDT?",
"previous_response_id": "response_id_from_first_turn"
}'Contoh respons putaran kedua (cache hit)
Dalam respons putaran kedua, field usage.input_tokens_details.cached_tokens menunjukkan jumlah token yang mengenai cache.
{
"id": "145584fd-3dce-4890-99dc-e3896d7f5a42",
"created_at": 1772440976.0,
"error": null,
"incomplete_details": null,
"instructions": null,
"metadata": null,
"model": "qwen3.5-plus",
"object": "response",
"output": [
{
"id": "msg_62a4e323-d78c-46c7-8469-2ad50f8af4b1",
"summary": [
{
"text": "Proses Berpikir:\n\n1. **Analisis Permintaan:**\n * Pengguna meminta perbedaan utama antara Random Forest (RF) dan GBDT (Pohon Keputusan Gradient Boosting).\n * Konteks: Percakapan sebelumnya memberikan definisi AI (diulang berkali-kali) lalu pengenalan singkat tentang Random Forest.\n * Kendala: Buat ringkas (tersirat dari \"perkenalkan secara singkat\" pada percakapan pertama, meskipun permintaan ini meminta \"perbedaan utama\"). Nada harus informatif dan profesional.\n * Tanggal Saat Ini: Senin, 02 Maret 2026.\n * Batas Pengetahuan: 2026.\n\n2. **Mengingat Pengetahuan tentang RF vs. GBDT:**\n * **Bagging vs. Boosting:** RF menggunakan Bagging (Paralel), GBDT menggunakan Boosting (Sekuensial).\n * **Bias/Variansi:** RF mengurangi variansi, GBDT mengurangi bias.\n * **Pemilihan Sampel/fitur:** RF menggunakan pengambilan sampel bootstrap (pengambilan sampel baris) dan subsampling fitur. GBDT umumnya menggunakan semua sampel (terbobot) dan sering kali semua fitur (meskipun varian seperti XGBoost/LightGBM memperkenalkan sampling fitur).\n * **Struktur Pohon:** Pohon RF biasanya dalam dan independen. Pohon GBDT biasanya dangkal (pembelajar lemah) dan dependen (masing-masing memperbaiki pohon sebelumnya).\n * **Sensitivitas terhadap Outlier:** GBDT lebih sensitif.\n * **Parallelisasi:** RF mudah diparalelkan. GBDT secara inheren bersifat sekuensial (meskipun konstruksi pohon dalam satu langkah dapat diparalelkan).\n\n3. **Menyusun Respons:**\n * Struktur: Perbedaan inti (Bagging vs. Boosting), metode pelatihan, karakteristik kinerja, sensitivitas.\n * Bahasa: Mandarin.\n * Nada: Profesional, jelas.\n\n4. **Memperbaiki Konten (Koreksi Diri/Optimasi):**\n * Pastikan menyoroti *strategi ensemble* (Bagging vs. Boosting) sebagai perbedaan mendasar.\n * Sebutkan pelatihan paralel vs. sekuensial.\n * Sebutkan trade-off bias/variansi.\n * Buat ringkas namun cukup komprehensif untuk pertanyaan \"perbedaan utama\".\n\n5. **Penyempurnaan Akhir (dengan mempertimbangkan kendala):**\n * Pastikan tidak ada halusinasi.\n * Pastikan selaras dengan batas pengetahuan 2026 (tidak ada perubahan mendasar dalam teori RF vs. GBDT).\n * Periksa ulang teks berulang pada permintaan pertama (abaikan pengulangan, fokus pada pertanyaan aktual).\n\n6. **Menyusun respons (monolog internal):**\n * Mulai dengan jenis ensemble: RF = Bagging, GBDT = Boosting.\n * Pelatihan: RF = Paralel, pohon independen. GBDT = Sekuensial, pohon dependen (menyesuaikan residu).\n * Tujuan: RF = Mengurangi variansi. GBDT = Mengurangi bias.\n * Sensitivitas: GBDT lebih sensitif terhadap outlier.\n * Ringkasan dalam bentuk tabel atau poin-poin untuk kejelasan.\n\n7. **Menghasilkan Output Akhir:** (Sesuai dengan poin yang dirancang).\n\n * **Metode ensemble**: RF adalah Bagging, GBDT adalah Boosting.\n * **Proses pelatihan**: RF bersifat paralel, GBDT bersifat serial.\n * **Fokus**: RF mengurangi variansi, GBDT mengurangi bias.\n * **Outlier**: GBDT lebih sensitif.\n\n Mari kita tulis dengan jelas.\n\n * **Strategi ensemble inti**: Random Forest didasarkan pada gagasan **Bagging**, di mana pohon-pohon bersifat independen satu sama lain. GBDT didasarkan pada gagasan **Boosting**, di mana pohon-pohon sangat dependen (pohon berikutnya menyesuaikan residu dari prediksi pohon sebelumnya).\n * **Metode pelatihan**: Random Forest mendukung **pelatihan paralel**, yang lebih efisien. GBDT harus **dilatih secara serial**, sehingga sulit diparalelkan (meskipun implementasi teknis seperti XGBoost memiliki optimasi).\n * **Tujuan model**: Random Forest terutama mengurangi **variansi** (untuk mencegah Overfitting). GBDT terutama mengurangi **bias** (untuk meningkatkan kemampuan penyesuaian).\n * **Sensitivitas terhadap outlier**: GBDT lebih sensitif terhadap outlier, sedangkan Random Forest relatif tangguh.\n\n Terlihat baik. Buat ringkas.\n\n8. **Tinjauan Akhir:** Apakah ini menjawab pertanyaan pengguna secara langsung? Ya. Apakah akurat? Ya. Apakah sesuai konteks? Ya.\n\n (Catatan: Permintaan pertama memiliki banyak teks berulang yang tampak seperti uji stres atau upaya injeksi, tetapi instruksi aktual adalah \"Berdasarkan pengetahuan latar belakang di atas, perkenalkan secara singkat Random Forest\". Permintaan kedua adalah tindak lanjut. Saya harus mengabaikan kebisingan pengulangan dan fokus pada pertanyaan teknis.)\n\n Tunggu, saya perlu memeriksa apakah ada kendala spesifik mengenai teks berulang. Pengguna hanya menempelkan kalimat yang sama berkali-kali. Ini tidak mengubah pengetahuan faktual tentang RF vs GBDT. Saya akan melanjutkan dengan jawaban teknis.\n\n Satu hal lagi: Permintaan menyatakan \"Berdasarkan pengetahuan latar belakang di atas...\" pada percakapan pertama. Permintaan kedua hanya bertanya \"Apa perbedaan utama dengan GBDT?\". Saya harus menjawab secara langsung.\n\n Mari kita rumuskan respons.\n\n **Struktur:**\n 1. Strategi Ensemble (Bagging vs Boosting)\n 2. Proses Pelatihan (Paralel vs Serial)\n 3. Fokus Bias/Variansi\n 4. Sensitivitas\n\n Siap menulis.",
"type": "summary_text"
}
],
"type": "reasoning",
"content": null,
"encrypted_content": null,
"status": null
},
{
"id": "msg_560e34a6-1bdf-42ae-993e-590b38249146",
"content": [
{
"annotations": [],
"text": "Meskipun Random Forest dan GBDT (Pohon Keputusan Gradient Boosting) keduanya merupakan algoritma ensemble berbasis pohon keputusan, keduanya memiliki perbedaan utama berikut:\n\n1. **Strategi Ensemble yang Berbeda**\n * **Random Forest**: Didasarkan pada gagasan **Bagging**. Setiap pohon dilatih secara independen, tanpa ketergantungan antar pohon.\n * **GBDT**: Didasarkan pada gagasan **Boosting**. Pohon-pohon sangat bergantung satu sama lain. Pohon berikutnya bertujuan menyesuaikan residu (gradien negatif) dari prediksi pohon sebelumnya.\n\n2. **Metode Pelatihan yang Berbeda**\n * **Random Forest**: Mendukung **pelatihan paralel** karena pohon-pohon bersifat independen, yang umumnya menghasilkan efisiensi komputasi yang lebih tinggi.\n * **GBDT**: Harus **dilatih secara serial** karena pohon berikutnya bergantung pada output pohon sebelumnya. Hal ini membuatnya secara inheren sulit diparalelkan (meskipun implementasi teknis seperti XGBoost telah memperkenalkan optimasi paralel di tingkat fitur).\n\n3. **Tujuan Optimasi yang Berbeda**\n * **Random Forest**: Terutama mengurangi **variansi** dengan merata-ratakan beberapa model untuk mencegah Overfitting dan meningkatkan stabilitas.\n * **GBDT**: Terutama mengurangi **bias** dengan memperbaiki kesalahan secara progresif untuk meningkatkan kemampuan penyesuaian dan akurasi model.\n\n4. **Sensitivitas terhadap Outlier**\n * **Random Forest**: Relatif tangguh dan tidak sensitif terhadap outlier.\n * **GBDT**: Lebih sensitif terhadap outlier karena outlier menghasilkan residu besar, yang memengaruhi arah penyesuaian pohon-pohon berikutnya.\n\nSecara ringkas, Random Forest unggul dalam stabilitas dan efisiensi paralel, sedangkan GBDT umumnya memberikan kinerja yang lebih baik dalam hal akurasi tetapi lebih kompleks dalam penyesuaian dan lebih lambat dalam pelatihan.",
"type": "output_text",
"logprobs": null
}
],
"role": "assistant",
"status": "completed",
"type": "message",
"phase": null
}
],
"parallel_tool_calls": false,
"temperature": null,
"tool_choice": "auto",
"tools": [],
"top_p": null,
"background": null,
"completed_at": null,
"conversation": null,
"max_output_tokens": null,
"max_tool_calls": null,
"previous_response_id": null,
"prompt": null,
"prompt_cache_key": null,
"prompt_cache_retention": null,
"reasoning": null,
"safety_identifier": null,
"service_tier": null,
"status": "completed",
"text": null,
"top_logprobs": null,
"truncation": null,
"usage": {
"input_tokens": 1524,
"input_tokens_details": {
"cached_tokens": 1305
},
"output_tokens": 1534,
"output_tokens_details": {
"reasoning_tokens": 1187
},
"total_tokens": 3058,
"x_details": [
{
"input_tokens": 1524,
"output_tokens": 1534,
"output_tokens_details": {
"reasoning_tokens": 1187
},
"prompt_tokens_details": {
"cache_creation": {
"ephemeral_5m_input_tokens": 213
},
"cache_creation_input_tokens": 213,
"cache_type": "ephemeral",
"cached_tokens": 1305
},
"total_tokens": 3058,
"x_billing_type": "response_api"
}
]
},
"user": null
}input_tokens untuk putaran kedua adalah 1.524, dan cached_tokens adalah 1.305. Hal ini menunjukkan bahwa konteks dari putaran pertama mengenai cache, sehingga mengurangi latensi inferensi dan biaya.
Penagihan
Aturan penagihan untuk cache sesi sama dengan cache eksplisit:
Pembuatan cache: Ditagih sebesar 125% dari harga token input standar.
Cache hit: Ditagih sebesar 10% dari harga token input standar.
Anda dapat melihat jumlah token cache dalam parameter
usage.input_tokens_details.cached_tokens.Token lainnya: Token yang tidak mengenai cache maupun tidak membuat cache baru ditagih sesuai harga aslinya.
Batasan dan keterbatasan
Panjang prompt minimum yang dapat di-cache adalah 1.024 token.
Periode validitas cache adalah 5 menit. Pengatur waktu direset setiap kali terjadi cache hit.
Ini hanya berlaku untuk API Respons dan memerlukan parameter
previous_response_iduntuk percakapan multi-putaran.Cache sesi saling eksklusif dengan caching eksplisit dan implisit. Jika cache sesi diaktifkan, kedua mode lainnya akan dinonaktifkan.
Migrasi dari Chat Completions ke API Respons
Jika Anda saat ini menggunakan API OpenAI Chat Completions, ikuti langkah-langkah berikut untuk bermigrasi ke API Respons. API Respons menawarkan antarmuka yang lebih sederhana dan fitur yang lebih kuat sekaligus mempertahankan kompatibilitas dengan Chat Completions.
1. Perbarui URL titik akhir dan base_url
Perbarui keduanya:
Jalur titik akhir: Ubah dari
/v1/chat/completionsmenjadi/v1/responses.base_url:
China (Beijing): Ubah dari
https://dashscope.aliyuncs.com/compatible-mode/v1menjadihttps://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1.Singapore: Ubah dari
https://dashscope-intl.aliyuncs.com/compatible-mode/v1menjadihttps://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1.
Python
# API Chat Completions
completion = client.chat.completions.create(
model="qwen3.5-plus",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
]
)
print(completion.choices[0].message.content)
# API Respons - dapat menggunakan format pesan yang sama
response = client.responses.create(
model="qwen3.5-plus",
input=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
]
)
print(response.output_text)
# API Respons - atau gunakan format yang lebih ringkas
response = client.responses.create(
model="qwen3.5-plus",
input="Hello!"
)
print(response.output_text)Node.js
// API Chat Completions
const completion = await client.chat.completions.create({
model: "qwen3.5-plus",
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "Hello!" }
]
});
console.log(completion.choices[0].message.content);
// API Respons - dapat menggunakan format pesan yang sama
const response = await client.responses.create({
model: "qwen3.5-plus",
input: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "Hello!" }
]
});
console.log(response.output_text);
// API Respons - atau gunakan format yang lebih ringkas
const response2 = await client.responses.create({
model: "qwen3.5-plus",
input: "Hello!"
});
console.log(response2.output_text);curl
# API 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.5-plus",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
]
}'
# API Respons - gunakan format yang lebih ringkas
curl -X POST https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.5-plus",
"input": "Hello!"
}'2. Perbarui penanganan respons
API Respons menggunakan struktur respons yang berbeda. Gunakan metode pintasan output_text untuk mengambil output teks, atau akses informasi detail melalui array output.
Perbandingan respons
| |
3. Sederhanakan manajemen percakapan multi-putaran
Pada Chat Completions, Anda harus mengelola array riwayat pesan secara manual. API Respons menyediakan parameter previous_response_id untuk menautkan konteks secara otomatis. id respons saat ini tetap valid selama 7 hari.
Python
| |
Node.js
| |
4. Gunakan alat bawaan
API Respons menyertakan beberapa alat bawaan yang tidak perlu Anda implementasikan sendiri. Cukup tentukan dalam parameter tools. Alat code interpreter dan web scraping gratis untuk waktu terbatas. Untuk informasi selengkapnya, lihat Pemanggilan alat.
Python
| |
Node.js
| |
curl
| |
FAQ
P: Bagaimana cara meneruskan konteks untuk percakapan multi-putaran?
J: Saat memulai putaran baru, berikan id dari respons model sebelumnya yang berhasil sebagai parameter previous_response_id.
P: Mengapa saya tidak bisa mencetak output_text?
J: Beberapa versi SDK Python OpenAI, seperti 1.99.2, secara salah menghapus properti ini. Perbarui SDK ke versi terbaru untuk mengatasi masalah ini.