Memanggil Qwen3.7 Plus dengan OpenAI SDK melalui DashScope Compatible Mode
23 Juli 2026 · 27 menit baca · Claude / GPT / Gemini

Qwen3.7 Plus cukup murah untuk diuji secara serius: per 23 Juli 2026, Qwen Cloud mencantumkan qwen3.7-plus seharga $0.40 per 1 juta token input dan $1.60 per 1 juta token output hingga 256K token input, lalu $1.20 untuk input dan $4.80 untuk output dari 256K hingga 1 juta (harga Qwen Cloud). Itulah alasan utama porting ini layak dilakukan sebelum Anda menulis ulang apa pun.
Bagian yang berguna adalah bentuk API-nya. Qwen Cloud mendokumentasikan endpoint Chat Completions yang kompatibel dengan OpenAI di:
https://dashscope-intl.aliyuncs.com/compatible-mode/v1
Halaman migrasinya sendiri menyebutkan bahwa kode OpenAI SDK yang sudah ada dapat beralih dengan mengubah base_url, api_key, dan model, dan contoh-contohnya menggunakan model="qwen3.7-plus" (kompatibilitas OpenAI Qwen Cloud). Artinya, sebagian besar aplikasi chat, skrip eval, agent kecil, dan tool internal bisa di-port dalam hitungan menit. Bagian yang perlu diperhatikan adalah parameter thinking, field OpenAI yang diabaikan, harga konteks panjang, dan perilaku cache.

