Topik ini menjelaskan cara memanggil Qwen menggunakan API Responses yang kompatibel dengan OpenAI, termasuk parameter input dan output serta contoh kode.
Keunggulan dibandingkan API OpenAI Chat Completions:
Alat bawaan: Termasuk web search, web extractor, dan code interpreter. Gunakan alat-alat ini secara bersamaan (
tools=[{"type": "web_search"}, {"type": "web_extractor"}, {"type": "code_interpreter"}]) untuk performa terbaik dalam menangani tugas kompleks. Lihat Panggil alat bawaan.Input lebih fleksibel: Mendukung pengiriman string langsung sebagai input model dan kompatibel dengan array pesan dalam format Chat.
Manajemen konteks yang disederhanakan: Kirim
previous_response_iddari respons sebelumnya, bukan membangun manual seluruh riwayat pesan.
Catatan kompatibilitas dan keterbatasan
API ini dirancang agar kompatibel dengan OpenAI guna mengurangi biaya migrasi. Namun, terdapat perbedaan pada parameter, fitur, dan perilaku spesifik.
Prinsip utama: Permintaan hanya memproses parameter yang secara eksplisit tercantum dalam dokumen ini. Parameter OpenAI apa pun yang tidak disebutkan akan diabaikan.
Perbedaan utama:
Input multimodal tidak didukung: Parameter
inputhanya mendukung teks, bukan gambar atau jenis file lainnya.Parameter tidak didukung: Beberapa parameter API Responses OpenAI tidak didukung, seperti
instructionsdanbackground. Saat ini, hanya panggilan sinkron yang didukung.Parameter tambahan: API ini juga mendukung parameter tambahan, seperti
enable_thinking. Untuk penggunaan spesifik, lihat deskripsi parameter terkait.
Saat ini hanya didukung di wilayah Singapore.
Singapore
base_url untuk SDK: https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1
Titik akhir HTTP: POST https://dashscope-intl.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1/responses
Badan permintaan | Pemanggilan dasarPythonNode.jscurlKeluaran streamingPythonNode.jscurlPercakapan multi-putaranPythonNode.jsPanggil alat bawaanPythonNode.jscurl |
model Nama model. Saat ini mendukung | |
input Input model. Format berikut didukung:
| |
previous_response_id ID unik dari respons sebelumnya. Respons saat ini | |
stream Menentukan apakah akan mengaktifkan keluaran streaming. Jika parameter ini diatur ke | |
tools Array alat yang dapat dipanggil model saat menghasilkan respons. Mendukung kombinasi alat bawaan dan alat fungsi yang ditentukan pengguna. Untuk respons terbaik, kami merekomendasikan mengaktifkan alat | |
tool_choice Mengontrol cara model memilih dan memanggil alat. Parameter ini mendukung dua format: string dan objek. Format string
Pola Objek Menetapkan rentang alat yang tersedia bagi model. Model hanya dapat memilih dan memanggil alat dari daftar alat yang telah ditentukan. | |
temperature Suhu pengambilan sampel. Parameter ini mengontrol keragaman teks yang dihasilkan. Suhu yang lebih tinggi menghasilkan teks yang lebih beragam. Suhu yang lebih rendah menghasilkan teks yang lebih deterministik. Rentang nilai: [0, 2) Baik temperature maupun top_p mengontrol keragaman teks yang dihasilkan. Kami merekomendasikan Anda hanya mengatur salah satunya. Untuk informasi lebih lanjut, lihat Ikhtisar model generasi teks. | |
top_p Ambang batas probabilitas untuk pengambilan sampel inti. Parameter ini mengontrol keragaman teks yang dihasilkan. Nilai top_p yang lebih tinggi menghasilkan teks yang lebih beragam. Nilai top_p yang lebih rendah menghasilkan teks yang lebih deterministik. Rentang nilai: (0, 1.0] Baik temperature maupun top_p mengontrol keragaman teks yang dihasilkan. Kami merekomendasikan Anda hanya mengatur salah satunya. Untuk informasi lebih lanjut, lihat Ikhtisar model generasi teks. | |
enable_thinking Menentukan apakah akan mengaktifkan mode berpikir. Jika parameter ini diaktifkan, model akan berpikir sebelum membalas. Proses berpikir dikembalikan melalui item keluaran bertipe Jika mode berpikir diaktifkan, kami merekomendasikan Anda mengaktifkan alat bawaan untuk mencapai performa model terbaik pada tugas kompleks. Nilai yang valid:
Parameter ini bukan parameter standar OpenAI. SDK Python mengirimkannya menggunakan |
Objek respons (keluaran non-streaming) | |
id Pengidentifikasi unik untuk respons ini. Ini adalah string UUID dan berlaku selama 7 hari. Anda dapat menggunakan pengidentifikasi ini dalam parameter | |
created_at Timestamp Unix dalam detik untuk permintaan ini. | |
object Jenis objek. Nilainya adalah | |
status Status pembuatan respons. Nilai yang valid:
| |
model ID model yang digunakan untuk menghasilkan respons. | |
output Array item keluaran yang dihasilkan model. Jenis dan urutan elemen dalam array bergantung pada respons model. | |
usage Informasi konsumsi token untuk permintaan ini. | |
error Objek error yang dikembalikan ketika model gagal menghasilkan respons. Bidang ini bernilai | |
tools Konten lengkap parameter | |
tool_choice Nilai parameter |
Objek chunk respons (keluaran streaming) | Pemanggilan dasarPanggil alat bawaan |
Keluaran streaming mengembalikan serangkaian objek JSON. Setiap objek mencakup bidang | |
type Pengidentifikasi jenis event. Nilai yang valid:
| |
sequence_number Nomor seri event. Dimulai dari 0 dan bertambah. Anda dapat menggunakannya untuk memastikan klien memproses event dalam urutan yang benar. | |
response Objek respons. Muncul dalam event | |
item Objek item keluaran. Muncul dalam event | |
part Objek blok konten. Muncul dalam event | |
delta Konten teks inkremental. Muncul dalam event | |
text Konten teks lengkap. Muncul dalam event | |
item_id Pengidentifikasi unik untuk item keluaran. Digunakan untuk mengaitkan event terkait untuk item keluaran yang sama. | |
output_index Posisi indeks item keluaran dalam array | |
content_index Posisi indeks blok konten dalam array | |
summary_index Indeks array ringkasan. Muncul dalam event |
FAQ
T: Bagaimana cara meneruskan konteks untuk percakapan multi-putaran?
J: Untuk memulai putaran baru dalam percakapan, cukup kirimkan id dari respons sebelumnya sebagai previous_response_id.
T: Mengapa beberapa bidang dalam contoh tanggapan tidak dijelaskan dalam dokumen ini?
J: Jika Anda menggunakan SDK OpenAI resmi, SDK tersebut mungkin mengeluarkan bidang tambahan, biasanya null, berdasarkan struktur modelnya sendiri. Bidang-bidang ini didefinisikan oleh protokol OpenAI tetapi saat ini tidak didukung oleh layanan kami. Anda hanya perlu fokus pada bidang yang dijelaskan dalam dokumen ini.