Model pemikiran mendalam melakukan penalaran sebelum memberikan respons, sehingga meningkatkan akurasi pada tugas kompleks seperti penalaran logis dan matematika.
Contoh-contoh ini menggunakan API Chat Completion yang kompatibel dengan OpenAI dan API DashScope. Untuk respons API, lihat Pemikiran mendalam.
Penggunaan
Model Studio mendukung pemikiran mendalam dalam dua mode:
-
Mode berpikir hibrida: Gunakan parameter
enable_thinkinguntuk beralih antara mode berpikir dan non-berpikir berdasarkan permintaan:-
Atur ke
true— model melakukan penalaran sebelum merespons. -
Atur ke
false— model merespons secara langsung tanpa langkah penalaran.
Kompatibel dengan OpenAI
# Impor dependensi dan buat klien... completion = client.chat.completions.create( model="qwen-plus", # Pilih model messages=[{"role": "user", "content": "Siapa kamu"}], # Karena enable_thinking bukan parameter standar OpenAI, teruskan melalui extra_body. extra_body={"enable_thinking":True}, # Aktifkan keluaran streaming. stream=True, # Konfigurasikan aliran agar menyertakan informasi konsumsi token pada paket data terakhir. stream_options={ "include_usage": True } )DashScope
API DashScope untuk seri Qwen3.5 menggunakan antarmuka multimodal. Contoh berikut mengembalikan
url error. Untuk penggunaan yang benar, lihat Aktifkan atau nonaktifkan mode berpikir.# Impor dependensi... response = Generation.call( # Jika Anda belum mengatur variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda, contoh: api_key = "sk-xxx", api_key=os.getenv("DASHSCOPE_API_KEY"), # Anda dapat menggunakan model pemikiran mendalam lain sesuai kebutuhan. model="qwen-plus", messages=messages, result_format="message", enable_thinking=True, stream=True, incremental_output=True ) -
-
Mode hanya berpikir: Model selalu melakukan penalaran sebelum merespons — perilaku ini tidak dapat dinonaktifkan. Format permintaan sama dengan mode berpikir hibrida; tidak diperlukan parameter
enable_thinking.
API mengembalikan proses penalaran di bidang reasoning_content dan jawaban di bidang content. Karena penalaran menambah latensi dan sebagian besar model hanya mendukung streaming, semua contoh menggunakan streaming.
Model yang didukung
Qwen3.7
Seri Qwen3.7 Max (mode berpikir hibrida, pemikiran aktif secara default): qwen3.7-max, qwen3.7-max-2026-05-20, qwen3.7-max-2026-06-08
Seri Qwen3.7 Max (hanya mode berpikir): qwen3.7-max-preview, qwen3.7-max-2026-05-17
Seri Qwen3.7 Plus (mode berpikir hibrida, pemikiran aktif secara default): qwen3.7-plus, qwen3.7-plus-2026-05-26
Qwen3.6
Seri Qwen3.6 Max (mode berpikir hibrida, pemikiran aktif secara default): qwen3.6-max-preview
Seri Qwen3.6 Plus (mode berpikir hibrida, pemikiran aktif secara default): qwen3.6-plus, qwen3.6-plus-2026-04-02
Seri Qwen3.6 Flash (mode berpikir hibrida, pemikiran aktif secara default): qwen3.6-flash, qwen3.6-flash-2026-04-16
Qwen3.6 open-source: qwen3.6-35b-a3b
Qwen3.5
-
Komersial
-
Seri Qwen3.5 Plus (mode berpikir hibrida, pemikiran aktif secara default): qwen3.5-plus, qwen3.5-plus-2026-02-15
-
Seri Qwen3.5 Flash (mode berpikir hibrida, pemikiran aktif secara default): qwen3.5-flash, qwen3.5-flash-2026-02-23
-
-
Open-source
-
Mode berpikir hibrida, pemikiran aktif secara default: qwen3.5-397b-a17b, qwen3.5-122b-a10b, qwen3.5-27b, qwen3.5-35b-a3b
-
Qwen3
-
Komersial
-
Seri Qwen Max (mode berpikir hibrida, pemikiran nonaktif secara default): qwen3-max, qwen3-max-2026-01-23, qwen3-max-preview
-
Seri Qwen Plus (mode berpikir hibrida, pemikiran nonaktif secara default): qwen-plus, qwen-plus-latest, qwen-plus-2025-04-28 dan versi snapshot berikutnya
-
Seri Qwen Flash (mode berpikir hibrida, pemikiran nonaktif secara default): qwen-flash, qwen-flash-2025-07-28 dan versi snapshot berikutnya
-
Seri Qwen Turbo (mode berpikir hibrida, pemikiran nonaktif secara default): qwen-turbo dan versi snapshot berikutnya
-
-
Open-source
-
Mode berpikir hibrida, pemikiran aktif secara default: qwen3-235b-a22b, qwen3-32b, qwen3-30b-a3b, qwen3-14b, qwen3-8b
-
Hanya mode berpikir: qwen3-next-80b-a3b-thinking, qwen3-235b-a22b-thinking-2507, qwen3-30b-a3b-thinking-2507
-
QwQ (berbasis Qwen2.5)
Hanya mode berpikir: qwq-plus
DeepSeek
-
Diterapkan di Alibaba Cloud Model Studio
-
Mode berpikir hibrida, pemikiran nonaktif secara default: deepseek-v4-pro, deepseek-v4-flash, deepseek-v3.2, deepseek-v3.2-exp, deepseek-v3.1
-
Hanya mode berpikir: deepseek-r1, deepseek-r1-0528, model distilled deepseek-r1
-
-
Diterapkan di SiliconFlow
-
Mode berpikir hibrida, pemikiran nonaktif secara default: siliconflow/deepseek-v3.2, siliconflow/deepseek-v3.1-terminus
-
Hanya mode berpikir: siliconflow/deepseek-r1-0528
-
-
Diterapkan di Kuaishou Vanchin
-
Mode berpikir hibrida, pemikiran nonaktif secara default: vanchin/deepseek-v3.2-think, vanchin/deepseek-v3.1-terminus
-
Hanya mode berpikir: vanchin/deepseek-r1
-
GLM
Mode berpikir hibrida, pemikiran aktif secara default: glm-5.1, glm-5, glm-4.7, glm-4.6, glm-4.5, glm-4.5-air
Kimi
-
Diterapkan di Alibaba Cloud Model Studio
-
Mode berpikir hibrida, pemikiran nonaktif secara default: kimi-k2.6, kimi-k2.5
-
Hanya mode berpikir: kimi-k2.7-code, kimi-k2-thinking
-
-
Diterapkan di Moonshot AI
-
Mode berpikir hibrida, pemikiran aktif secara default: kimi/kimi-k2.6, kimi/kimi-k2.5
-
Hanya mode berpikir: kimi/kimi-k2.7-code-highspeed, kimi/kimi-k2.7-code
-
MiniMax
-
Diterapkan di Alibaba Cloud Model Studio
-
Hanya mode berpikir: MiniMax-M2.5, MiniMax-M2.1
-
Nama model, ukuran jendela konteks, harga, dan versi snapshot tersedia di Daftar model. Batas laju dijelaskan di Batas laju.
Mulai
Dapatkan Kunci API dan tetapkan sebagai variabel lingkungan. Jika Anda menggunakan SDK, instal SDK OpenAI atau DashScope (SDK DashScope Java versi 2.19.4 atau lebih baru diperlukan).
Contoh berikut memanggil qwen-plus dalam mode berpikir dengan keluaran streaming.
Kompatibel dengan OpenAI
Python
Kode contoh
from openai import OpenAI
import os
# Inisialisasi klien 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 variabel lingkungan tidak dikonfigurasi, berikan Kunci API Model Studio Anda secara langsung: api_key="sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Konfigurasi bervariasi berdasarkan wilayah. Ubah base_url sesuai wilayah Anda.
base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)
messages = [{"role": "user", "content": "Siapa kamu"}]
completion = client.chat.completions.create(
model="qwen-plus", # Anda dapat menggantinya dengan model pemikiran mendalam lain sesuai kebutuhan.
messages=messages,
extra_body={"enable_thinking": True},
stream=True,
stream_options={
"include_usage": True
},
)
reasoning_content = "" # Proses berpikir lengkap
answer_content = "" # Respons lengkap
is_answering = False # Melacak apakah fase respons telah dimulai
print("\n" + "=" * 20 + "Proses berpikir" + "=" * 20 + "\n")
for chunk in completion:
if not chunk.choices:
print("\nUsage:")
print(chunk.usage)
continue
delta = chunk.choices[0].delta
# Kumpulkan hanya konten penalaran.
if hasattr(delta, "reasoning_content") and delta.reasoning_content is not None:
if not is_answering:
print(delta.reasoning_content, end="", flush=True)
reasoning_content += delta.reasoning_content
# Saat konten diterima, mulai merespons.
if hasattr(delta, "content") and delta.content:
if not is_answering:
print("\n" + "=" * 20 + "Respons lengkap" + "=" * 20 + "\n")
is_answering = True
print(delta.content, end="", flush=True)
answer_content += delta.content
Respons
====================Proses berpikir====================
Kueri pengguna "Siapa kamu?" memerlukan respons yang akurat dan ramah. Jawaban harus terlebih dahulu menegaskan identitas saya sebagai Qwen, yang dikembangkan oleh Tongyi Lab di Alibaba Cloud. Kemudian akan menguraikan kemampuan utama seperti menjawab pertanyaan, generasi teks, dan penalaran logis. Bahasa harus sederhana dan nada bersahabat. Untuk mendorong interaksi, saya akan mengundang pengguna untuk mengajukan lebih banyak pertanyaan. Terakhir, saya akan memastikan semua detail penting ada, termasuk nama saya (Qwen) dan pengembang, untuk memberikan jawaban yang komprehensif.
====================Respons lengkap====================
Halo! Saya Qwen, model bahasa besar yang dikembangkan oleh Tongyi Lab di Alibaba Group. Saya dapat menjawab pertanyaan, menghasilkan teks, melakukan penalaran logis, menulis kode, dan lainnya, untuk memberikan informasi dan layanan berkualitas tinggi kepada Anda. Anda bisa memanggil saya Qwen. Bagaimana saya bisa membantu Anda?
Node.js
Kode contoh
import OpenAI from "openai";
import process from 'process';
// Inisialisasi klien OpenAI.
const openai = new OpenAI({
apiKey: process.env.DASHSCOPE_API_KEY, // Baca dari variabel lingkungan.
// Berikut ini adalah URL dasar untuk wilayah Singapura. Jika Anda menggunakan model di wilayah US (Virginia), ubah URL dasar menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1. URL dasar bervariasi menurut wilayah. Perbarui URL tersebut untuk wilayah penerapan Anda.
baseURL: 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1'
});
let reasoningContent = '';
let answerContent = '';
let isAnswering = false;
async function main() {
try {
const messages = [{ role: 'user', content: 'Who are you' }];
const stream = await openai.chat.completions.create({
model: 'qwen-plus',
messages,
stream: true,
enable_thinking: true
});
console.log('\n' + '='.repeat(20) + 'Thinking process' + '='.repeat(20) + '\n');
for await (const chunk of stream) {
if (!chunk.choices?.length) {
console.log('\nUsage:');
console.log(chunk.usage);
continue;
}
const delta = chunk.choices[0].delta;
// Kumpulkan hanya konten penalaran.
if (delta.reasoning_content !== undefined && delta.reasoning_content !== null) {
if (!isAnswering) {
process.stdout.write(delta.reasoning_content);
}
reasoningContent += delta.reasoning_content;
}
// Saat konten diterima, mulailah merespons.
if (delta.content !== undefined && delta.content) {
if (!isAnswering) {
console.log('\n' + '='.repeat(20) + 'Full response' + '='.repeat(20) + '\n');
isAnswering = true;
}
process.stdout.write(delta.content);
answerContent += delta.content;
}
}
} catch (error) {
console.error('Error:', error);
}
}
main();
Respons
====================Proses berpikir====================
Kueri langsung pengguna "Siapa kamu?" memerlukan respons yang ringkas dan jelas. Jawaban akan menyatakan identitas saya sebagai Qwen, model bahasa besar dari Alibaba Cloud. Akan disebutkan fungsi utama seperti menjawab pertanyaan, generasi teks, dan penalaran logis, serta sorot dukungan multibahasa (Bahasa Tionghoa, Inggris). Untuk tetap ringkas, kasus penggunaan akan disebutkan secara singkat, jika sama sekali. Nada akan ramah, dan respons akan diakhiri dengan undangan untuk pertanyaan lebih lanjut. Terakhir, saya akan memastikan akurasi tanpa menyertakan detail yang tidak perlu seperti nomor versi.
====================Respons lengkap====================
Saya Qwen, model bahasa besar yang dikembangkan oleh Tongyi Lab di Alibaba Group. Saya dapat melakukan berbagai tugas, termasuk menjawab pertanyaan, menghasilkan teks, penalaran logis, dan pengkodean, serta mendukung beberapa bahasa, termasuk Bahasa Tionghoa dan Inggris. Jika Anda memiliki pertanyaan atau membutuhkan bantuan, jangan ragu untuk bertanya kapan saja!
HTTP
Kode contoh
curl
# ======= Penting =======
# URL berikut untuk wilayah Singapura. Untuk wilayah Tiongkok (Beijing), ganti URL dengan: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/chat/completions
# Untuk wilayah AS (Virginia), ganti dengan: https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions
# === Hapus komentar ini sebelum eksekusi ===
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-plus",
"messages": [
{
"role": "user",
"content": "Siapa kamu"
}
],
"stream": true,
"stream_options": {
"include_usage": true
},
"enable_thinking": true
}'
Respons
data: {"choices":[{"delta":{"content":null,"role":"assistant","reasoning_content":""},"index":0,"logprobs":null,"finish_reason":null}],"object":"chat.completion.chunk","usage":null,"created":1745485391,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-e2edaf2c-8aaf-9e54-90e2-b21dd5045503"}
.....
data: {"choices":[{"finish_reason":"stop","delta":{"content":"","reasoning_content":null},"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1745485391,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-e2edaf2c-8aaf-9e54-90e2-b21dd5045503"}
data: {"choices":[],"object":"chat.completion.chunk","usage":{"prompt_tokens":10,"completion_tokens":360,"total_tokens":370},"created":1745485391,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-e2edaf2c-8aaf-9e54-90e2-b21dd5045503"}
data: [DONE]
DashScope
Karena API DashScope untuk seri Qwen3.5 menggunakan antarmuka multimodal, contoh berikut mengembalikan url error. Untuk penggunaan yang benar, lihat Aktifkan atau nonaktifkan mode berpikir.
Python
Kode contoh
import os
from dashscope import Generation
import dashscope
# Konfigurasi bervariasi berdasarkan wilayah. Ubah nilai ini sesuai wilayah Anda.
dashscope.base_http_api_url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1"
# Inisialisasi parameter permintaan
messages = [{"role": "user", "content": "Siapa kamu?"}]
completion = Generation.call(
# Jika variabel lingkungan tidak dikonfigurasi, ganti baris berikut dengan Kunci API Model Studio Anda: api_key = "sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen-plus",
messages=messages,
result_format="message",
enable_thinking=True,
stream=True,
incremental_output=True,
)
# Proses berpikir lengkap
reasoning_content = ""
# Respons lengkap
answer_content = ""
# Melacak apakah fase respons telah dimulai.
is_answering = False
print("=" * 20 + "Proses berpikir" + "=" * 20)
for chunk in completion:
# Jika konten berpikir dan respons kosong, abaikan chunk tersebut.
if (
chunk.output.choices[0].message.content == ""
and chunk.output.choices[0].message.reasoning_content == ""
):
pass
else:
# Jika chunk saat ini merupakan bagian dari proses berpikir.
if (
chunk.output.choices[0].message.reasoning_content != ""
and chunk.output.choices[0].message.content == ""
):
print(chunk.output.choices[0].message.reasoning_content, end="", flush=True)
reasoning_content += chunk.output.choices[0].message.reasoning_content
# Jika chunk saat ini merupakan bagian dari respons.
elif chunk.output.choices[0].message.content != "":
if not is_answering:
print("\n" + "=" * 20 + "Respons lengkap" + "=" * 20)
is_answering = True
print(chunk.output.choices[0].message.content, end="", flush=True)
answer_content += chunk.output.choices[0].message.content
# Untuk mencetak proses berpikir lengkap dan respons lengkap, hapus komentar kode berikut.
# print("=" * 20 + "Proses berpikir lengkap" + "=" * 20 + "\n")
# print(f"{reasoning_content}")
# print("=" * 20 + "Respons lengkap" + "=" * 20 + "\n")
# print(f"{answer_content}")
Respons
====================Proses berpikir====================
Untuk menjawab kueri "Siapa kamu?", respons harus menyatakan identitas saya sebagai Qwen, model bahasa besar dari Alibaba Cloud. Kemudian akan menjelaskan tujuan saya sebagai asisten yang membantu dengan menguraikan fungsi utama seperti menjawab pertanyaan, generasi teks, dan penalaran logis. Respons akan mempertahankan nada percakapan, menghindari jargon. Untuk mendorong keterlibatan lebih lanjut, akan diakhiri dengan pertanyaan terbuka. Terakhir, saya akan memeriksa kejelasan, keringkasan, dan keseimbangan antara nada ramah dan profesional.
====================Respons lengkap====================
Halo! Saya Qwen, model bahasa skala besar yang dikembangkan oleh Alibaba Cloud. Saya dapat menjawab pertanyaan, menghasilkan teks, melakukan penalaran logis, menulis kode, dan lainnya, untuk memberikan bantuan dan dukungan. Apakah Anda memiliki pertanyaan tentang kehidupan sehari-hari atau topik profesional, saya akan melakukan yang terbaik untuk membantu. Adakah yang bisa saya bantu?
Java
Kode contoh
// Versi SDK DashScope harus 2.19.4 atau lebih baru.
import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import io.reactivex.Flowable;
import java.lang.System;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// URL dasar berikut untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, Anda harus mengubah URL dasar menjadi https://dashscope-us.aliyuncs.com/api/v1.
// Konfigurasi bervariasi berdasarkan wilayah. Ubah konfigurasi sesuai wilayah aktual Anda.
Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
private static final Logger logger = LoggerFactory.getLogger(Main.class);
private static StringBuilder reasoningContent = new StringBuilder();
private static StringBuilder finalContent = new StringBuilder();
private static boolean isFirstPrint = true;
private static void handleGenerationResult(GenerationResult message) {
String reasoning = message.getOutput().getChoices().get(0).getMessage().getReasoningContent();
String content = message.getOutput().getChoices().get(0).getMessage().getContent();
if (!reasoning.isEmpty()) {
reasoningContent.append(reasoning);
if (isFirstPrint) {
System.out.println("====================Proses Berpikir====================");
isFirstPrint = false;
}
System.out.print(reasoning);
}
if (!content.isEmpty()) {
finalContent.append(content);
if (!isFirstPrint) {
System.out.println("\n====================Respons Lengkap====================");
isFirstPrint = true;
}
System.out.print(content);
}
}
private static GenerationParam buildGenerationParam(Message userMsg) {
return GenerationParam.builder()
// Kunci API bervariasi berdasarkan wilayah. Untuk mendapatkan Kunci API, kunjungi https://www.alibabacloud.com/help/en/model-studio/get-api-key
// Jika Anda belum mengonfigurasi variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Alibaba Cloud Anda: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen-plus")
.enableThinking(true)
.incrementalOutput(true)
.resultFormat("message")
.messages(Arrays.asList(userMsg))
.build();
}
public static void streamCallWithMessage(Generation gen, Message userMsg)
throws NoApiKeyException, ApiException, InputRequiredException {
GenerationParam param = buildGenerationParam(userMsg);
Flowable<GenerationResult> result = gen.streamCall(param);
result.blockingForEach(message -> handleGenerationResult(message));
}
public static void main(String[] args) {
try {
Generation gen = new Generation();
Message userMsg = Message.builder().role(Role.USER.getValue()).content("Siapa kamu?").build();
streamCallWithMessage(gen, userMsg);
// Cetak hasil akhir.
// if (reasoningContent.length() > 0) {
// System.out.println("\n====================Respons Lengkap====================");
// System.out.println(finalContent.toString());
// }
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
logger.error("Terjadi pengecualian: {}", e.getMessage());
}
System.exit(0);
}
}
Respons
====================Proses berpikir====================
Respons terhadap "Siapa kamu?" harus didasarkan pada identitas yang telah ditentukan sebagai Qwen, model bahasa besar dari Alibaba Cloud. Jawaban akan bersifat percakapan, ringkas, dan mudah dipahami. Pertama akan menyatakan identitas saya, lalu menjelaskan fungsi saya, termasuk pembuatan teks, penalaran logis, pengkodean, dan dukungan multibahasa. Nada akan ramah, dan respons akan diakhiri dengan undangan agar pengguna meminta bantuan, untuk mendorong interaksi lebih lanjut.
====================Respons lengkap====================
Halo! Saya Qwen, model bahasa besar dari Alibaba Group. Saya dapat menjawab pertanyaan; membuat teks seperti cerita, dokumen resmi, email, dan skrip; melakukan penalaran logis; menulis kode; menyampaikan pendapat; dan bahkan bermain game. Saya mahir dalam beberapa bahasa, termasuk tetapi tidak terbatas pada Bahasa Tionghoa, Inggris, Jerman, Prancis, dan Spanyol. Adakah yang bisa saya bantu?
HTTP
Kode contoh
curl
# ======= Penting =======
# Kunci API bervariasi berdasarkan wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Berikut adalah URL untuk wilayah Singapura. Untuk wilayah Tiongkok (Beijing), ganti URL dengan: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation
# Untuk wilayah AS (Virginia), ganti URL dengan: https://dashscope-us.aliyuncs.com/api/v1/services/aigc/text-generation/generation
# === Hapus komentar ini sebelum eksekusi ===
curl -X POST "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-H "X-DashScope-SSE: enable" \
-d '{
"model": "qwen-plus",
"input":{
"messages":[
{
"role": "user",
"content": "Siapa kamu?"
}
]
},
"parameters":{
"enable_thinking": true,
"incremental_output": true,
"result_format": "message"
}
}'
Respons
id:1
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":"Hmm","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":14,"input_tokens":11,"output_tokens":3},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
id:2
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":",","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":15,"input_tokens":11,"output_tokens":4},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
id:3
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":"user","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":16,"input_tokens":11,"output_tokens":5},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
id:4
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":"asks","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":17,"input_tokens":11,"output_tokens":6},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
id:5
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":"“","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":18,"input_tokens":11,"output_tokens":7},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
......
id:358
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"help","reasoning_content":"","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":373,"input_tokens":11,"output_tokens":362},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
id:359
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":",","reasoning_content":"","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":374,"input_tokens":11,"output_tokens":363},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
id:360
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"Please feel free","reasoning_content":"","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":375,"input_tokens":11,"output_tokens":364},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
id:361
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"to","reasoning_content":"","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":376,"input_tokens":11,"output_tokens":365},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
id:362
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"let me know","reasoning_content":"","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":377,"input_tokens":11,"output_tokens":366},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
id:363
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"!","reasoning_content":"","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":378,"input_tokens":11,"output_tokens":367},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
id:364
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":"","role":"assistant"},"finish_reason":"stop"}]},"usage":{"total_tokens":378,"input_tokens":11,"output_tokens":367},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
Kemampuan inti
Aktifkan/nonaktifkan mode berpikir dan non-berpikir
Mode berpikir meningkatkan kualitas respons tetapi menambah latensi dan biaya. Pada model berpikir hibrida, aktifkan/nonaktifkan berdasarkan permintaan sesuai kompleksitas kueri:
-
Atur
enable_thinkingkefalseuntuk kueri sederhana — percakapan santai, tanya jawab langsung. -
Atur
enable_thinkingketrueuntuk penalaran kompleks — masalah logika, generasi kode, atau matematika.
Kompatibel dengan OpenAI
enable_thinking bukan parameter standar OpenAI. Di SDK Python OpenAI, teruskan melalui extra_body. Di SDK Node.js, teruskan sebagai parameter tingkat atas.
Python
Kode contoh
from openai import OpenAI
import os
# Inisialisasi klien OpenAI.
client = OpenAI(
# Jika variabel lingkungan tidak dikonfigurasi, ganti nilai dengan Kunci API Model Studio Anda: api_key="sk-xxx"
# Kunci API berbeda berdasarkan wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
# URL berikut untuk wilayah Singapura. Saat memanggil, ganti WorkspaceId dengan ID ruang kerja aktual Anda. URL bervariasi berdasarkan wilayah.
base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)
messages = [{"role": "user", "content": "Siapa kamu?"}]
completion = client.chat.completions.create(
model="qwen-plus",
messages=messages,
# Atur enable_thinking di extra_body untuk mengaktifkan proses penalaran.
extra_body={"enable_thinking": True},
stream=True,
stream_options={
"include_usage": True
},
)
reasoning_content = "" # Proses penalaran lengkap
answer_content = "" # Respons lengkap
is_answering = False # Menunjukkan apakah fase respons telah dimulai
print("\n" + "=" * 20 + "Proses penalaran" + "=" * 20 + "\n")
for chunk in completion:
if not chunk.choices:
print("\n" + "=" * 20 + "Penggunaan token" + "=" * 20 + "\n")
print(chunk.usage)
continue
delta = chunk.choices[0].delta
# Kumpulkan hanya konten penalaran.
if hasattr(delta, "reasoning_content") and delta.reasoning_content is not None:
if not is_answering:
print(delta.reasoning_content, end="", flush=True)
reasoning_content += delta.reasoning_content
# Saat konten diterima, mulai respons.
if hasattr(delta, "content") and delta.content:
if not is_answering:
print("\n" + "=" * 20 + "Respons lengkap" + "=" * 20 + "\n")
is_answering = True
print(delta.content, end="", flush=True)
answer_content += delta.content
Respons
====================Proses penalaran====================
Pengguna bertanya "Siapa kamu?". Saya perlu menentukan apa yang ingin mereka ketahui. Mereka mungkin berinteraksi dengan saya untuk pertama kalinya atau ingin mengonfirmasi identitas saya. Saya harus memperkenalkan diri sebagai Qwen, yang dikembangkan oleh Tongyi Lab. Kemudian, saya harus menjelaskan kemampuan saya, seperti menjawab pertanyaan, membuat teks, dan pengkodean, sehingga pengguna memahami bagaimana saya dapat membantu mereka. Saya juga harus menyebutkan dukungan multibahasa saya agar pengguna internasional tahu bahwa mereka dapat berkomunikasi dalam berbagai bahasa. Terakhir, saya harus mempertahankan nada ramah dan mengundang mereka untuk mengajukan pertanyaan guna mendorong interaksi lebih lanjut. Penjelasan harus jelas dan sederhana, menghindari jargon teknis. Pengguna kemungkinan besar menginginkan ikhtisar cepat tentang kemampuan saya, jadi saya akan fokus pada fungsi dan aplikasi saya. Saya juga harus mempertimbangkan apakah ada informasi yang hilang, seperti menyebutkan Alibaba Group atau detail teknis lebih lanjut. Namun, pengguna mungkin hanya membutuhkan informasi dasar. Saya akan memastikan responsnya ramah dan profesional, serta mendorong mereka untuk melanjutkan percakapan.
====================Respons lengkap====================
Saya Qwen, model bahasa skala besar yang dikembangkan oleh Tongyi Lab. Saya dapat membantu Anda menjawab pertanyaan, membuat teks, kode, dan menyampaikan pendapat. Saya mendukung komunikasi dalam beberapa bahasa. Bagaimana saya bisa membantu Anda?
====================Penggunaan token====================
CompletionUsage(completion_tokens=221, prompt_tokens=10, total_tokens=231, completion_tokens_details=CompletionTokensDetails(accepted_prediction_tokens=None, audio_tokens=None, reasoning_tokens=172, rejected_prediction_tokens=None), prompt_tokens_details=PromptTokensDetails(audio_tokens=None, cached_tokens=0))
Node.js
Kode contoh
import OpenAI from "openai";
import process from 'process';
// Inisialisasi klien OpenAI.
const openai = new OpenAI({
// Jika variabel lingkungan tidak dikonfigurasi, ganti nilai dengan Kunci API Model Studio Anda: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// Konfigurasi bervariasi berdasarkan wilayah. Ubah ini sesuai wilayah aktual Anda.
baseURL: 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1'
});
let reasoningContent = ''; // Proses penalaran lengkap
let answerContent = ''; // Respons lengkap
let isAnswering = false; // Menunjukkan apakah fase respons telah dimulai
async function main() {
try {
const messages = [{ role: 'user', content: 'Siapa kamu?' }];
const stream = await openai.chat.completions.create({
model: 'qwen-plus',
messages,
// Di SDK Node.js, parameter non-standar seperti enable_thinking diteruskan sebagai properti tingkat atas dan tidak diperlukan di extra_body.
enable_thinking: true,
stream: true,
stream_options: {
include_usage: true
},
});
console.log('\n' + '='.repeat(20) + 'Proses penalaran' + '='.repeat(20) + '\n');
for await (const chunk of stream) {
if (!chunk.choices?.length) {
console.log('\n' + '='.repeat(20) + 'Penggunaan token' + '='.repeat(20) + '\n');
console.log(chunk.usage);
continue;
}
const delta = chunk.choices[0].delta;
// Kumpulkan hanya konten penalaran.
if (delta.reasoning_content !== undefined && delta.reasoning_content !== null) {
if (!isAnswering) {
process.stdout.write(delta.reasoning_content);
}
reasoningContent += delta.reasoning_content;
}
// Saat konten diterima, mulai respons.
if (delta.content !== undefined && delta.content) {
if (!isAnswering) {
console.log('\n' + '='.repeat(20) + 'Respons lengkap' + '='.repeat(20) + '\n');
isAnswering = true;
}
process.stdout.write(delta.content);
answerContent += delta.content;
}
}
} catch (error) {
console.error('Error:', error);
}
}
main();
Respons
====================Proses penalaran====================
Pengguna bertanya "Siapa kamu?". Saya perlu menentukan apa yang ingin mereka ketahui. Mereka mungkin berinteraksi dengan saya untuk pertama kalinya atau ingin mengonfirmasi identitas saya. Saya harus memperkenalkan diri sebagai Qwen, dan menyebutkan nama Inggris saya juga Qwen. Kemudian, saya akan menyatakan bahwa saya adalah model bahasa skala besar yang dikembangkan secara independen oleh Tongyi Lab di Alibaba Group. Selanjutnya, saya harus mencantumkan kemampuan saya, seperti menjawab pertanyaan, membuat teks, pengkodean, dan menyampaikan pendapat, sehingga pengguna memahami tujuan saya. Saya juga harus menyebutkan dukungan multibahasa saya, yang akan berguna bagi pengguna internasional. Terakhir, saya akan mengundang mereka untuk mengajukan pertanyaan dengan sikap ramah dan terbuka. Saya harus menggunakan bahasa yang sederhana dan mudah dipahami serta menghindari jargon teknis berlebihan. Pengguna mungkin membutuhkan bantuan atau hanya ingin tahu, jadi respons harus menyambut dan mendorong interaksi lebih lanjut. Saya juga harus mempertimbangkan apakah pengguna memiliki kebutuhan yang lebih dalam, seperti menguji kemampuan saya atau mencari bantuan spesifik, tetapi respons awal akan fokus pada informasi dasar dan panduan. Saya akan menjaga nada percakapan dan menggunakan kalimat sederhana untuk komunikasi yang efektif.
====================Respons lengkap====================
Halo! Saya Qwen. Saya adalah model bahasa skala besar yang dikembangkan secara independen oleh Tongyi Lab di Alibaba Group. Saya dapat membantu Anda menjawab pertanyaan, membuat teks seperti cerita, dokumen resmi, email, dan skrip, melakukan penalaran logis, kode, dan bahkan menyampaikan pendapat serta bermain game. Saya mendukung beberapa bahasa, termasuk tetapi tidak terbatas pada Bahasa Tionghoa, Inggris, Jerman, Prancis, dan Spanyol.
Jika Anda memiliki pertanyaan atau membutuhkan bantuan, jangan ragu untuk bertanya!
====================Penggunaan token====================
{
prompt_tokens: 10,
completion_tokens: 288,
total_tokens: 298,
completion_tokens_details: { reasoning_tokens: 188 },
prompt_tokens_details: { cached_tokens: 0 }
}
HTTP
Kode contoh
curl
# ======= PENTING =======
# Kunci API berbeda berdasarkan wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# URL dasar bervariasi berdasarkan wilayah. Untuk informasi lebih lanjut, lihat https://www.alibabacloud.com/help/en/model-studio/regions/
# === Hapus komentar ini sebelum eksekusi ===
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-plus",
"messages": [
{
"role": "user",
"content": "Siapa kamu?"
}
],
"stream": true,
"stream_options": {
"include_usage": true
},
"enable_thinking": true
}'
DashScope
API DashScope untuk seri Qwen3.5 menggunakan antarmuka multimodal. Contoh berikut mengembalikan url error. Untuk penggunaan yang benar, lihat Aktifkan atau nonaktifkan mode berpikir.
Python
Kode contoh
import os
from dashscope import Generation
import dashscope
# Konfigurasi bervariasi berdasarkan wilayah. Ubah ini sesuai kebutuhan.
dashscope.base_http_api_url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/"
# Inisialisasi parameter permintaan.
messages = [{"role": "user", "content": "Siapa kamu?"}]
completion = Generation.call(
# Jika Anda belum mengatur variabel lingkungan, ganti ini dengan Kunci API Model Studio Anda: api_key="sk-xxx"
# Kunci API bersifat spesifik wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/regions
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen-plus",
messages=messages,
result_format="message", # Atur format hasil ke message.
enable_thinking=True, # Aktifkan proses berpikir.
stream=True, # Aktifkan keluaran streaming.
incremental_output=True, # Aktifkan keluaran inkremental.
)
reasoning_content = "" # Proses berpikir lengkap
answer_content = "" # Respons lengkap
is_answering = False # Menunjukkan apakah model berada dalam fase menjawab.
print("\n" + "=" * 20 + "Proses berpikir" + "=" * 20 + "\n")
for chunk in completion:
message = chunk.output.choices[0].message
# Kumpulkan hanya konten berpikir.
if message.reasoning_content:
if not is_answering:
print(message.reasoning_content, end="", flush=True)
reasoning_content += message.reasoning_content
# Saat konten diterima, mulai membangun respons.
if message.content:
if not is_answering:
print("\n" + "=" * 20 + "Respons lengkap" + "=" * 20 + "\n")
is_answering = True
print(message.content, end="", flush=True)
answer_content += message.content
print("\n" + "=" * 20 + "Penggunaan token" + "=" * 20 + "\n")
print(chunk.usage)
# Setelah loop, variabel reasoning_content dan answer_content berisi konten lengkap.
# Anda dapat melakukan pemrosesan lanjutan di sini sesuai kebutuhan.
# print(f"\n\nProses berpikir lengkap:\n{reasoning_content}")
# print(f"\nRespons lengkap:\n{answer_content}")
Respons
====================Proses berpikir====================
Oke, pengguna bertanya "Siapa kamu?". Saya perlu mencari tahu apa yang ingin mereka ketahui. Mereka mungkin baru mengenal saya atau hanya ingin mengonfirmasi identitas saya. Pertama, saya harus memperkenalkan diri sebagai Qwen dan menyatakan bahwa saya adalah model bahasa skala besar dari Tongyi Lab. Kemudian, saya harus menjelaskan kemampuan saya, seperti menjawab pertanyaan, menulis teks, dan pengkodean, sehingga pengguna tahu apa yang bisa saya lakukan. Saya juga harus menyebutkan dukungan multibahasa saya untuk pengguna internasional. Terakhir, saya akan bersikap ramah dan mengundang mereka untuk mengajukan lebih banyak pertanyaan guna mendorong interaksi. Penting untuk menggunakan bahasa sederhana dan menghindari jargon teknis. Pengguna mungkin memiliki kebutuhan lain, seperti menguji kemampuan saya atau mendapatkan bantuan, jadi memberikan contoh spesifik seperti menulis cerita, dokumen resmi, atau email akan sangat membantu. Saya juga perlu memastikan responsnya terstruktur dengan baik. Saya dapat mencantumkan fungsi saya, tetapi alur alami mungkin lebih baik daripada poin-poin. Saya harus juga mengklarifikasi bahwa saya adalah asisten AI tanpa kesadaran pribadi dan jawaban saya didasarkan pada data pelatihan untuk mencegah kesalahpahaman. Saya harus memeriksa apakah saya melewatkan detail penting, seperti kemampuan multimodal saya atau pembaruan terbaru, tetapi mungkin tidak perlu masuk ke detail terlalu banyak untuk respons pertama. Singkatnya, jawaban harus komprehensif tetapi ringkas, ramah, dan membantu, membuat pengguna merasa dipahami dan didukung.
====================Respons lengkap====================
Saya Qwen, model bahasa skala besar yang dikembangkan oleh Tongyi Lab dari Alibaba Group. Saya dapat membantu Anda dengan hal-hal berikut:
1. **Menjawab pertanyaan**: Saya dapat mencoba menjawab pertanyaan akademis, pengetahuan umum, atau pertanyaan spesifik domain Anda.
2. **Membuat teks**: Saya dapat membantu Anda menulis cerita, dokumen resmi, email, skrip, dan lainnya.
3. **Penalaran logis**: Saya dapat membantu Anda dengan penalaran logis dan pemecahan masalah.
4. **Pemrograman**: Saya dapat memahami dan menghasilkan kode dalam berbagai bahasa pemrograman.
5. **Dukungan multibahasa**: Saya mendukung beberapa bahasa, termasuk tetapi tidak terbatas pada Bahasa Tionghoa, Inggris, Jerman, Prancis, dan Spanyol.
Jika Anda memiliki pertanyaan atau membutuhkan bantuan, jangan ragu untuk memberi tahu saya!
====================Penggunaan token====================
{"input_tokens": 11, "output_tokens": 405, "total_tokens": 416, "output_tokens_details": {"reasoning_tokens": 256}, "prompt_tokens_details": {"cached_tokens": 0}}
Java
Kode contoh
// Memerlukan SDK DashScope v2.19.4 atau lebih baru.
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.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import com.alibaba.dashscope.utils.Constants;
import io.reactivex.Flowable;
import java.lang.System;
import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Main {
static {
// URL API HTTP dasar bervariasi berdasarkan wilayah. Ubah sesuai wilayah Anda.
Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
private static final Logger logger = LoggerFactory.getLogger(Main.class);
private static StringBuilder reasoningContent = new StringBuilder();
private static StringBuilder finalContent = new StringBuilder();
private static boolean isFirstPrint = true;
private static void handleGenerationResult(GenerationResult message) {
String reasoning = message.getOutput().getChoices().get(0).getMessage().getReasoningContent();
String content = message.getOutput().getChoices().get(0).getMessage().getContent();
if (!reasoning.isEmpty()) {
reasoningContent.append(reasoning);
if (isFirstPrint) {
System.out.println("====================Proses berpikir====================");
isFirstPrint = false;
}
System.out.print(reasoning);
}
if (!content.isEmpty()) {
finalContent.append(content);
if (!isFirstPrint) {
System.out.println("\n====================Respons lengkap====================");
isFirstPrint = true;
}
System.out.print(content);
}
}
private static GenerationParam buildGenerationParam(Message userMsg) {
return GenerationParam.builder()
// Jika Anda belum mengatur variabel lingkungan, ganti baris berikut dengan Kunci API Model Studio Anda: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen-plus")
.enableThinking(true)
.incrementalOutput(true)
.resultFormat("message")
.messages(Arrays.asList(userMsg))
.build();
}
public static void streamCallWithMessage(Generation gen, Message userMsg)
throws NoApiKeyException, ApiException, InputRequiredException {
GenerationParam param = buildGenerationParam(userMsg);
Flowable<GenerationResult> result = gen.streamCall(param);
result.blockingForEach(message -> handleGenerationResult(message));
}
public static void main(String[] args) {
try {
Generation gen = new Generation();
Message userMsg = Message.builder().role(Role.USER.getValue()).content("Siapa kamu?").build();
streamCallWithMessage(gen, userMsg);
// Cetak hasil akhir.
// if (reasoningContent.length() > 0) {
// System.out.println("\n====================Respons lengkap====================");
// System.out.println(finalContent.toString());
// }
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
logger.error("Terjadi pengecualian: {}", e.getMessage());
}
System.exit(0);
}
}
Respons
====================Proses berpikir====================
Oke, pengguna bertanya "Siapa kamu?". Saya perlu mencari tahu apa yang ingin mereka ketahui. Mereka mungkin ingin mengetahui identitas saya atau hanya menguji respons saya. Pertama, saya harus dengan jelas menyatakan bahwa saya adalah Qwen, model bahasa skala besar dari Alibaba Group. Kemudian, saya harus memperkenalkan kemampuan saya secara singkat, seperti menjawab pertanyaan, menulis teks, dan pengkodean, sehingga pengguna memahami apa yang bisa saya lakukan. Saya juga harus menyebutkan bahwa saya mendukung beberapa bahasa sehingga pengguna internasional tahu bahwa mereka dapat berkomunikasi dengan saya dalam berbagai bahasa. Terakhir, saya akan bersikap ramah dan mengundang mereka untuk mengajukan pertanyaan agar mereka merasa nyaman dan bersedia berinteraksi lebih lanjut. Jawaban tidak boleh terlalu panjang tetapi harus komprehensif. Pengguna mungkin memiliki pertanyaan lanjutan tentang detail teknis saya atau kasus penggunaan, tetapi jawaban awal harus sederhana dan jelas. Saya akan memastikan untuk tidak menggunakan jargon teknis sehingga semua pengguna dapat memahami. Saya akan memeriksa apakah ada informasi penting yang hilang, seperti dukungan multibahasa dan contoh spesifik fungsi saya. Oke, ini seharusnya mencakup kebutuhan pengguna.
====================Respons lengkap====================
Saya Qwen, model bahasa skala besar dari Alibaba Group. Saya dapat menjawab pertanyaan, membuat teks (seperti cerita, dokumen resmi, email, dan skrip), melakukan penalaran logis, kode, menyampaikan pendapat, dan bermain game. Saya juga mendukung komunikasi multibahasa, termasuk tetapi tidak terbatas pada Bahasa Tionghoa, Inggris, Jerman, Prancis, dan Spanyol. Jika Anda memiliki pertanyaan atau membutuhkan bantuan, jangan ragu untuk memberi tahu saya!
HTTP
Kode contoh
curl
# ======= PENTING =======
# Kunci API bersifat spesifik wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# URL dasar bervariasi berdasarkan wilayah. Ubah sesuai kebutuhan.
# === Hapus komentar ini sebelum menjalankan ===
curl -X POST "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-H "X-DashScope-SSE: enable" \
-d '{
"model": "qwen-plus",
"input":{
"messages":[
{
"role": "user",
"content": "Siapa kamu?"
}
]
},
"parameters":{
"enable_thinking": true,
"incremental_output": true,
"result_format": "message"
}
}'
Respons
id:1
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":"Hmm","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":14,"input_tokens":11,"output_tokens":3},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
id:2
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":",","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":15,"input_tokens":11,"output_tokens":4},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
id:3
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":"user","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":16,"input_tokens":11,"output_tokens":5},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
id:4
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":" asks","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":17,"input_tokens":11,"output_tokens":6},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
id:5
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":" \"","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":18,"input_tokens":11,"output_tokens":7},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
......
id:358
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"help","reasoning_content":"","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":373,"input_tokens":11,"output_tokens":362},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
id:359
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":",","reasoning_content":"","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":374,"input_tokens":11,"output_tokens":363},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
id:360
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":" feel free","reasoning_content":"","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":375,"input_tokens":11,"output_tokens":364},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
id:361
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":" to","reasoning_content":"","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":376,"input_tokens":11,"output_tokens":365},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
id:362
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":" let me know","reasoning_content":"","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":377,"input_tokens":11,"output_tokens":366},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
id:363
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"!","reasoning_content":"","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":378,"input_tokens":11,"output_tokens":367},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
id:364
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":"","role":"assistant"},"finish_reason":"stop"}]},"usage":{"total_tokens":378,"input_tokens":11,"output_tokens":367},"request_id":"25d58c29-c47b-9e8d-a0f1-d6c309ec58b1"}
Untuk model berpikir hibrida Qwen3 open-source, serta qwen-plus-2025-04-28 dan model setelahnya, Anda juga dapat mengontrol mode berpikir dengan sufiks prompt. Ketika enable_thinking bernilai true, tambahkan /no_think ke prompt untuk melewati penalaran pada giliran tersebut, atau tambahkan /think untuk mengaktifkannya kembali. Model selalu mengikuti instruksi /think atau /no_think terbaru.
Batasi panjang proses berpikir
Jejak penalaran meningkatkan latensi dan biaya token. Gunakan thinking_budget untuk membatasi jumlah token penalaran. Saat batas tercapai, model berhenti berpikir dan segera merespons.
thinking_budget secara default menggunakan panjang maksimum rantai-pikiran model. Periksa nilai default untuk setiap model di halaman konsolnya.
Parameter thinking_budget didukung oleh model Qwen3 (dalam mode berpikir) dan Kimi.
Kompatibel dengan OpenAI
Python
Kode contoh
from openai import OpenAI
import os
# Inisialisasi klien OpenAI.
client = OpenAI(
# Jika variabel lingkungan tidak dikonfigurasi, ganti "sk-xxx" dengan Kunci API Model Studio Anda.
# Kunci API bersifat spesifik wilayah. Untuk mendapatkan Kunci API, kunjungi https://www.alibabacloud.com/help/en/model-studio/get-api-key.
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Konfigurasi bervariasi berdasarkan wilayah. Ubah base_url sesuai wilayah Anda.
base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)
messages = [{"role": "user", "content": "Siapa kamu"}]
completion = client.chat.completions.create(
model="qwen-plus",
messages=messages,
# Parameter enable_thinking mengaktifkan proses berpikir, dan thinking_budget menetapkan batas tokennya.
extra_body={
"enable_thinking": True,
"thinking_budget": 50
},
stream=True,
stream_options={
"include_usage": True
},
)
reasoning_content = "" # Proses berpikir lengkap
answer_content = "" # Respons lengkap
is_answering = False # Melacak apakah fase respons telah dimulai
print("\n" + "=" * 20 + "Proses berpikir" + "=" * 20 + "\n")
for chunk in completion:
if not chunk.choices:
print("\nUsage:")
print(chunk.usage)
continue
delta = chunk.choices[0].delta
# Kumpulkan hanya konten berpikir.
if hasattr(delta, "reasoning_content") and delta.reasoning_content is not None:
if not is_answering:
print(delta.reasoning_content, end="", flush=True)
reasoning_content += delta.reasoning_content
# Saat konten diterima, fase respons dimulai.
if hasattr(delta, "content") and delta.content:
if not is_answering:
print("\n" + "=" * 20 + "Respons lengkap" + "=" * 20 + "\n")
is_answering = True
print(delta.content, end="", flush=True)
answer_content += delta.content
Respons
====================Proses berpikir====================
Oke, pengguna bertanya, "Siapa kamu?" Saya perlu memberikan respons yang jelas dan ramah. Pertama, saya harus menyatakan identitas saya sebagai Qwen, yang dikembangkan oleh Tongyi Lab di Alibaba Group. Selanjutnya, saya perlu menjelaskan fungsi utama saya, seperti menjawab
====================Respons lengkap====================
Saya Qwen, model bahasa skala besar yang dikembangkan oleh Tongyi Lab di Alibaba Group. Saya dapat menjawab pertanyaan, membuat teks, melakukan penalaran logis, dan menulis kode.
Node.js
Kode contoh
import OpenAI from "openai";
import process from 'process';
// Inisialisasi klien OpenAI.
const openai = new OpenAI({
apiKey: process.env.DASHSCOPE_API_KEY, // Baca dari variabel lingkungan.
// Konfigurasi bervariasi berdasarkan wilayah. Ubah baseURL sesuai wilayah Anda.
baseURL: 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1'
});
let reasoningContent = '';
let answerContent = '';
let isAnswering = false;
async function main() {
try {
const messages = [{ role: 'user', content: 'Siapa kamu' }];
const stream = await openai.chat.completions.create({
model: 'qwen-plus',
messages,
stream: true,
// Parameter enable_thinking mengaktifkan proses berpikir, dan thinking_budget menetapkan batas tokennya.
enable_thinking: true,
thinking_budget: 50
});
console.log('\n' + '='.repeat(20) + 'Proses berpikir' + '='.repeat(20) + '\n');
for await (const chunk of stream) {
if (!chunk.choices?.length) {
console.log('\nUsage:');
console.log(chunk.usage);
continue;
}
const delta = chunk.choices[0].delta;
// Kumpulkan hanya konten berpikir.
if (delta.reasoning_content !== undefined && delta.reasoning_content !== null) {
if (!isAnswering) {
process.stdout.write(delta.reasoning_content);
}
reasoningContent += delta.reasoning_content;
}
// Saat konten diterima, fase respons dimulai.
if (delta.content !== undefined && delta.content) {
if (!isAnswering) {
console.log('\n' + '='.repeat(20) + 'Respons lengkap' + '='.repeat(20) + '\n');
isAnswering = true;
}
process.stdout.write(delta.content);
answerContent += delta.content;
}
}
} catch (error) {
console.error('Error:', error);
}
}
main();
Respons
====================Proses berpikir====================
Oke, pengguna bertanya, "Siapa kamu?" Saya perlu memberikan respons yang jelas dan akurat. Pertama, saya harus menyatakan identitas saya sebagai Qwen, yang dikembangkan oleh Tongyi Lab di Alibaba Group. Selanjutnya, saya harus menjelaskan fungsi utama saya, seperti menjawab pertanyaan
====================Respons lengkap====================
Saya Qwen, model bahasa skala besar yang dikembangkan oleh Tongyi Lab di Alibaba Group. Saya dapat menjawab pertanyaan, membuat teks, melakukan penalaran logis, dan menulis kode.
HTTP
Kode contoh
curl
# ======= Penting =======
# Berikut adalah URL dasar untuk wilayah Singapura. Untuk model di wilayah Tiongkok (Beijing), ganti URL dengan: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/chat/completions
# Untuk model di wilayah AS (Virginia), ganti URL dengan: https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions
# === Hapus komentar ini sebelum eksekusi ===
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-plus",
"messages": [
{
"role": "user",
"content": "Siapa kamu"
}
],
"stream": true,
"stream_options": {
"include_usage": true
},
"enable_thinking": true,
"thinking_budget": 50
}'
Respons
data: {"choices":[{"delta":{"content":null,"role":"assistant","reasoning_content":""},"index":0,"logprobs":null,"finish_reason":null}],"object":"chat.completion.chunk","usage":null,"created":1745485391,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-e2edaf2c-8aaf-9e54-90e2-b21dd5045503"}
.....
data: {"choices":[{"finish_reason":"stop","delta":{"content":"","reasoning_content":null},"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1745485391,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-e2edaf2c-8aaf-9e54-90e2-b21dd5045503"}
data: {"choices":[],"object":"chat.completion.chunk","usage":{"prompt_tokens":10,"completion_tokens":360,"total_tokens":370},"created":1745485391,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-e2edaf2c-8aaf-9e54-90e2-b21dd5045503"}
data: [DONE]
DashScope
API DashScope untuk seri Qwen3.5 menggunakan antarmuka multimodal. Contoh berikut mengembalikan url error. Untuk penggunaan yang benar, lihat Aktifkan atau nonaktifkan mode berpikir.
Python
Kode contoh
import os
from dashscope import Generation
import dashscope
# URL berikut untuk wilayah Singapura. Saat memanggil, ganti WorkspaceId dengan ID ruang kerja aktual Anda. URL bervariasi berdasarkan wilayah.
dashscope.base_http_api_url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/"
messages = [{"role": "user", "content": "Siapa kamu?"}]
completion = Generation.call(
# Jika variabel lingkungan tidak dikonfigurasi, ganti baris berikut dengan Kunci API Model Studio Anda: api_key = "sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen-plus",
messages=messages,
result_format="message",
enable_thinking=True,
# Menetapkan batas token untuk proses berpikir.
thinking_budget=50,
stream=True,
incremental_output=True,
)
# Menyimpan proses berpikir lengkap.
reasoning_content = ""
# Menyimpan respons lengkap.
answer_content = ""
# Melacak apakah fase respons telah dimulai.
is_answering = False
print("=" * 20 + "Proses berpikir" + "=" * 20)
for chunk in completion:
# Abaikan chunk di mana konten berpikir dan konten respons kosong.
if (
chunk.output.choices[0].message.content == ""
and chunk.output.choices[0].message.reasoning_content == ""
):
pass
else:
# Jika chunk saat ini berisi konten berpikir.
if (
chunk.output.choices[0].message.reasoning_content != ""
and chunk.output.choices[0].message.content == ""
):
print(chunk.output.choices[0].message.reasoning_content, end="", flush=True)
reasoning_content += chunk.output.choices[0].message.reasoning_content
# Jika chunk saat ini berisi konten respons.
elif chunk.output.choices[0].message.content != "":
if not is_answering:
print("\n" + "=" * 20 + "Respons lengkap" + "=" * 20)
is_answering = True
print(chunk.output.choices[0].message.content, end="", flush=True)
answer_content += chunk.output.choices[0].message.content
# Untuk mencetak proses berpikir lengkap dan respons, hapus komentar dan jalankan kode berikut.
# print("=" * 20 + "Proses berpikir lengkap" + "=" * 20 + "\n")
# print(f"{reasoning_content}")
# print("=" * 20 + "Respons lengkap" + "=" * 20 + "\n")
# print(f"{answer_content}")
Respons
====================Proses berpikir====================
Oke, pengguna bertanya, "Siapa kamu?" Saya perlu memberikan respons yang jelas dan ramah. Pertama, saya harus memperkenalkan diri sebagai Qwen, yang dikembangkan oleh Tongyi Lab di Alibaba Group. Selanjutnya, saya harus menjelaskan fungsi utama saya, seperti
====================Respons lengkap====================
Saya Qwen, model bahasa skala besar yang dikembangkan oleh Tongyi Lab di Alibaba Group. Saya dapat menjawab pertanyaan, membuat teks, melakukan penalaran logis, dan menulis kode.
Java
Kode contoh
// Versi SDK DashScope harus 2.19.4 atau lebih baru.
import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.exception.ApiException;
import com.alibaba.dashscope.exception.InputRequiredException;
import com.alibaba.dashscope.exception.NoApiKeyException;
import io.reactivex.Flowable;
import java.lang.System;
import com.alibaba.dashscope.utils.Constants;
public class Main {
static {
// URL API HTTP dasar bervariasi berdasarkan wilayah. Ubah sesuai wilayah Anda.
Constants.baseHttpApiUrl="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1";
}
private static final Logger logger = LoggerFactory.getLogger(Main.class);
private static StringBuilder reasoningContent = new StringBuilder();
private static StringBuilder finalContent = new StringBuilder();
private static boolean isFirstPrint = true;
private static void handleGenerationResult(GenerationResult message) {
String reasoning = message.getOutput().getChoices().get(0).getMessage().getReasoningContent();
String content = message.getOutput().getChoices().get(0).getMessage().getContent();
if (!reasoning.isEmpty()) {
reasoningContent.append(reasoning);
if (isFirstPrint) {
System.out.println("====================Proses berpikir====================");
isFirstPrint = false;
}
System.out.print(reasoning);
}
if (!content.isEmpty()) {
finalContent.append(content);
if (!isFirstPrint) {
System.out.println("\n====================Respons lengkap====================");
isFirstPrint = true;
}
System.out.print(content);
}
}
private static GenerationParam buildGenerationParam(Message userMsg) {
return GenerationParam.builder()
// Jika variabel lingkungan tidak dikonfigurasi, ganti baris berikut dengan Kunci API Model Studio Anda: .apiKey("sk-xxx")
.apiKey(System.getenv("DASHSCOPE_API_KEY"))
.model("qwen-plus")
.enableThinking(true)
.thinkingBudget(50)
.incrementalOutput(true)
.resultFormat("message")
.messages(Arrays.asList(userMsg))
.build();
}
public static void streamCallWithMessage(Generation gen, Message userMsg)
throws NoApiKeyException, ApiException, InputRequiredException {
GenerationParam param = buildGenerationParam(userMsg);
Flowable<GenerationResult> result = gen.streamCall(param);
result.blockingForEach(message -> handleGenerationResult(message));
}
public static void main(String[] args) {
try {
Generation gen = new Generation();
Message userMsg = Message.builder().role(Role.USER.getValue()).content("Siapa kamu?").build();
streamCallWithMessage(gen, userMsg);
// Cetak hasil akhir.
// if (reasoningContent.length() > 0) {
// System.out.println("\n====================Respons lengkap====================");
// System.out.println(finalContent.toString());
// }
} catch (ApiException | NoApiKeyException | InputRequiredException e) {
logger.error("Terjadi pengecualian: {}", e.getMessage());
}
System.exit(0);
}
}
Respons
====================Proses berpikir====================
Oke, pengguna bertanya, "Siapa kamu?" Saya perlu memberikan respons yang jelas dan ramah. Pertama, saya harus memperkenalkan diri sebagai Qwen, yang dikembangkan oleh Tongyi Lab di Alibaba Group. Selanjutnya, saya harus menjelaskan fungsi utama saya, seperti
====================Respons lengkap====================
Saya Qwen, model bahasa skala besar yang dikembangkan oleh Tongyi Lab di Alibaba Group. Saya dapat menjawab pertanyaan, membuat teks, melakukan penalaran logis, dan menulis kode.
HTTP
Kode contoh
curl
# ======= Penting =======
# Kunci API bersifat spesifik wilayah. Untuk mendapatkan Kunci API, kunjungi https://www.alibabacloud.com/help/en/model-studio/get-api-key.
# URL endpoint bervariasi berdasarkan wilayah. Ubah sesuai wilayah Anda.
# === Hapus komentar ini sebelum eksekusi ===
curl -X POST "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-H "X-DashScope-SSE: enable" \
-d '{
"model": "qwen-plus",
"input":{
"messages":[
{
"role": "user",
"content": "Siapa kamu?"
}
]
},
"parameters":{
"enable_thinking": true,
"thinking_budget": 50,
"incremental_output": true,
"result_format": "message"
}
}'
Respons
id:1
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":"Okay","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":14,"output_tokens":3,"input_tokens":11,"output_tokens_details":{"reasoning_tokens":1}},"request_id":"2ce91085-3602-9c32-9c8b-fe3d583a2c38"}
id:2
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":",","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":15,"output_tokens":4,"input_tokens":11,"output_tokens_details":{"reasoning_tokens":2}},"request_id":"2ce91085-3602-9c32-9c8b-fe3d583a2c38"}
......
id:133
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"!","reasoning_content":"","role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":149,"output_tokens":138,"input_tokens":11,"output_tokens_details":{"reasoning_tokens":50}},"request_id":"2ce91085-3602-9c32-9c8b-fe3d583a2c38"}
id:134
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":"","role":"assistant"},"finish_reason":"stop"}]},"usage":{"total_tokens":149,"output_tokens":138,"input_tokens":11,"output_tokens_details":{"reasoning_tokens":50}},"request_id":"2ce91085-3602-9c32-9c8b-fe3d583a2c38"}
Teruskan proses berpikir
Secara default, model mengabaikan reasoning_content dalam riwayat messages. Atur preserve_thinking ke true untuk meneruskan penalaran sebelumnya ke giliran berikutnya. reasoning_content dari pesan asisten sebelumnya kemudian ditambahkan ke input model.
Parameter preserve_thinking hanya didukung untuk qwen3.7-max, qwen3.7-max-2026-05-20, qwen3.7-max-2026-06-08, qwen3.7-max-preview, qwen3.7-max-2026-05-17, qwen3.7-plus, qwen3.7-plus-2026-05-26, qwen3.6-max-preview, qwen3.6-plus, qwen3.6-plus-2026-04-02, kimi-k2.7-code (diterapkan di Alibaba Cloud Model Studio), kimi-k2.6 (diterapkan di Alibaba Cloud Model Studio), kimi/kimi-k2.7-code-highspeed (diterapkan di Moonshot AI), kimi/kimi-k2.7-code (diterapkan di Moonshot AI), dan kimi/kimi-k2.6 (diterapkan di Moonshot AI).
Mengaktifkan parameter ini ketika pesan riwayat tidak memiliki reasoning_content tidak menyebabkan error.
Saat diaktifkan, reasoning_content dari riwayat percakapan dihitung dalam token input dan penagihan.
Kompatibel dengan OpenAI
preserve_thinking bukan parameter standar OpenAI. Saat Anda menggunakan SDK Python, teruskan parameter ini di extra_body.
Python
Kode contoh
from openai import OpenAI
import os
client = OpenAI(
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Konfigurasi bervariasi berdasarkan wilayah. Ubah ini sesuai wilayah aktual Anda.
base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)
# Giliran pertama percakapan
messages = [
{"role": "user", "content": "Saya perlu memilih antrian pesan untuk sistem E-dagang yang menangani puluhan juta pesan per hari. Mohon berikan rekomendasi."}
]
first_reasoning = ""
first_content = ""
is_answering = False
completion = client.chat.completions.create(
model="qwen3.7-plus",
messages=messages,
extra_body={"enable_thinking": True},
stream=True,
stream_options={"include_usage": True},
)
print("=" * 20 + "Proses berpikir giliran pertama" + "=" * 20)
for chunk in completion:
if not chunk.choices:
continue
delta = chunk.choices[0].delta
if hasattr(delta, "reasoning_content") and delta.reasoning_content is not None:
first_reasoning += delta.reasoning_content
if not is_answering:
print(delta.reasoning_content, end="", flush=True)
if hasattr(delta, "content") and delta.content:
if not is_answering:
print("\n" + "=" * 20 + "Respons giliran pertama" + "=" * 20)
is_answering = True
print(delta.content, end="", flush=True)
first_content += delta.content
# Giliran kedua: Teruskan proses berpikir dan tanyakan mengapa model mengecualikan Kafka
messages = [
{"role": "user", "content": "Saya perlu memilih antrian pesan untuk sistem E-dagang yang menangani puluhan juta pesan per hari. Mohon berikan rekomendasi."},
{
"role": "assistant",
"content": first_content,
"reasoning_content": first_reasoning,
},
{"role": "user", "content": "Mengapa Anda mengecualikan Kafka dalam perbandingan Anda?"},
]
reasoning_content = ""
answer_content = ""
is_answering = False
# Teruskan preserve_thinking melalui extra_body
completion = client.chat.completions.create(
model="qwen3.7-plus",
messages=messages,
extra_body={
"enable_thinking": True,
"preserve_thinking": True,
},
stream=True,
stream_options={"include_usage": True},
)
print("\n" + "=" * 20 + "Proses berpikir giliran kedua" + "=" * 20)
for chunk in completion:
if not chunk.choices:
continue
delta = chunk.choices[0].delta
if hasattr(delta, "reasoning_content") and delta.reasoning_content is not None:
if not is_answering:
print(delta.reasoning_content, end="", flush=True)
reasoning_content += delta.reasoning_content
if hasattr(delta, "content") and delta.content:
if not is_answering:
print("\n" + "=" * 20 + "Respons giliran kedua" + "=" * 20)
is_answering = True
print(delta.content, end="", flush=True)
answer_content += delta.content
Respons
====================Proses berpikir giliran pertama====================
Pengguna membutuhkan antrian pesan untuk sistem E-dagang dengan puluhan juta pesan harian. Saya akan membandingkan solusi utama berdasarkan dimensi seperti throughput, keandalan, pesan tertunda, dan dukungan transaksi...
RocketMQ: Divalidasi dalam skenario E-dagang Alibaba, mendukung secara native pesan transaksional dan pesan tertunda, serta menyediakan pengurutan tingkat partisi yang ketat...
Kafka: Throughput sangat tinggi, tetapi tidak mendukung secara native pesan transaksional dan pesan tertunda, memerlukan mekanisme kompensasi kustom...
RabbitMQ: Latensi rendah, tetapi skalabilitas kluster terbatas, dengan TPS puncak dalam puluhan ribu...
====================Respons giliran pertama====================
Mempertimbangkan kebutuhan inti skenario E-dagang (pesan transaksional, pesan tertunda, pengurutan, dan penanganan puncak), saya merekomendasikan Apache RocketMQ. Jika tim Anda sudah memiliki ekosistem Kafka atau memerlukan analitik real-time yang kuat, Kafka juga merupakan opsi yang layak.
====================Proses berpikir giliran kedua====================
Pengguna bertanya mengapa Kafka dikecualikan. Meninjau proses berpikir historis saya, saya tidak mengecualikan Kafka; saya memberinya peringkat 4 bintang. Saya akan merujuk pada perbandingan terperinci sebelumnya untuk menjelaskan...
Pada giliran terakhir, saya membandingkan perbedaan antara RocketMQ dan Kafka mengenai pesan transaksional, pesan tertunda, dan pengurutan. Kelemahan utama Kafka adalah memerlukan desain arsitektur tambahan untuk mengkompensasi semantik khusus E-dagang...
====================Respons giliran kedua====================
Saya tidak mengecualikan Kafka. Kafka unggul dalam throughput dan ekosistem. Alasan RocketMQ mendapat peringkat sedikit lebih tinggi adalah kecocokannya yang lebih baik secara out-of-the-box untuk alur kerja inti E-dagang. RocketMQ mendukung secara native pesan transaksional dan pesan tertunda, sedangkan Kafka memerlukan implementasi sendiri melalui pola arsitektur seperti Pola Outbox. Jika tim Anda sudah memiliki ekosistem Kafka, ia sepenuhnya mampu menangani skenario dengan puluhan juta pesan.
Node.js
Kode contoh
import OpenAI from "openai";
import process from 'process';
const openai = new OpenAI({
apiKey: process.env.DASHSCOPE_API_KEY,
// Konfigurasi bervariasi berdasarkan wilayah. Ubah ini sesuai wilayah aktual Anda.
baseURL: 'https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1'
});
async function main() {
// Giliran pertama percakapan
let firstReasoning = '';
let firstContent = '';
let isAnswering = false;
const stream1 = await openai.chat.completions.create({
model: 'qwen3.7-plus',
messages: [{ role: 'user', content: 'Saya perlu memilih antrian pesan untuk sistem E-dagang yang menangani puluhan juta pesan per hari. Mohon berikan rekomendasi.' }],
stream: true,
enable_thinking: true
});
console.log('='.repeat(20) + 'Proses berpikir giliran pertama' + '='.repeat(20));
for await (const chunk of stream1) {
if (!chunk.choices?.length) continue;
const delta = chunk.choices[0].delta;
if (delta.reasoning_content !== undefined && delta.reasoning_content !== null) {
firstReasoning += delta.reasoning_content;
if (!isAnswering) process.stdout.write(delta.reasoning_content);
}
if (delta.content !== undefined && delta.content) {
if (!isAnswering) {
console.log('\n' + '='.repeat(20) + 'Respons giliran pertama' + '='.repeat(20));
isAnswering = true;
}
process.stdout.write(delta.content);
firstContent += delta.content;
}
}
// Giliran kedua: Teruskan proses berpikir
let reasoningContent = '';
let answerContent = '';
isAnswering = false;
const stream2 = await openai.chat.completions.create({
model: 'qwen3.7-plus',
messages: [
{ role: 'user', content: 'Saya perlu memilih antrian pesan untuk sistem E-dagang yang menangani puluhan juta pesan per hari. Mohon berikan rekomendasi.' },
{
role: 'assistant',
content: firstContent,
reasoning_content: firstReasoning
},
{ role: 'user', content: 'Mengapa Anda mengecualikan Kafka dalam perbandingan Anda?' }
],
stream: true,
enable_thinking: true,
// Teruskan preserve_thinking sebagai parameter tingkat atas
preserve_thinking: true
});
console.log('\n' + '='.repeat(20) + 'Proses berpikir giliran kedua' + '='.repeat(20));
for await (const chunk of stream2) {
if (!chunk.choices?.length) continue;
const delta = chunk.choices[0].delta;
if (delta.reasoning_content !== undefined && delta.reasoning_content !== null) {
if (!isAnswering) process.stdout.write(delta.reasoning_content);
reasoningContent += delta.reasoning_content;
}
if (delta.content !== undefined && delta.content) {
if (!isAnswering) {
console.log('\n' + '='.repeat(20) + 'Respons giliran kedua' + '='.repeat(20));
isAnswering = true;
}
process.stdout.write(delta.content);
answerContent += delta.content;
}
}
}
main();
Respons
====================Proses berpikir giliran pertama====================
Pengguna membutuhkan antrian pesan untuk sistem E-dagang dengan puluhan juta pesan harian. Saya akan membandingkan solusi utama berdasarkan dimensi seperti throughput, keandalan, pesan tertunda, dan dukungan transaksi...
====================Respons giliran pertama====================
Mempertimbangkan kebutuhan inti skenario E-dagang, saya merekomendasikan Apache RocketMQ. Jika tim Anda sudah memiliki ekosistem Kafka, Kafka juga merupakan opsi yang layak.
====================Proses berpikir giliran kedua====================
Pengguna bertanya mengapa Kafka dikecualikan. Merujuk pada proses berpikir saya sebelumnya, saya tidak mengecualikan Kafka...
====================Respons giliran kedua====================
Saya tidak mengecualikan Kafka. Kafka unggul dalam throughput dan ekosistem. Alasan RocketMQ mendapat peringkat sedikit lebih tinggi adalah kecocokannya yang lebih baik secara out-of-the-box untuk alur kerja inti E-dagang.
HTTP
Kode contoh
curl
# URL dasar bervariasi berdasarkan wilayah. Ubah sesuai wilayah aktual Anda.
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/chat/completions \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.7-plus",
"messages": [
{
"role": "user",
"content": "Saya perlu memilih antrian pesan untuk sistem E-dagang yang menangani puluhan juta pesan per hari. Mohon berikan rekomendasi."
},
{
"role": "assistant",
"content": "Mempertimbangkan kebutuhan inti skenario E-dagang, saya merekomendasikan Apache RocketMQ.",
"reasoning_content": "Pengguna membutuhkan antrian pesan untuk sistem E-dagang dengan puluhan juta pesan harian. RocketMQ mendukung secara native pesan transaksional dan pesan tertunda, menjadikannya lebih cocok untuk skenario E-dagang. Kafka memiliki throughput sangat tinggi tetapi memerlukan mekanisme kompensasi kustom."
},
{
"role": "user",
"content": "Mengapa Anda mengecualikan Kafka dalam perbandingan Anda?"
}
],
"stream": true,
"stream_options": {
"include_usage": true
},
"enable_thinking": true,
"preserve_thinking": true
}'
Respons
data: {"choices":[{"delta":{"content":null,"role":"assistant","reasoning_content":""},"index":0,"logprobs":null,"finish_reason":null}],"object":"chat.completion.chunk","usage":null,"created":1743523200,"system_fingerprint":null,"model":"qwen3.7-plus","id":"chatcmpl-example-001"}
.....
data: {"choices":[{"finish_reason":"stop","delta":{"content":"","reasoning_content":null},"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1743523200,"system_fingerprint":null,"model":"qwen3.7-plus","id":"chatcmpl-example-001"}
data: {"choices":[],"object":"chat.completion.chunk","usage":{"prompt_tokens":3463,"completion_tokens":2387,"total_tokens":5850},"created":1743523200,"system_fingerprint":null,"model":"qwen3.7-plus","id":"chatcmpl-example-001"}
data: [DONE]
DashScope
SDK Java saat ini tidak mendukung parameter preserve_thinking. Saat Anda melakukan panggilan HTTP, tempatkan parameter preserve_thinking di objek parameters.
Python
Kode contoh
import os
from dashscope import Generation
import dashscope
# URL berikut untuk wilayah Singapura. Saat memanggil, ganti WorkspaceId dengan ID ruang kerja aktual Anda. URL bervariasi berdasarkan wilayah.
dashscope.base_http_api_url = "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/"
# Giliran pertama percakapan
messages = [
{"role": "user", "content": "Saya perlu memilih antrian pesan untuk sistem E-dagang yang menangani puluhan juta pesan per hari. Mohon berikan rekomendasi."}
]
first_reasoning = ""
first_content = ""
is_answering = False
completion = Generation.call(
# Jika variabel lingkungan tidak diatur, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3.7-plus",
messages=messages,
result_format="message",
enable_thinking=True,
stream=True,
incremental_output=True,
)
print("=" * 20 + "Proses berpikir giliran pertama" + "=" * 20)
for chunk in completion:
if (
chunk.output.choices[0].message.content == ""
and chunk.output.choices[0].message.reasoning_content == ""
):
pass
else:
if (
chunk.output.choices[0].message.reasoning_content != ""
and chunk.output.choices[0].message.content == ""
):
print(chunk.output.choices[0].message.reasoning_content, end="", flush=True)
first_reasoning += chunk.output.choices[0].message.reasoning_content
elif chunk.output.choices[0].message.content != "":
if not is_answering:
print("\n" + "=" * 20 + "Respons giliran pertama" + "=" * 20)
is_answering = True
print(chunk.output.choices[0].message.content, end="", flush=True)
first_content += chunk.output.choices[0].message.content
# Giliran kedua: Teruskan proses berpikir
messages = [
{"role": "user", "content": "Saya perlu memilih antrian pesan untuk sistem E-dagang yang menangani puluhan juta pesan per hari. Mohon berikan rekomendasi."},
{
"role": "assistant",
"content": first_content,
"reasoning_content": first_reasoning,
},
{"role": "user", "content": "Mengapa Anda mengecualikan Kafka dalam perbandingan Anda?"},
]
reasoning_content = ""
answer_content = ""
is_answering = False
completion = Generation.call(
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen3.7-plus",
messages=messages,
result_format="message",
enable_thinking=True,
# Teruskan proses berpikir
preserve_thinking=True,
stream=True,
incremental_output=True,
)
print("\n" + "=" * 20 + "Proses berpikir giliran kedua" + "=" * 20)
for chunk in completion:
if (
chunk.output.choices[0].message.content == ""
and chunk.output.choices[0].message.reasoning_content == ""
):
pass
else:
if (
chunk.output.choices[0].message.reasoning_content != ""
and chunk.output.choices[0].message.content == ""
):
print(chunk.output.choices[0].message.reasoning_content, end="", flush=True)
reasoning_content += chunk.output.choices[0].message.reasoning_content
elif chunk.output.choices[0].message.content != "":
if not is_answering:
print("\n" + "=" * 20 + "Respons giliran kedua" + "=" * 20)
is_answering = True
print(chunk.output.choices[0].message.content, end="", flush=True)
answer_content += chunk.output.choices[0].message.content
Respons
====================Proses berpikir giliran pertama====================
Pengguna membutuhkan antrian pesan untuk sistem E-dagang dengan puluhan juta pesan harian. Saya akan membandingkan solusi utama berdasarkan dimensi seperti throughput, keandalan, pesan tertunda, dan dukungan transaksi...
====================Respons giliran pertama====================
Mempertimbangkan kebutuhan inti skenario E-dagang, saya merekomendasikan Apache RocketMQ. Jika tim Anda sudah memiliki ekosistem Kafka, Kafka juga merupakan opsi yang layak.
====================Proses berpikir giliran kedua====================
Pengguna bertanya mengapa Kafka dikecualikan. Merujuk pada proses berpikir saya sebelumnya, saya tidak mengecualikan Kafka...
====================Respons giliran kedua====================
Saya tidak mengecualikan Kafka. Kafka unggul dalam throughput dan ekosistem. Alasan RocketMQ mendapat peringkat sedikit lebih tinggi adalah kecocokannya yang lebih baik secara out-of-the-box untuk alur kerja inti E-dagang.
HTTP
Kode contoh
curl
# URL dasar bervariasi berdasarkan wilayah. Ubah sesuai wilayah aktual Anda.
curl -X POST "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-H "X-DashScope-SSE: enable" \
-d '{
"model": "qwen3.7-plus",
"input":{
"messages":[
{
"role": "user",
"content": "Saya perlu memilih antrian pesan untuk sistem E-dagang yang menangani puluhan juta pesan per hari. Mohon berikan rekomendasi."
},
{
"role": "assistant",
"content": "Mempertimbangkan kebutuhan inti skenario E-dagang, saya merekomendasikan Apache RocketMQ.",
"reasoning_content": "Pengguna membutuhkan antrian pesan untuk sistem E-dagang dengan puluhan juta pesan harian. RocketMQ mendukung secara native pesan transaksional dan pesan tertunda, menjadikannya lebih cocok untuk skenario E-dagang. Kafka memiliki throughput sangat tinggi tetapi memerlukan mekanisme kompensasi kustom."
},
{
"role": "user",
"content": "Mengapa Anda mengecualikan Kafka dalam perbandingan Anda?"
}
]
},
"parameters":{
"enable_thinking": true,
"preserve_thinking": true,
"incremental_output": true,
"result_format": "message"
}
}'
Respons
id:1
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":"user"},"role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":3466,"output_tokens":3,"input_tokens":3463,"output_tokens_details":{"reasoning_tokens":1}},"request_id":"example-request-001"}
id:2
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":"follow-up"},"role":"assistant"},"finish_reason":"null"}]},"usage":{"total_tokens":3467,"output_tokens":4,"input_tokens":3463,"output_tokens_details":{"reasoning_tokens":2}},"request_id":"example-request-001"}
......
id:200
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":"","role":"assistant"},"finish_reason":"stop"}]},"usage":{"total_tokens":5850,"output_tokens":2387,"input_tokens":3463,"output_tokens_details":{"reasoning_tokens":1347}},"request_id":"example-request-001"}
Fitur lainnya
Penagihan
-
Konten berpikir ditagih per token output.
-
Beberapa model berpikir hibrida memiliki harga berbeda untuk mode berpikir dan non-berpikir.
Jika model mode berpikir tidak menghasilkan output penalaran, harga mode non-berpikir berlaku.
FAQ
T: Bagaimana cara menonaktifkan mode berpikir?
T: Bisakah saya mengunggah gambar atau dokumen sebagai input?
T: Bagaimana cara melihat konsumsi token dan jumlah panggilan?
Referensi API
Untuk parameter input dan respons, lihat Generasi teks.
Kode error
Jika panggilan gagal, lihat Kode error.