1. Siapkan Client
Instal OpenAI Python SDK resmi:
python -m pip install --upgrade openai
Set key DashScope Anda:
export DASHSCOPE_API_KEY="sk-your-dashscope-key"
Lalu buat panggilan Chat Completions paling minimal:
# qwen_chat.py
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DASHSCOPE_API_KEY"],
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen3.7-plus",
messages=[
{"role": "system", "content": "You are a concise senior Python engineer."},
{"role": "user", "content": "Write a Python function that chunks a list into size-n batches."},
],
temperature=0.2,
)
print(completion.choices[0].message.content)
print(completion.usage)
Jalankan:
python qwen_chat.py
Pola yang sama bekerja di Node. Halaman migrasi cepat Qwen Cloud juga menampilkan baseURL: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1" dengan model: "qwen3.7-plus" untuk JavaScript SDK (kompatibilitas OpenAI Qwen Cloud).
Jika Anda mengelola kode yang berpindah antar-provider, simpan pengaturan provider di luar call site:
PROVIDERS = {
"qwen": {
"api_key_env": "DASHSCOPE_API_KEY",
"base_url": "https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
"model": "qwen3.7-plus",
}
}
def make_client(provider_name: str) -> tuple[OpenAI, str]:
cfg = PROVIDERS[provider_name]
return (
OpenAI(
api_key=os.environ[cfg["api_key_env"]],
base_url=cfg["base_url"],
),
cfg["model"],
)
OpenAI SDK sendiri mendukung base_url, timeout kustom, retry, dan akses raw response; README-nya mendokumentasikan retry otomatis untuk error koneksi, 408, 409, 429, dan error level 500, plus opsi max_retries dan timeout (openai-python).
2. Port Parameter, Bukan Hanya URL
Happy path-nya mudah. Bagian yang kurang mulus adalah perbedaan parameter.
Qwen Cloud mengatakan Chat Completions API sebagian besar kompatibel dengan Chat API milik OpenAI, tetapi parameter khusus Qwen harus diteruskan melalui extra_body di Python SDK (kompatibilitas OpenAI Qwen Cloud). Ini penting untuk thinking, search, dan beberapa kontrol sampling.
Contoh dengan thinking diaktifkan:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DASHSCOPE_API_KEY"],
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
)
stream = client.chat.completions.create(
model="qwen3.7-plus",
messages=[
{"role": "user", "content": "Find the bug in this retry loop and explain the fix."}
],
extra_body={
"enable_thinking": True,
"thinking_budget": 500,
},
stream=True,
)
for chunk in stream:
if not chunk.choices:
continue
delta = chunk.choices[0].delta
if getattr(delta, "reasoning_content", None):
print(delta.reasoning_content, end="", flush=True)
if getattr(delta, "content", None):
print(delta.content, end="", flush=True)
Panduan thinking Qwen menyebutkan bahwa enable_thinking mengaktifkan reasoning untuk model hybrid, thinking_budget membatasi token thinking, dan token thinking ditagih sebagai token output (thinking Qwen Cloud). Poin terakhir itulah yang sering terlewat oleh developer. Model yang berpikir selama 2.000 token sebelum menulis jawaban 300 token bukanlah panggilan output 300 token.
Periksa juga field OpenAI yang tidak didukung sebelum mem-port kode production. Qwen Cloud menyebutkan field seperti reasoning_effort, max_completion_tokens, metadata, store, verbosity, prompt_cache_key, dan beberapa lainnya akan diabaikan diam-diam dalam Chat Completions compatible mode (kompatibilitas OpenAI Qwen Cloud). Jika aplikasi OpenAI Anda bergantung pada salah satu field tersebut untuk kontrol biaya atau perilaku produk, gantilah secara eksplisit.
3. Hitung Harga Konteks Panjang Sebelum Mengirimnya
Titik perubahan harga qwen3.7-plus sederhana, tetapi dampaknya nyata.
| Token input dalam satu request | Harga input / 1 juta | Harga output / 1 juta |
|---|---|---|
| ≤ 256K | $0.40 | $1.60 |
| 256K hingga 1 juta | $1.20 | $4.80 |
Sumber: harga Qwen Cloud.
Halaman marketplace model untuk snapshot 26 Mei mencantumkan qwen3.7-plus-2026-05-26 sebagai model input teks, gambar, dan video dengan output teks, serta mengidentifikasinya sebagai snapshot 26 Mei 2026 (halaman model Qwen Cloud). Changelog Qwen Cloud secara terpisah mencantumkan qwen3.7-plus dan qwen3.7-plus-2026-05-26 pada 1 Juni 2026, menjelaskan seri Plus sebagai penambahan kemampuan vision-language yang ditingkatkan sambil tetap mempertahankan coding, tool use, dan workflow produktivitas (rilis model Qwen Cloud).
Untuk kode produk, tambahkan estimator preflight. Anda tidak perlu tokenisasi sempurna untuk mencegah panggilan 900K token yang tidak disengaja masuk ke tier mahal.
def estimate_qwen37_plus_cost(input_tokens: int, output_tokens: int) -> float:
if input_tokens <= 256_000:
input_per_m = 0.40
output_per_m = 1.60
else:
input_per_m = 1.20
output_per_m = 4.80
return (input_tokens / 1_000_000 * input_per_m) + (
output_tokens / 1_000_000 * output_per_m
)
print(estimate_qwen37_plus_cost(180_000, 4_000)) # 0.0784
print(estimate_qwen37_plus_cost(400_000, 4_000)) # 0.4992
Panggilan kedua itu bukan sekadar “sedikit lebih banyak konteks.” Ia melewati batas tier.

