Model pemikiran mendalam melakukan penalaran sebelum menghasilkan respons untuk meningkatkan akurasi dalam tugas kompleks seperti penalaran logis dan perhitungan numerik. Topik ini menjelaskan cara memanggil model pemikiran mendalam seperti Qwen dan DeepSeek.
Topik ini menjelaskan cara memanggil model pemikiran mendalam menggunakan API Chat Completion yang kompatibel dengan OpenAI atau API DashScope. Untuk informasi tentang cara menggunakan API Responses, lihat Pemikiran mendalam.
Cara menggunakan
Alibaba Cloud Model Studio menyediakan berbagai API model pemikiran mendalam, termasuk mode berpikir campuran dan mode hanya berpikir.
Mode berpikir campuran: Gunakan parameter
enable_thinkinguntuk mengaktifkan atau menonaktifkan mode berpikir.Jika diatur ke
true, model memberikan respons setelah berpikir.Jika diatur ke
false, model memberikan respons langsung.
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, lewatkan melalui extra_body. extra_body={"enable_thinking":True}, # Panggil dalam mode keluaran streaming. stream=True, # Pastikan paket data terakhir dari respons streaming berisi informasi konsumsi token. stream_options={ "include_usage": True } )DashScope
API DashScope untuk seri Qwen3.5 menggunakan antarmuka multi-modal. Contoh berikut mengembalikan
url error. Untuk metode pemanggilan yang benar, lihat Aktifkan atau nonaktifkan mode berpikir.# Impor dependensi... response = Generation.call( # Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan api_key = "sk-xxx" menggunakan Kunci API Model Studio Anda. api_key=os.getenv("DASHSCOPE_API_KEY"), # Anda dapat mengganti ini dengan 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 berpikir sebelum memberikan respons, dan ini tidak dapat dinonaktifkan. Format permintaan sama seperti pada mode berpikir campuran, kecuali Anda tidak perlu mengatur parameter enable_thinking.
Konten berpikir dikembalikan dalam bidang reasoning_content, sedangkan konten respons dikembalikan dalam bidang content. Karena model pemikiran mendalam melakukan penalaran sebelum merespons, waktu respons menjadi lebih lama. Sebagian besar model hanya mendukung keluaran streaming, sehingga contoh dalam dokumen ini menggunakan panggilan streaming.
Model yang didukung
Qwen3.5
Versi komersial
Seri Qwen3.5 Plus (Mode berpikir campuran, diaktifkan secara default): qwen3.5-plus, qwen3.5-plus-2026-02-15
Seri Qwen3.5 Flash (Mode berpikir campuran, diaktifkan secara default): qwen3.5-flash, qwen3.5-flash-2026-02-23
Versi open source
Mode berpikir campuran, diaktifkan secara default: qwen3.5-397b-a17b, qwen3.5-122b-a10b, qwen3.5-27b, qwen3.5-35b-a3b
Qwen3
Versi komersial
Seri Qwen Max (Mode berpikir campuran, dinonaktifkan secara default): qwen3-max-2026-01-23, qwen3-max-preview
Seri Qwen Plus (Mode berpikir campuran, dinonaktifkan secara default): qwen-plus, qwen-plus-latest, qwen-plus-2025-04-28 dan model snapshot versi berikutnya
Seri Qwen Flash (Mode berpikir campuran, dinonaktifkan secara default): qwen-flash, qwen-flash-2025-07-28 dan model snapshot versi berikutnya
Seri Qwen Turbo (Mode berpikir campuran, dinonaktifkan secara default): qwen-turbo, qwen-turbo-latest, qwen-turbo-2025-04-28 dan model snapshot versi berikutnya
Versi open source
Mode berpikir campuran, diaktifkan secara default: qwen3-235b-a22b, qwen3-32b, qwen3-30b-a3b, qwen3-14b, qwen3-8b, qwen3-4b, qwen3-1.7b, qwen3-0.6b
Mode hanya berpikir: qwen3-next-80b-a3b-thinking, qwen3-235b-a22b-thinking-2507, qwen3-30b-a3b-thinking-2507
QwQ (berbasis Qwen2.5)
Mode hanya berpikir: qwq-plus, qwq-plus-latest, qwq-plus-2025-03-05, qwq-32b
DeepSeek (Wilayah Beijing)
Mode berpikir campuran, dinonaktifkan secara default: deepseek-v3.2, deepseek-v3.2-exp, deepseek-v3.1
Mode hanya berpikir: deepseek-r1, deepseek-r1-0528, model distilled deepseek-r1
GLM (Wilayah Beijing)
Mode berpikir campuran, diaktifkan secara default: glm-5, glm-4.7, glm-4.6
Kimi (Wilayah Beijing)
Mode hanya berpikir: kimi-k2-thinking
Untuk informasi tentang nama model, konteks, harga, dan versi snapshot, lihat Daftar model. Untuk informasi tentang batas laju konkuren, lihat Pembatasan laju.
Mulai
Sebelum memulai, Anda harus mendapatkan Kunci API dan mengonfigurasi Kunci API sebagai variabel lingkungan (langkah ini sedang ditinggalkan dan akan diintegrasikan ke dalam proses konfigurasi Kunci API). Jika Anda memanggil API melalui SDK, Anda perlu menginstal SDK OpenAI atau DashScope (SDK DashScope Java versi 2.19.4 atau lebih baru diperlukan).
Jalankan kode berikut untuk memanggil model 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 berbeda tiap wilayah. Untuk mendapatkan Kunci API, lihat https://www.alibabacloud.com/help/en/model-studio/get-api-key
# Jika variabel lingkungan belum dikonfigurasi, ganti baris berikut dengan Kunci API Model Studio Anda: api_key="sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Konfigurasi berbeda tiap wilayah. Ubah ini sesuai wilayah Anda.
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
messages = [{"role": "user", "content": "Siapa kamu?"}]
completion = client.chat.completions.create(
model="qwen-plus", # Anda dapat mengganti ini 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 # Penanda untuk memeriksa 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, 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 berpikir====================
Oke, pengguna bertanya "Siapa kamu?", jadi saya perlu memberikan jawaban yang akurat dan ramah. Pertama, saya harus mengonfirmasi identitas saya, yaitu Qwen, yang dikembangkan oleh laboratorium Tongyi di bawah Alibaba Group. Selanjutnya, saya harus menjelaskan fungsi utama saya, seperti menjawab pertanyaan, membuat teks, dan penalaran logis. Saya juga perlu menjaga nada yang ramah dan menghindari istilah teknis agar pengguna merasa nyaman. Saya harus menghindari terminologi kompleks untuk memastikan jawaban ringkas dan jelas. Selain itu, saya mungkin perlu menambahkan beberapa elemen interaktif, mengundang pengguna untuk mengajukan lebih banyak pertanyaan guna mendorong komunikasi lebih lanjut. Terakhir, saya akan memeriksa apakah saya melewatkan informasi penting, seperti nama Cina saya "Qianwen" dan nama Inggris "Qwen", serta perusahaan induk dan laboratorium saya. Saya perlu memastikan jawaban komprehensif dan memenuhi ekspektasi pengguna.
====================Respons lengkap====================
Halo! Saya Qwen, model bahasa skala ultra-besar yang dikembangkan secara independen oleh laboratorium Tongyi di bawah Alibaba Group. Saya dapat menjawab pertanyaan, membuat teks, melakukan penalaran logis, dan menulis kode, semua ditujukan untuk memberikan informasi dan layanan berkualitas tinggi kepada pengguna. Anda bisa memanggil saya Qwen. Ada yang bisa saya bantu?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 adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Virginia, ubah base_url menjadi https://dashscope-us.aliyuncs.com/compatible-mode/v1.
// Konfigurasi berbeda tiap wilayah. Ubah ini sesuai wilayah Anda.
baseURL: 'https://dashscope-intl.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,
enable_thinking: true
});
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, 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 berpikir====================
Oke, pengguna bertanya "Siapa kamu?", jadi saya perlu menjawab tentang identitas saya. Pertama, saya harus menyatakan dengan jelas bahwa saya adalah Qwen, model bahasa skala ultra-besar yang dikembangkan oleh Alibaba Cloud. Selanjutnya, saya dapat menyebutkan fungsi utama saya, seperti menjawab pertanyaan, membuat teks, dan penalaran logis. Saya juga harus menekankan dukungan multibahasa saya, termasuk Bahasa Tionghoa dan Inggris, sehingga pengguna tahu saya dapat menangani permintaan dalam berbagai bahasa. Selain itu, saya mungkin perlu menjelaskan skenario aplikasi saya, seperti membantu belajar, bekerja, dan kehidupan sehari-hari. Namun, pertanyaan pengguna cukup langsung, jadi saya mungkin tidak perlu memberikan terlalu banyak detail; menjaga jawaban ringkas dan jelas lebih baik. Pada saat yang sama, saya perlu memastikan nada yang ramah dan mengundang pengguna untuk mengajukan pertanyaan lebih lanjut. Saya harus memeriksa apakah saya melewatkan informasi penting, seperti versi atau pembaruan terbaru saya, tetapi pengguna mungkin tidak memerlukan detail sebanyak itu. Terakhir, saya akan mengonfirmasi jawaban akurat dan bebas kesalahan.
====================Respons lengkap====================
Saya Qwen, model bahasa skala ultra-besar yang dikembangkan secara independen oleh laboratorium Tongyi di bawah Alibaba Group. Saya dapat menangani berbagai tugas seperti menjawab pertanyaan, membuat teks, penalaran logis, dan pemrograman, serta mendukung banyak bahasa termasuk Bahasa Tionghoa dan Inggris. Jika Anda memiliki pertanyaan atau membutuhkan bantuan, jangan ragu untuk memberi tahu saya!HTTP
Kode contoh
curl
# ======= Penting =======
# Berikut adalah base_url untuk wilayah Singapura. Jika Anda menggunakan model di wilayah Beijing, ganti base_url dengan: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# Jika Anda menggunakan model di wilayah Virginia, ganti base_url dengan: https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions
# === Hapus komentar ini sebelum eksekusi ===
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": "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
API DashScope untuk seri Qwen3.5 menggunakan antarmuka multi-modal. Contoh berikut mengembalikan url error. Untuk metode pemanggilan yang benar, lihat Aktifkan atau nonaktifkan mode berpikir.Python
Kode contoh
import os
from dashscope import Generation
import dashscope
# URL endpoint berbeda tiap wilayah. Perbarui ini sesuai wilayah Anda.
dashscope.base_http_api_url = "https://dashscope-intl.aliyuncs.com/api/v1"
messages = [{"role": "user", "content": "Siapa kamu?"}]
completion = Generation.call(
# Jika Anda belum mengatur variabel lingkungan, ganti baris berikut dengan Kunci API Alibaba Cloud Model Studio Anda: api_key = "sk-xxx",
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen-plus",
messages=messages,
result_format="message",
enable_thinking=True,
stream=True,
incremental_output=True,
)
# Simpan proses penalaran lengkap.
reasoning_content = ""
# Simpan respons lengkap.
answer_content = ""
# Lacak apakah model telah selesai bernalar dan mulai merespons.
is_answering = False
print("=" * 20 + "Proses penalaran" + "=" * 20)
for chunk in completion:
# Lewati jika konten penalaran dan respons kosong.
if (
chunk.output.choices[0].message.content == ""
and chunk.output.choices[0].message.reasoning_content == ""
):
pass
else:
# Jika chunk ini hanya berisi konten penalaran.
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 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 penalaran lengkap dan respons lengkap, hapus komentar dan jalankan baris berikut.
# print("=" * 20 + "Proses penalaran lengkap" + "=" * 20 + "\n")
# print(f"{reasoning_content}")
# print("=" * 20 + "Respons lengkap" + "=" * 20 + "\n")
# print(f"{answer_content}")
Respons
====================Proses penalaran====================
Oke, pengguna bertanya, "Siapa kamu?" Saya perlu menjawab pertanyaan ini. Pertama, saya harus mengklarifikasi identitas saya: Saya Qwen, model bahasa skala besar yang dikembangkan oleh Alibaba Cloud. Selanjutnya, saya harus menjelaskan kemampuan dan tujuan saya, seperti menjawab pertanyaan, menghasilkan teks, melakukan penalaran logis, dan lainnya. Saya juga harus menekankan bahwa tujuan saya adalah menjadi asisten yang membantu.
Saya harus menjaga nada percakapan dan menghindari jargon teknis atau struktur kalimat yang kompleks. Menambahkan ekspresi ramah seperti "Hai~" akan membuat percakapan terasa lebih alami. Juga, saya harus memastikan semua poin utama tercakup secara akurat—pengembang saya, fungsi utama, dan kasus penggunaan.
Saya harus mengantisipasi kemungkinan pertanyaan lanjutan tentang aplikasi spesifik atau detail teknis, jadi saya akan menyertakan ajakan terbuka seperti "Apakah itu pertanyaan sehari-hari atau topik profesional, saya akan melakukan yang terbaik untuk membantu," yang mengundang interaksi lebih lanjut.
Terakhir, saya akan memeriksa apakah respons mengalir lancar, menghindari pengulangan atau redundansi, dan menyeimbangkan keramahan dengan profesionalisme agar pengguna merasa didukung dan percaya diri.
====================Respons lengkap====================
Hai~ Saya Qwen, model bahasa skala besar yang dikembangkan oleh Alibaba Cloud. Saya dapat menjawab pertanyaan, membuat teks, melakukan penalaran logis, menulis kode, dan lainnya—semua untuk mendukung dan membantu Anda. Apakah itu pertanyaan sehari-hari atau topik profesional, saya akan melakukan yang terbaik untuk membantu. Ada yang bisa saya bantu?Java
Kode contoh
// SDK dashscope versi >= 2.19.4
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 {
// Ini adalah URL dasar untuk wilayah Singapura. Jika Anda menggunakan wilayah Virginia, ubah URL dasar menjadi https://dashscope-us.aliyuncs.com/api/v1
// URL endpoint berbeda tiap wilayah. Perbarui ini sesuai wilayah Anda.
Constants.baseHttpApiUrl="https://dashscope-intl.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 penalaran====================");
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 berbeda tiap wilayah. Dapatkan Kunci API Anda: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
// Jika Anda belum mengatur variabel lingkungan, ganti baris berikut dengan Kunci API Alibaba Cloud 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 penalaran====================
Oke, pengguna bertanya, "Siapa kamu?" Saya perlu merespons berdasarkan peran yang telah ditentukan. Pertama, saya adalah Qwen, model bahasa skala besar di bawah Alibaba Group. Pertahankan nada percakapan dan sederhana.
Pengguna mungkin baru mengenal saya atau memverifikasi identitas saya. Mulailah dengan menyatakan dengan jelas siapa saya, lalu jelaskan secara singkat fungsi saya—menjawab pertanyaan, membuat teks, coding, dll. Sebutkan dukungan multibahasa agar pengguna tahu saya menangani berbagai bahasa.
Sesuai panduan, pertahankan nada seperti manusia. Gunakan frasa ramah dan mungkin emoji agar terdengar mudah didekati. Dorong interaksi lebih lanjut dengan menanyakan bagaimana saya bisa membantu.
Hindari istilah teknis dan penjelasan panjang. Periksa apakah semua poin utama sudah termasuk: dukungan multibahasa dan kemampuan inti. Pastikan respons tetap percakapan dan ringkas.
====================Respons lengkap====================
Hai! Saya Qwen, model bahasa skala besar dari Alibaba Group. Saya dapat menjawab pertanyaan, membuat teks—seperti cerita, dokumen resmi, email, naskah drama—melakukan penalaran logis, menulis kode, menyampaikan pendapat, bermain game, dan lainnya. Saya fasih dalam banyak bahasa, termasuk tetapi tidak terbatas pada Bahasa Tionghoa, Inggris, Jerman, Prancis, dan Spanyol. Bagaimana saya bisa membantu Anda?HTTP
Kode contoh
curl
# ======= Catatan penting =======
# Kunci API berbeda tiap wilayah. Dapatkan Kunci API Anda: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# URL berikut untuk wilayah Singapura. Jika Anda menggunakan wilayah Beijing, ganti URL dengan: https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation
# Jika Anda menggunakan wilayah Virginia, ganti URL dasar dengan: https://dashscope-us.aliyuncs.com/api/v1/services/aigc/text-generation/generation
# === Hapus komentar ini sebelum menjalankan ===
curl -X POST "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-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":"Welcome","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":"at any time","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
Beralih Antara Mode Berpikir dan Non-Berpikir
Mengaktifkan mode berpikir biasanya meningkatkan kualitas respons tetapi juga meningkatkan latensi dan biaya. Saat menggunakan model yang mendukung mode berpikir campuran, Anda dapat beralih secara dinamis antara mode berpikir dan non-berpikir berdasarkan kompleksitas pertanyaan—tanpa mengubah model:
Untuk tugas sederhana seperti obrolan santai atau tanya jawab dasar: Atur
enable_thinkingkefalseuntuk menonaktifkan mode berpikir.Untuk tugas penalaran kompleks seperti teka-teki logika, pembuatan kode, atau pemecahan soal matematika: Atur
enable_thinkingketrueuntuk mengaktifkan mode berpikir.
Kompatibilitas OpenAI
enable_thinking bukan parameter standar OpenAI. Saat menggunakan SDK Python OpenAI, lewatkan melalui extra_body. Di SDK Node.js, lewatkan sebagai parameter tingkat atas.
Python
Kode Contoh
from openai import OpenAI
import os
# Inisialisasi klien OpenAI
client = OpenAI(
# Jika Anda belum mengatur variabel lingkungan, ganti dengan Kunci API DashScope Anda: api_key="sk-xxx"
# Kunci API berbeda tiap wilayah. Dapatkan Kunci API Anda: https://www.alibabacloud.com/help/zh/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
# URL dasar berbeda tiap wilayah. Perbarui untuk wilayah Anda.
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
messages = [{"role": "user", "content": "Siapa kamu?"}]
completion = client.chat.completions.create(
model="qwen-plus",
messages=messages,
# Aktifkan mode berpikir menggunakan extra_body
extra_body={"enable_thinking": True},
stream=True,
stream_options={
"include_usage": True
},
)
reasoning_content = "" # Proses penalaran lengkap
answer_content = "" # Respons lengkap
is_answering = False # 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
# Mulai merespons saat konten muncul
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
Keluaran Respons
====================Proses Penalaran====================
Hmm, pengguna bertanya “Siapa kamu?” Saya perlu mencari tahu apa yang ingin mereka ketahui. Mungkin ini pertama kalinya mereka berinteraksi dengan saya, atau mereka ingin mengonfirmasi identitas saya. Saya harus memperkenalkan diri sebagai Qwen, yang dikembangkan oleh Tongyi Lab. Lalu saya harus mencantumkan kemampuan saya—menjawab pertanyaan, menulis teks, coding, menyampaikan pendapat—dan menyebutkan dukungan multibahasa agar pengguna internasional tahu mereka dapat menggunakan bahasa lain juga. Terakhir, saya akan menjaganya tetap ramah dan mengundang pertanyaan lebih lanjut untuk mendorong interaksi. Saya akan menjaganya tetap jelas dan menghindari jargon teknis agar mudah dipahami. Pengguna kemungkinan menginginkan ikhtisar cepat tentang apa yang bisa saya lakukan, jadi saya akan fokus pada fitur dan kasus penggunaan. Saya juga akan memeriksa apakah saya melewatkan informasi penting—seperti menyebutkan Alibaba Group atau detail teknis lebih dalam—tetapi untuk saat ini, informasi dasar sudah cukup. Saya akan memastikan nadanya ramah dan profesional sambil mendorong lebih banyak pertanyaan.
====================Respons Lengkap====================
Saya Qwen, model bahasa skala besar yang dikembangkan oleh Tongyi Lab. Saya dapat membantu Anda menjawab pertanyaan, menulis teks, coding, menyampaikan pendapat, dan lainnya. Saya mendukung banyak bahasa. Ada yang bisa saya bantu?
====================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 Anda belum mengatur variabel lingkungan, ganti dengan kunci API DashScope Anda: apiKey: "sk-xxx"
apiKey: process.env.DASHSCOPE_API_KEY,
// URL dasar bervariasi menurut wilayah. Perbarui untuk wilayah Anda.
baseURL: 'https://dashscope-intl.aliyuncs.com/compatible-mode/v1'
});
let reasoningContent = ''; // Proses penalaran lengkap
let answerContent = ''; // Tanggapan lengkap
let isAnswering = false; // Apakah fase tanggapan telah dimulai
async function main() {
try {
const messages = [{ role: 'user', content: 'Who are you?' }];
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—bukan di dalam extra_body.
enable_thinking: true,
stream: true,
stream_options: {
include_usage: true
},
});
console.log('\n' + '='.repeat(20) + 'Reasoning Process' + '='.repeat(20) + '\n');
for await (const chunk of stream) {
if (!chunk.choices?.length) {
console.log('\n' + '='.repeat(20) + 'Token Usage' + '='.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;
}
// Mulai memberikan tanggapan saat konten muncul
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();Keluaran Respons
====================Proses Penalaran====================
Hmm, pengguna bertanya “Siapa kamu?” Saya perlu mencari tahu apa yang ingin mereka ketahui. Mungkin ini pertama kalinya mereka berinteraksi dengan saya, atau mereka ingin mengonfirmasi identitas saya. Saya harus mulai dengan memperkenalkan nama dan identitas saya—Qwen. Lalu jelaskan bahwa saya adalah model bahasa skala besar yang dikembangkan oleh Tongyi Lab di bawah Alibaba Group. Selanjutnya, cantumkan kemampuan saya—menjawab pertanyaan, menulis teks (seperti cerita, dokumen resmi, email, naskah drama), penalaran logis, coding, menyampaikan pendapat, dan bermain game. Sebutkan dukungan multibahasa agar pengguna internasional tahu saya bekerja dalam banyak bahasa—termasuk Bahasa Tionghoa, Inggris, Jerman, Prancis, Spanyol, dan lainnya. Akhiri dengan undangan ramah untuk mengajukan pertanyaan. Pertahankan bahasa yang sederhana dan percakapan. Hindari istilah teknis. Pengguna mungkin membutuhkan bantuan—atau hanya ingin tahu—jadi pertahankan nada yang hangat dan terbuka. Pertimbangkan juga kebutuhan yang lebih dalam, seperti menguji kemampuan saya atau mencari bantuan spesifik, tetapi pertahankan balasan pertama fokus pada dasar-dasar dan panduan. Gunakan kalimat pendek untuk kejelasan.
====================Respons Lengkap====================
Halo! Saya Qwen, model bahasa skala besar yang dikembangkan oleh Tongyi Lab di bawah Alibaba Group. Saya dapat membantu Anda menjawab pertanyaan, menulis teks (seperti cerita, dokumen resmi, email, naskah drama), melakukan penalaran logis, coding, menyampaikan pendapat, dan bahkan bermain game. Saya mendukung banyak bahasa—termasuk Bahasa Tionghoa, Inggris, Jerman, Prancis, Spanyol, dan lainnya.
Jika Anda memiliki pertanyaan atau membutuhkan bantuan, beri tahu saya saja!
====================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
# ======= Pemberitahuan Penting =======
# Kunci API berbeda tiap wilayah. Dapatkan Kunci API Anda: https://www.alibabacloud.com/zh/model-studio/get-api-key
# URL dasar berbeda tiap wilayah. Lihat https://www.alibabacloud.com/help/zh/model-studio/regions/
# === Hapus komentar ini sebelum menjalankan ===
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": "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 multi-modal. 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 dasar berbeda tiap wilayah. Perbarui untuk wilayah Anda.
dashscope.base_http_api_url = "https://dashscope-intl.aliyuncs.com/api/v1/"
# Inisialisasi parameter permintaan
messages = [{"role": "user", "content": "Siapa kamu?"}]
completion = Generation.call(
# Jika Anda belum mengatur variabel lingkungan, ganti dengan Kunci API DashScope Anda: api_key="sk-xxx"
# Kunci API berbeda tiap wilayah. Lihat https://www.alibabacloud.com/help/zh/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 mode berpikir
stream=True, # Aktifkan streaming
incremental_output=True, # Aktifkan keluaran inkremental
)
reasoning_content = "" # Proses penalaran lengkap
answer_content = "" # Respons lengkap
is_answering = False # Apakah fase respons telah dimulai
print("\n" + "=" * 20 + "Proses Penalaran" + "=" * 20 + "\n")
for chunk in completion:
message = chunk.output.choices[0].message
# Kumpulkan hanya konten penalaran
if message.reasoning_content:
if not is_answering:
print(message.reasoning_content, end="", flush=True)
reasoning_content += message.reasoning_content
# Mulai merespons saat konten muncul
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, reasoning_content dan answer_content berisi konten lengkap.
# Anda dapat memprosesnya lebih lanjut sesuai kebutuhan.
# print(f"\n\nProses Penalaran Lengkap:\n{reasoning_content}")
# print(f"\nRespons Lengkap:\n{answer_content}")
Keluaran Respons
====================Proses Penalaran====================
Hmm, pengguna bertanya “Siapa kamu?” Saya perlu mencari tahu apa yang ingin mereka ketahui. Mungkin ini pertama kalinya mereka berinteraksi dengan saya, atau mereka ingin mengonfirmasi identitas saya. Pertama, saya akan memperkenalkan nama saya—Qwen—dan mengatakan saya adalah model bahasa skala besar yang dikembangkan oleh Tongyi Lab. Selanjutnya, saya akan menjelaskan kemampuan saya—menjawab pertanyaan, menulis teks, coding, penalaran logis—dan menyebutkan dukungan multibahasa agar pengguna internasional tahu mereka dapat menggunakan berbagai bahasa. Terakhir, saya akan menjaganya tetap ramah dan mengundang pertanyaan untuk mendorong interaksi. Saya akan menggunakan bahasa yang sederhana dan jelas serta menghindari jargon teknis. Pengguna mungkin memiliki kebutuhan yang lebih dalam—seperti menguji kemampuan saya atau mencari bantuan—jadi saya akan memberikan contoh konkret: menulis cerita, dokumen resmi, email, naskah drama. Saya akan menekankan bahwa saya adalah asisten AI tanpa kesadaran pribadi, dan semua respons berasal dari data pelatihan. Saya akan menjaga struktur yang jelas dan alami—tidak menggunakan poin-poin—tetapi tetap mencakup semuanya dengan jelas dan ringkas.
====================Respons Lengkap====================
Saya Qwen, model bahasa skala besar yang dikembangkan oleh Tongyi Lab di bawah Alibaba Group. Saya dapat membantu Anda:
1. **Menjawab pertanyaan**: Pertanyaan akademis, pengetahuan umum, atau pertanyaan spesifik domain.
2. **Menulis teks**: Cerita, dokumen resmi, email, naskah drama, dan lainnya.
3. **Melakukan penalaran logis**: Memecahkan teka-teki dan memecah masalah kompleks.
4. **Coding**: Memahami dan menghasilkan kode dalam berbagai bahasa pemrograman.
5. **Mendukung banyak bahasa**: Termasuk Bahasa Tionghoa, Inggris, Jerman, Prancis, Spanyol, dan lainnya.
Jika Anda memiliki pertanyaan atau membutuhkan bantuan, beri tahu saya saja!
====================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
// Versi SDK DashScope >= 2.19.4
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 {
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 Penalaran====================");
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 dengan Kunci API DashScope 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 {
// URL dasar berbeda tiap wilayah.
Generation gen = new Generation("http", "https://dashscope-intl.aliyuncs.com/api/v1");
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);
}
}Keluaran Respons
====================Proses Penalaran====================
Hmm, pengguna bertanya “Siapa kamu?” Saya perlu mencari tahu apa yang ingin mereka ketahui. Mungkin mereka ingin tahu identitas saya—atau mereka sedang menguji respons saya. Pertama, saya akan menjawab langsung: Saya Qwen, model bahasa skala besar di bawah Alibaba Group. Lalu saya akan menjelaskan secara singkat kemampuan saya—menjawab pertanyaan, menulis teks, coding—dan menyebutkan dukungan multibahasa agar pengguna internasional tahu mereka dapat menggunakan berbagai bahasa. Terakhir, saya akan menjaganya tetap ramah dan mengundang pertanyaan untuk mendorong interaksi. Saya akan menjaga jawaban tetap ringkas tetapi lengkap. Pengguna mungkin memiliki pertanyaan lanjutan tentang detail teknis atau kasus penggunaan—tetapi untuk saat ini, saya akan menjaganya tetap sederhana dan jelas. Saya akan menghindari jargon agar semua orang mengerti. Saya akan memeriksa kembali poin-poin penting yang terlewat—seperti dukungan multibahasa dan contoh konkret—dan memastikan nadanya tetap hangat dan membantu.
====================Respons Lengkap====================
Saya Qwen, model bahasa skala besar di bawah Alibaba Group. Saya dapat menjawab pertanyaan, menulis teks (seperti cerita, dokumen resmi, email, naskah drama), melakukan penalaran logis, coding, menyampaikan pendapat, bermain game, dan mendukung komunikasi multibahasa—termasuk Bahasa Tionghoa, Inggris, Jerman, Prancis, Spanyol, dan lainnya. Jika Anda memiliki pertanyaan atau membutuhkan bantuan, jangan ragu untuk bertanya!HTTP
Kode Contoh
curl
# ======= Pemberitahuan Penting =======
# Kunci API berbeda tiap wilayah. Dapatkan Kunci API Anda: https://www.alibabacloud.com/zh/model-studio/get-api-key
# URL dasar berbeda tiap wilayah. Perbarui untuk wilayah Anda.
# === Hapus komentar ini sebelum menjalankan ===
curl -X POST "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-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"
}
}'Keluaran Respons
id:1
event:result
:HTTP_STATUS/200
data:{"output":{"choices":[{"message":{"content":"","reasoning_content":"Um","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":"Welcome","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":"at any time","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":"tell me","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"}Selain itu, model berpikir campuran Qwen3 open-source serta model qwen-plus-2025-04-28 dan qwen-turbo-2025-04-28 menyediakan metode untuk mengontrol mode berpikir secara dinamis melalui prompt. Saat enable_thinking bernilai true, Anda dapat menyertakan /no_think dalam prompt untuk menonaktifkan mode berpikir. Untuk mengaktifkan kembali mode berpikir dalam percakapan multi-putaran, sertakan /think dalam prompt terbaru. Model akan mengikuti instruksi /think atau /no_think terbaru.
Batasi panjang berpikir
Model pemikiran mendalam terkadang menghasilkan langkah penalaran yang panjang, sehingga meningkatkan latensi dan mengonsumsi lebih banyak token. Anda dapat menggunakan parameter thinking_budget untuk mengatur jumlah maksimum token untuk penalaran. Saat model mencapai batas ini, model segera mengembalikan respons.
thinking_budget adalah panjang maksimum rantai-pikiran model. Untuk informasi lebih lanjut, lihat Daftar Model.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 Anda belum mengatur variabel lingkungan, ganti baris ini dengan Kunci API DashScope Alibaba Cloud Anda: api_key="sk-xxx"
# Kunci API berbeda tiap wilayah. Untuk mendapatkan Kunci API Anda, kunjungi https://www.alibabacloud.com/help/zh/model-studio/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
# Konfigurasi berbeda tiap wilayah. Perbarui URL ini berdasarkan wilayah Anda
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
messages = [{"role": "user", "content": "Siapa kamu"}]
completion = client.chat.completions.create(
model="qwen-plus",
messages=messages,
# Atur enable_thinking ke True untuk mengaktifkan penalaran. Gunakan thinking_budget untuk mengatur jumlah maksimum token untuk penalaran.
extra_body={
"enable_thinking": True,
"thinking_budget": 50
},
stream=True,
stream_options={
"include_usage": True
},
)
reasoning_content = "" # Langkah penalaran lengkap
answer_content = "" # Respons lengkap
is_answering = False # Apakah fase respons telah dimulai
print("\n" + "=" * 20 + "Langkah penalaran" + "=" * 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
# Mulai respons saat konten muncul
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.contentRespons
====================Langkah penalaran====================
Oke, pengguna bertanya “Siapa kamu?” Saya perlu memberikan jawaban yang jelas dan ramah. Pertama, saya harus menyatakan identitas saya—Saya Qwen, model bahasa besar yang dikembangkan oleh Tongyi Lab di bawah Alibaba Group. Selanjutnya, saya harus menjelaskan kemampuan utama saya, seperti menjawab pertanyaan
====================Respons lengkap====================
Saya Qwen, model bahasa skala besar yang dikembangkan oleh Tongyi Lab di bawah Alibaba Group. Saya dapat menjawab pertanyaan, menulis teks, melakukan penalaran logis, dan coding. Tujuan saya adalah membantu dan mendukung pengguna. Bagaimana saya bisa membantu Anda hari ini?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 berbeda tiap wilayah. Perbarui URL ini berdasarkan wilayah Anda
baseURL: 'https://dashscope-intl.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,
// Atur enable_thinking ke True untuk mengaktifkan penalaran. Gunakan thinking_budget untuk mengatur jumlah maksimum token untuk penalaran.
enable_thinking: true,
thinking_budget: 50
});
console.log('\n' + '='.repeat(20) + 'Langkah penalaran' + '='.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;
}
// Mulai respons saat konten muncul
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
====================Langkah penalaran====================
Oke, pengguna bertanya “Siapa kamu?” Saya perlu memberikan jawaban yang jelas dan akurat. Pertama, saya harus memperkenalkan diri—Saya Qwen, model bahasa besar yang dikembangkan oleh Tongyi Lab di bawah Alibaba Group. Selanjutnya, saya harus menjelaskan kemampuan utama saya, seperti menjawab pertanyaan
====================Respons lengkap====================
Saya Qwen, model bahasa skala besar yang dikembangkan secara independen oleh Tongyi Lab di bawah Alibaba Group. Saya dapat menjawab pertanyaan, menulis teks, melakukan penalaran logis, dan coding. Jika Anda memiliki pertanyaan atau membutuhkan bantuan, jangan ragu untuk bertanya kapan saja!HTTP
Kode contoh
curl
# ======= Pemberitahuan penting =======
# Contoh ini menggunakan URL dasar Singapura. Untuk model wilayah Beijing, gunakan: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
# Untuk model wilayah Virginia AS, gunakan: https://dashscope-us.aliyuncs.com/compatible-mode/v1/chat/completions
# === Hapus komentar ini sebelum menjalankan ===
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": "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 multi-modal. 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 dasar berbeda tiap wilayah. Perbarui pengaturan ini berdasarkan wilayah Anda
dashscope.base_http_api_url = "https://dashscope-intl.aliyuncs.com/api/v1/"
messages = [{"role": "user", "content": "Siapa kamu?"}]
completion = Generation.call(
# Jika Anda belum mengatur variabel lingkungan, ganti baris berikut dengan Kunci API DashScope Alibaba Cloud Anda: api_key = "sk-xxx"
api_key=os.getenv("DASHSCOPE_API_KEY"),
model="qwen-plus",
messages=messages,
result_format="message",
enable_thinking=True,
# Atur jumlah maksimum token untuk penalaran
thinking_budget=50,
stream=True,
incremental_output=True,
)
# Simpan langkah penalaran lengkap
reasoning_content = ""
# Simpan respons lengkap
answer_content = ""
# Lacak apakah penalaran telah berakhir dan respons telah dimulai
is_answering = False
print("=" * 20 + "Langkah penalaran" + "=" * 20)
for chunk in completion:
# Lewati chunk kosong
if (
chunk.output.choices[0].message.content == ""
and chunk.output.choices[0].message.reasoning_content == ""
):
pass
else:
# Tangani langkah penalaran
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
# Tangani respons akhir
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
# Hapus komentar baris berikut untuk mencetak langkah penalaran lengkap dan respons lengkap
# print("=" * 20 + "Langkah penalaran lengkap" + "=" * 20 + "\n")
# print(f"{reasoning_content}")
# print("=" * 20 + "Respons lengkap" + "=" * 20 + "\n")
# print(f"{answer_content}")
Respons
====================Langkah penalaran====================
Oke, pengguna bertanya “Siapa kamu?” Saya perlu memberikan jawaban yang jelas dan ramah. Pertama, saya harus memperkenalkan diri—Saya Qwen, model bahasa besar yang dikembangkan oleh Tongyi Lab di bawah Alibaba Group. Selanjutnya, saya harus menjelaskan kemampuan utama saya, seperti menjawab pertanyaan
====================Respons lengkap====================
Saya Qwen, model bahasa skala besar yang dikembangkan secara independen oleh Tongyi Lab di bawah Alibaba Group. Saya dapat menjawab pertanyaan, menulis teks, melakukan penalaran logis, dan coding. Tujuan saya adalah memberikan pengguna informasi dan dukungan yang komprehensif, akurat, dan membantu. Bagaimana saya bisa membantu Anda hari ini?Java
Kode contoh
// SDK dashscope versi >= 2.19.4
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 berbeda tiap wilayah. Perbarui pengaturan ini berdasarkan wilayah Anda
Constants.baseHttpApiUrl="https://dashscope-intl.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("====================Langkah penalaran====================");
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 DashScope Alibaba Cloud 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
====================Langkah penalaran====================
Oke, pengguna bertanya “Siapa kamu?” Saya perlu memberikan jawaban yang jelas dan ramah. Pertama, saya harus memperkenalkan diri—Saya Qwen, model bahasa besar yang dikembangkan oleh Tongyi Lab di bawah Alibaba Group. Selanjutnya, saya harus menjelaskan kemampuan utama saya, seperti menjawab pertanyaan
====================Respons lengkap====================
Saya Qwen, model bahasa skala besar yang dikembangkan secara independen oleh Tongyi Lab di bawah Alibaba Group. Saya dapat menjawab pertanyaan, menulis teks, melakukan penalaran logis, dan coding. Tujuan saya adalah memberikan pengguna informasi dan dukungan yang komprehensif, akurat, dan membantu. Bagaimana saya bisa membantu Anda hari ini?HTTP
Kode contoh
curl
# ======= Pemberitahuan penting =======
# Kunci API berbeda tiap wilayah. Untuk mendapatkan Kunci API Anda, kunjungi https://www.alibabacloud.com/help/zh/model-studio/get-api-key
# URL dasar berbeda tiap wilayah. Perbarui pengaturan ini berdasarkan wilayah Anda
# === Hapus komentar ini sebelum menjalankan ===
curl -X POST "https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/text-generation/generation" \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-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"}Fitur lainnya
Penagihan
Konten berpikir ditagih berdasarkan jumlah token output.
Beberapa model berpikir campuran memiliki harga berbeda untuk mode berpikir dan non-berpikir.
Jika model dijalankan dalam mode berpikir tetapi tidak mengeluarkan proses berpikir, model tersebut ditagih dengan tarif mode non-berpikir.
FAQ
T: Bagaimana cara menonaktifkan mode berpikir?
T: Model mana yang mendukung keluaran non-streaming?
T: Bagaimana cara membeli token setelah kuota gratis saya habis?
T: Bisakah saya mengunggah gambar atau dokumen untuk mengajukan pertanyaan?
T: Bagaimana cara melihat penggunaan token dan jumlah panggilan?
Referensi API
Untuk parameter input dan respons model pemikiran mendalam, lihat Qwen.
Kode error
Jika eksekusi gagal, lihat pesan error untuk informasi troubleshooting.