4. Gunakan Cache Saat Prefix Berulang
Context caching adalah area tempat Qwen bisa menjadi jauh lebih murah untuk prompt panjang yang berulang. Qwen Cloud mendokumentasikan tiga mode cache: explicit, implicit, dan session cache (context cache Qwen Cloud).
Aturan billing-nya konkret:
| Mode cache | Biaya create | Biaya hit | Minimum token yang di-cache |
|---|---|---|---|
| Explicit cache | 125% dari input standar | 10% dari input standar | 1.024 |
| Implicit cache | 100% dari input standar | 20% dari input standar | 256 |
| Session cache | 125% dari input standar | 10% dari input standar | 1.024 |
Untuk qwen3.7-plus pada tier ≤256K, ini setara dengan $0.08 per 1 juta token hit implicit-cache, $0.50 per 1 juta token pembuatan explicit-cache, dan $0.04 per 1 juta token baca explicit-cache di halaman model (halaman model Qwen Cloud).
Gunakan cache untuk prefix yang stabil: dokumen kebijakan, system prompt panjang, manual tool, schema, atau ringkasan repo. Jangan berharap cache menyelamatkan prompt ketika setiap request dimulai secara berbeda. Qwen Cloud juga menyatakan diskon Batch dan cache tidak dapat digabungkan pada request yang sama (harga Qwen Cloud).
5. Checklist Production dan Opsi Gateway
Sebelum Anda memindahkan traffic, uji kasus-kasus ini:
- Chat non-streaming dasar.
- Chat streaming.
- Mode thinking dengan
extra_body. - Tool calling jika aplikasi Anda menggunakan function.
- Output JSON, dengan mengingat bahwa Qwen compatible mode mendukung
json_object, bukanjson_schemaOpenAI. - Prompt panjang mendekati 256K token input.
- Panggilan dengan prefix berulang yang banyak memakai cache.
- Perilaku retry dan timeout.
Untuk fallback routing lintas keluarga model, onehop adalah jalur yang mudah. Ubah satu base URL OpenAI SDK menjadi https://api.onehop.ai/v1 dan gunakan satu gateway untuk GPT, Claude, Gemini, dan model lain. OneHop mendokumentasikan endpoint yang kompatibel dengan OpenAI https://api.onehop.ai/v1, kompatibel dengan Anthropic https://api.onehop.ai/anthropic, dan kompatibel dengan Vertex/Gemini https://api.onehop.ai/vertex-ai (dokumentasi onehop). Layanan ini juga diposisikan lebih murah daripada first-party, dan akun baru mendapat $10 gratis tanpa perlu kartu.
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["ONEHOP_API_KEY"],
base_url="https://api.onehop.ai/v1",
)
response = client.chat.completions.create(
model="openai/gpt-5.5",
messages=[{"role": "user", "content": "Summarize this incident report in 5 bullets."}],
)
print(response.choices[0].message.content)
Itu tidak menggantikan pekerjaan khusus Qwen di atas. Ini memberi Anda jalur yang lebih rapi ketika aplikasi membutuhkan Claude untuk satu workflow, GPT untuk workflow lain, dan Gemini untuk pengujian multimodal tanpa harus merangkai tiga sistem billing dan tiga konfigurasi SDK. Mulai di sini untuk memanggil Claude dan model lain di onehop, atau daftar untuk kredit gratis $10.
6. Porting Praktis
Porting ini hanya tiga baris sampai ternyata tidak: base_url, api_key, model. Setelah itu, pekerjaan sebenarnya adalah menghapus parameter OpenAI yang diabaikan, memindahkan kontrol Qwen ke extra_body, dan memasang guard ketat di sekitar konteks panjang.
Gunakan qwen3.7-plus saat Anda menginginkan model biaya yang seimbang dengan dukungan konteks panjang dan input multimodal. Matikan thinking untuk ekstraksi dan klasifikasi sederhana. Aktifkan untuk code review, orkestrasi tool, atau reasoning multi-langkah, dengan thinking_budget agar biaya tidak meleset. Cache prefix yang stabil. Perhatikan batas tier 256K.
Untuk tim yang juga membutuhkan Claude, GPT, atau Gemini dalam produk yang sama, siapkan jalur gateway: panggil Claude dan model lain di onehop, lalu daftar untuk kredit gratis $10 ketika Anda ingin menjalankan smoke test sungguhan tanpa menambahkan kartu.
Bacaan terkait

Gunakan Groq GPT-OSS 120B dengan OpenAI SDK: Base URL, Harga, dan Caching
Ganti satu base URL OpenAI SDK untuk menjalankan GPT-OSS 120B di Groq, estimasi biaya token cache, dan hindari kejutan biaya tool.
17 Juni 2026 · 26 menit baca

Tutorial Migrasi Memanggil Gemini API dengan OpenAI SDK: Cukup Ubah base_url, API Key, dan Nama Model
Checklist migrasi antarmuka kompatibel Gemini untuk proyek OpenAI SDK, mencakup kode, pemetaan parameter, dan harga.
14 Juni 2026 · 9 menit baca

Menggunakan OpenAI SDK untuk Memanggil Gemini API: Tutorial Integrasi dengan Hanya Mengubah base_url, key, dan Nama Model
Integrasikan kode OpenAI SDK yang sudah ada ke Gemini dengan perubahan minimal pada tiga konfigurasi saja.
14 Juni 2026 · 9 menit baca