All Products
Search
Document Center

Alibaba Cloud Model Studio:OpenAI-compatible - Respons

Last Updated:Sep 02, 2026

Alibaba Cloud Model Studio mendukung API Responses yang kompatibel dengan OpenAI. Berdasarkan API Chat Completions, API Responses menyederhanakan fungsionalitas agen native.

Keunggulan dibandingkan API OpenAI Chat Completions:
  • Alat bawaan: Tingkatkan hasil untuk tugas kompleks dengan pencarian web, scraping web, interpreter kode, teks-ke-gambar, dan gambar-ke-gambar. Untuk detailnya, lihat Panggil alat bawaan.
  • Input lebih fleksibel: API mendukung input berupa string langsung maupun array pesan dalam format chat standar.
  • Pengelolaan konteks yang disederhanakan: Mengirimkan previous_response_id menghilangkan kebutuhan untuk membangun array riwayat pesan secara manual.

Lihat OpenAI Responses API reference untuk rincian parameter.

Prasyarat

Pertama, dapatkan Kunci API dan tetapkan sebagai variabel lingkungan. Jika Anda menggunakan SDK OpenAI, instal SDK tersebut.

PentingJalur lama /api/v2/apps/protocols/compatible-mode/v1/responses untuk API Responses yang kompatibel dengan OpenAI akan segera ditinggalkan. Harap migrasi ke jalur baru /compatible-mode/v1/responses sesegera mungkin.

PentingAlibaba Cloud Model Studio telah merilis domain khusus ruang kerja untuk wilayah China (Beijing), Singapura, dan China (Hong Kong). Domain khusus baru ini memberikan performa unggul dan stabilitas lebih tinggi untuk permintaan inferensi. Kami merekomendasikan migrasi ke domain berikut:

  • China (Beijing): dari https://dashscope.aliyuncs.com ke https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com
  • Singapura: dari https://dashscope-intl.aliyuncs.com ke https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com
  • China (Hong Kong): dari https://cn-hongkong.dashscope.aliyuncs.com ke https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com

{WorkspaceId} adalah ID ruang kerja Anda, yang dapat ditemukan di halaman Detail Ruang Kerja pada Konsol Alibaba Cloud Model Studio. Domain yang ada tetap berfungsi penuh.

Model yang didukung

qwen3.8-max, qwen3.8-flash, qwen3.7-max, qwen3.7-max-2026-05-20, qwen3.7-max-2026-06-08, qwen3.7-max-2026-05-17, qwen3.7-max-preview, qwen3-max, qwen3-max-2026-01-23, qwen3.7-plus, qwen3.7-plus-2026-05-26, qwen3.6-plus, qwen3.6-plus-2026-04-02, qwen3.5-plus, qwen3.5-plus-2026-04-20, qwen3.5-plus-2026-02-15, qwen3.7-flash, qwen3.7-flash-2026-07-15, qwen3.6-flash, qwen3.6-flash-2026-04-16, qwen3.5-flash, qwen3.5-flash-2026-02-23, qwen3.8-2.4t-a95b, qwen3.8-27b, qwen3.6-35b-a3b, qwen3.5-397b-a17b, qwen3.5-122b-a10b, qwen3.5-27b, qwen3.5-35b-a3b, deepseek-v4-pro, deepseek-v4-pro-0813, deepseek-v4-flash, deepseek-v4-flash-0731, glm-5.2, kimi-k3

PentingModel generasi teks yang tidak tercantum dalam daftar di atas tetapi tersedia melalui Alibaba Cloud Model Studio hanya mendukung kemampuan kompatibilitas dasar. Kemampuan Agent (alat bawaan, dll.) terbatas.

Titik akhir

Singapore

Konfigurasi pemanggilan SDK base_url: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1

URL permintaan HTTP: POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses

Ganti WorkspaceId dengan ID Ruang Kerja aktual Anda.

China (Beijing)

base_url untuk konfigurasi SDK: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1

URL permintaan HTTP: POST https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/responses

Ganti WorkspaceId dengan ID Ruang Kerja aktual Anda.

AS (Virginia)

Konfigurasi pemanggilan SDK base_url: https://dashscope-us.aliyuncs.com/compatible-mode/v1

URL permintaan HTTP: POST https://dashscope-us.aliyuncs.com/compatible-mode/v1/responses

China (Hong Kong)

Konfigurasi pemanggilan SDK base_url: https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com/compatible-mode/v1

URL permintaan HTTP: POST https://{WorkspaceId}.cn-hongkong.maas.aliyuncs.com/compatible-mode/v1/responses

Ganti WorkspaceId dengan ID Ruang Kerja aktual Anda.

Jerman (Frankfurt)

base_url untuk SDK: https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/compatible-mode/v1

URL permintaan HTTP: POST https://{WorkspaceId}.eu-central-1.maas.aliyuncs.com/compatible-mode/v1/responses

Ganti WorkspaceId dengan ID Ruang Kerja aktual Anda.

Jepang (Tokyo)

Konfigurasi pemanggilan SDK base_url: https://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/compatible-mode/v1

URL permintaan HTTP: POST https://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/compatible-mode/v1/responses

Ganti WorkspaceId dengan ID Ruang Kerja aktual Anda.

Contoh kode

Pemanggilan dasar

Kirim pesan dan dapatkan respons.

import os
from openai import OpenAI

client = OpenAI(
    # Jika variabel lingkungan tidak diatur, ganti dengan Kunci API Anda: api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

response = client.responses.create(
    model="qwen3.7-plus",
    input="What can you do?"
)

# Dapatkan respons model
# print(response.model_dump_json())
print(response.output_text)
import OpenAI from "openai";

const openai = new OpenAI({
    // Jika variabel lingkungan tidak diatur, ganti dengan Kunci API Anda: apiKey: "sk-xxx"
    apiKey: process.env.DASHSCOPE_API_KEY,
    baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});

async function main() {
    const response = await openai.responses.create({
        model: "qwen3.7-plus",
        input: "What can you do?"
    });

    // Dapatkan respons model
    console.log(response.output_text);
}

main();
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3.7-plus",
    "input": "What can you do?"
}'
Contoh respons

Ini adalah respons API lengkap.

{
    "created_at": 1771226624,
    "id": "bf0d5c2e-f14b-9ad7-bc0d-ee0c8c9ee2d8",
    "model": "qwen3-max-2026-01-23",
    "object": "response",
    "output": [
        {
            "content": [
                {
                    "annotations": [],
                    "text": "Hi there!  I'm actually quite ......",
                    "type": "output_text"
                }
            ],
            "id": "msg_1e17fdb2-5fc3-4c78-a9e9-cbd78eb043f0",
            "role": "assistant",
            "status": "completed",
            "type": "message"
        }
    ],
    "parallel_tool_calls": false,
    "status": "completed",
    "tool_choice": "auto",
    "tools": [],
    "usage": {
        "input_tokens": 37,
        "input_tokens_details": {
            "cached_tokens": 0
        },
        "output_tokens": 220,
        "output_tokens_details": {
            "reasoning_tokens": 0
        },
        "total_tokens": 257,
        "x_details": [
            {
                "input_tokens": 37,
                "output_tokens": 220,
                "total_tokens": 257,
                "x_billing_type": "response_api"
            }
        ]
    }
}

Percakapan multi-putaran

Parameter previous_response_id secara otomatis mempertahankan konteks percakapan, sehingga Anda tidak perlu membangun riwayat pesan secara manual. Setiap id respons berlaku selama 7 hari.

previous_response_id harus merupakan id tingkat atas dari respons sebelumnya (misalnya, resp_xxx, dalam format UUID), bukan id pesan dari dalam array output (misalnya, msg_56c860c4-3ad8-4a96-8553-d2f94c259xxx).

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

# Putaran pertama
response1 = client.responses.create(
    model="qwen3.7-plus",
    input="My name is John, please remember it."
)
print(f"First response: {response1.output_text}")

# Putaran kedua - gunakan previous_response_id untuk menghubungkan konteks
# ID respons kedaluwarsa dalam 7 hari
response2 = client.responses.create(
    model="qwen3.7-plus",
    input="Do you remember my name?",
    previous_response_id=response1.id
)
print(f"Second response: {response2.output_text}")
import OpenAI from "openai";

const openai = new OpenAI({
    apiKey: process.env.DASHSCOPE_API_KEY,
    baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});

async function main() {
    // Putaran pertama
    const response1 = await openai.responses.create({
        model: "qwen3.7-plus",
        input: "My name is John, please remember it."
    });
    console.log(`First response: ${response1.output_text}`);

    // Putaran kedua - gunakan previous_response_id untuk menghubungkan konteks
    // ID respons kedaluwarsa dalam 7 hari
    const response2 = await openai.responses.create({
        model: "qwen3.7-plus",
        input: "Do you remember my name?",
        previous_response_id: response1.id
    });
    console.log(`Second response: ${response2.output_text}`);
}

main();
# Putaran pertama
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3.7-plus",
    "input": "My name is John, please remember it."
}'

# Putaran kedua - gunakan id dari respons pertama sebagai previous_response_id
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3.7-plus",
    "input": "Do you remember my name?",
    "previous_response_id": "response_id_from_first_round"
}'
Contoh respons putaran kedua
{
  "id": "f0dbb153-117f-9bbf-8176-5284b47f3xxx",
  "created_at": 1769173209.0,
  "model": "qwen3.7-plus",
  "object": "response",
  "status": "completed",
  "output": [
    {
      "id": "msg_56c860c4-3ad8-4a96-8553-d2f94c259xxx",
      "type": "message",
      "role": "assistant",
      "status": "completed",
      "content": [
        {
          "type": "output_text",
          "text": "Yes, John! I remember your name. How can I assist you today?",
          "annotations": []
        }
      ]
    }
  ],
  "usage": {
    "input_tokens": 78,
    "output_tokens": 16,
    "total_tokens": 94,
    "input_tokens_details": {
      "cached_tokens": 0
    },
    "output_tokens_details": {
      "reasoning_tokens": 0
    }
  }
}

Catatan: Pada putaran kedua, jumlah input_tokens adalah 78. Angka ini mencakup konteks dari putaran pertama, menunjukkan bahwa model berhasil mengingat nama "John".

Pemikiran mendalam

Gunakan parameter reasoning untuk mengontrol kekuatan penalaran model. Saat Anda mengatur reasoning.effort, model akan berpikir sebelum menjawab, dan mengembalikan proses berpikir dalam item output reasoning. Parameter effort mendukung nilai-nilai berikut:

  • none: Menonaktifkan pemikiran dan memberikan jawaban langsung.
  • minimal: Meminimalkan pemikiran untuk respons tercepat.
  • low: Melakukan pemikiran ringan, memprioritaskan respons cepat.
  • medium (default): Melakukan pemikiran moderat, menyeimbangkan kecepatan dan kedalaman.
  • high: Melakukan pemikiran mendalam, fokus pada masalah kompleks dan spesialis.

Anda tidak dapat menggunakan parameter thinking_budget untuk mengontrol panjang maksimum pemikiran. reasoning.effort memiliki prioritas lebih tinggi daripada enable_thinking. Gunakan reasoning.effort, karena enable_thinking akan ditinggalkan.

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

response = client.responses.create(
    model="qwen3.7-plus",
    input="Which is larger, 9.9 or 9.11?",
    reasoning={"effort": "medium"}
)

# Proses output
for item in response.output:
    if item.type == "reasoning":
        print("=== Thinking Process ===")
        for summary in item.summary:
            print(summary.text)
    elif item.type == "message":
        print("\n=== Final Answer ===")
        print(item.content[0].text)

# Periksa jumlah token pemikiran
print(f"\nThinking token count: {response.usage.output_tokens_details.reasoning_tokens}")
import OpenAI from "openai";

const openai = new OpenAI({
    apiKey: process.env.DASHSCOPE_API_KEY,
    baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});

async function main() {
    const response = await openai.responses.create({
        model: "qwen3.7-plus",
        input: "Which is larger, 9.9 or 9.11?",
        reasoning: { effort: "medium" }
    });

    for (const item of response.output) {
        if (item.type === "reasoning") {
            console.log("=== Thinking Process ===");
            for (const summary of item.summary) {
                console.log(summary.text);
            }
        } else if (item.type === "message") {
            console.log("\n=== Final Answer ===");
            console.log(item.content[0].text);
        }
    }

    // Periksa jumlah token pemikiran
    console.log(`\nThinking token count: ${response.usage.output_tokens_details.reasoning_tokens}`);
}

main();
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3.7-plus",
    "input": "Which is larger, 9.9 or 9.11?",
    "reasoning": {"effort": "medium"}
}'
Contoh respons
{
    "created_at": 1774498317,
    "id": "resp_xxx",
    "model": "qwen3.7-plus",
    "object": "response",
    "output": [
        {
            "id": "msg_xxx",
            "summary": [
                {
                    "text": "Proses Berpikir:\n\n1.  Analisis Permintaan:\n    *   Pertanyaan: \"Mana yang lebih besar, 9,9 atau 9,11?\"\n    *   Konteks: Pengguna menanyakan pertanyaan perbandingan matematis yang sederhana.\n    *   Tanggal Saat Ini: Kamis, 26 Maret 2026 (disediakan di prompt sistem).\n    *   Batas Pengetahuan: 2026 (disediakan di prompt sistem).\n\n2.  Evaluasi Angka:\n    *   Angka A: 9,9\n    *   Angka B: 9,11\n    *   Ini adalah bilangan desimal.\n    *   Bandingkan bagian bilangan bulat: Keduanya adalah 9.\n    *   Bandingkan posisi persepuluhan (digit desimal pertama):\n        *   9,9 memiliki 9 di posisi persepuluhan.\n        *   9,11 memiliki 1 di posisi persepuluhan.\n    *   Karena 9 > 1, 9,9 lebih besar dari 9,11.\n\n3.  Pertimbangkan Potensi Ambiguitas:\n    *   Mungkinkah ini penomoran versi? (misalnya, versi perangkat lunak). Dalam Pengendalian versi, 9.11 seringkali \"lebih baru\" atau \"lebih tinggi\" dari 9.9. Namun, secara matematis, 9,9 > 9,11.\n    *   Mungkinkah ini tanggal? (9 September vs 11 September). Tanggal 11 lebih akhir.\n    *   Interpretasi standar: Tanpa konteks, bilangan desimal diasumsikan sebagai nilai matematis.\n    *   Kesalahan umum: Beberapa orang keliru memperlakukan desimal seperti bilangan bulat (di mana 11 > 9), yang membuat mereka berpikir 9,11 > 9,9. Ini adalah bias kognitif atau miskonsepsi yang diketahui dalam matematika dasar.\n    *   Keputusan: Berikan jawaban matematis dengan jelas, tetapi mungkin akui konteks pengendalian versi jika relevan (meskipun biasanya, untuk pertanyaan spesifik ini, ini adalah tes matematika). Mengingat kesederhanaannya, tetap berpegang pada kebenaran matematis terlebih dahulu.\n\n4.  Formulasikan Jawaban:\n    *   Jawaban langsung: 9,9 lebih besar.\n    *   Penjelasan: Bandingkan nilai tempat. 9,9 = 9,90, 9,11 = 9,11. 90 perseratus > 11 perseratus.\n    *   Nada: Membantu, jelas.\n\n5.  Menyusun Tanggapan (Monolog Internal/Draf):\n    *   Oke, secara matematis 9,9 lebih besar. 9,9 adalah 9 dan 9 persepuluh. 9,11 adalah 9 dan 11 perseratus (atau 1 persepuluh dan 1 perseratus). 9 persepuluh lebih banyak dari 1 persepuluh.\n    *   Jadi, 9,9 > 9,11.\n    *   Saya harus menjawab dalam bahasa Inggris karena pertanyaannya dalam bahasa Inggris.\n    *   \"9.9 is larger.\"\n    *   Tambahkan penjelasan singkat untuk menghindari kebingungan. \"Because 9.9 equals 9.90, and 9.90 is greater than 9.11.\"\n\n6.  Menyempurnakan berdasarkan kemungkinan \"Nomor Versi\":\n    *   Terkadang ini adalah pertanyaan jebakan tentang versi perangkat lunak. Di semver, 9.11 > 9.9.\n    *   Namun, biasanya, ketika ditanya secara gamblang \"mana yang lebih besar\", itu mengacu pada nilai numerik.\n    *   Saya akan memberikan jawaban numerik sebagai yang utama, mungkin menambahkan catatan tentang versi jika dirasa perlu. Tetapi membuatnya tetap sederhana lebih baik. Kemungkinan besar, ini menguji logika perbandingan desimal.\n    *   Mari kita tetap pada nilai matematis sebagai default.\n\n7.  Polesan Akhir:\n    *   Jawaban: 9,9 lebih besar.\n    *   Penalaran: Saat membandingkan desimal, lihat dulu bagian bilangan bulat, lalu posisi persepuluhan. Digit persepuluhan dari 9,9 adalah 9, dan digit persepuluhan dari 9,11 adalah 1. Karena 9 > 1, 9,9 > 9,11.\n\n8.  Pembuatan Output: (Sesuai dengan proses berpikir)\n    *   Nyatakan dengan jelas mana yang lebih besar.\n    *   Jelaskan mengapa.\n\n    *Koreksi Mandiri pada Tanggal/Waktu:* Prompt sistem menyebutkan tanggal saat ini adalah 2026. Ini tidak memengaruhi pertanyaan matematika, tetapi saya harus memastikan saya tidak merujuk apa pun setelah 2026 jika saya menambahkan konteks (tidak diperlukan di sini).\n\n    *Keputusan Akhir:* Jawab saja pertanyaan matematika secara langsung.\n\n    \"Secara numerik, 9,9 lebih besar.\"\n    Jelaskan: 9,9 = 9,90, 9,11 = 9,11. 90 > 11.\n\n    Tunggu, apakah ada interpretasi lain?\n    - Tanggal? 9/9 vs 9/11. Tanggal 11 lebih akhir.\n    - Versi? 9.11 lebih baru.\n    - Tapi \"siapa yang besar/lebih besar\" biasanya menyiratkan besaran.\n    - Saya akan menjawab berdasarkan besaran numerik tetapi secara singkat menyebutkan konteks versi jika itu menambah nilai tanpa membingungkan. Sebenarnya, lebih baik bersikap tegas. Nilai numerik adalah interpretasi standar untuk \"siapa yang lebih besar\" dengan angka.\n\n    Mari kita gunakan jawaban numerik.\n\n    Rencana:\n    1. Nyatakan 9,9 lebih besar secara numerik.\n    2. Jelaskan perbandingan desimal.\n    3. (Opsional tetapi membantu) Sebutkan bahwa jika itu nomor versi, 9.11 mungkin dianggap \"lebih tinggi\". Tapi prioritaskan matematika.\n    Sebenarnya, untuk kueri sederhana seperti ini, menjelaskan versi secara berlebihan mungkin membingungkan. Saya akan tetap pada matematika tetapi mengakui kebingungan umum.\n\n    *Rencana yang Direvisi:*\n    1. Jawaban langsung: 9,9 lebih besar (secara matematis).\n    2. Penjelasan: Nilai tempat.\n    3. Catatan: Kecuali jika ini adalah nomor versi.\n\n    Mari kita buat ringkas.\n\n    \"Dalam hal nilai matematis, 9,9 lebih besar.\"\n    \"Karena 9,9 sama dengan 9,90, yang lebih besar dari 9,11.\"\n    \"Jika ini adalah nomor versi, versi 9.11 biasanya lebih tinggi dari versi 9.9.\"\n    Ini mencakup kedua kemungkinan.\n\n    Tunggu, melihat Pelatihan AI umum, ini sering kali merupakan pertanyaan \"jebakan\" untuk melihat apakah AI memperlakukan desimal seperti bilangan bulat. Jawaban matematis yang benar sangat penting.\n\n    Oke, struktur output akhir:\n    1. Jawaban matematis.\n    2. Penjelasan singkat.\n    3. Catatan kontekstual (versi).\n\n    Mari kita tulis.\n    \"Dalam hal nilai matematis, 9,9 lebih besar.\"\n    \"Saat membandingkan desimal, pertama bandingkan bagian bilangan bulat (keduanya 9), lalu posisi persepuluhan: Digit persepuluhan dari 9,9 adalah 9, sedangkan digit persepuluhan dari 9,11 adalah 1. Karena 9 > 1, 9,9 > 9,11.\"\n    \"Namun, jika ini adalah nomor versi perangkat lunak, versi 9.11 biasanya lebih baru dari versi 9.9.\"\n\n    Ini seimbang.\n\n    Tunggu, saya perlu memeriksa instruksi lagi. \"Harap ingat waktu aktual saat ini...\". Ini hanya konteks sistem. Saya tidak perlu menyebutkan tanggal dalam jawaban kecuali relevan. Ini tidak relevan di sini.\n\n    Oke, siap untuk membuat.\n\n    Tunggu, satu pemeriksaan lagi. Apakah ada konteks budaya? Dalam beberapa konteks, orang mungkin mengatakan 9,11 lebih besar karena 11 > 9. Ini adalah miskonsepsi yang perlu saya perbaiki.\n    Jadi, menekankan aturan matematika adalah kuncinya.\n\n    Pemeriksaan akhir:\n    9,9 = 9 + 9/10 = 9,90\n    9,11 = 9 + 1/10 + 1/100 = 9,11\n    9,90 > 9,11. Benar.\n\n    Tanggapan akan dalam bahasa Inggris.\n    \"In terms of numerical value, 9.9 is larger.\"\n    Jelaskan mengapa.\n    Sebutkan pengecualian versi.\n    Selesai.\n",
                    "type": "summary_text"
                }
            ],
            "type": "reasoning"
        },
        {
            "content": [
                {
                    "annotations": [],
                    "text": "Dalam hal nilai matematis, 9,9 lebih besar.\n\nInilah alasannya:\nSaat membandingkan desimal, Anda pertama-tama melihat bagian bilangan bulat, yaitu 9 untuk keduanya. Kemudian Anda melihat posisi persepuluhan (digit pertama setelah titik desimal):\n*   Digit persepuluhan dari 9,9 adalah 9\n*   Digit persepuluhan dari 9,11 adalah 1\n\nKarena 9 lebih besar dari 1, 9,9 > 9,11 (Anda dapat menganggap 9,9 sebagai 9,90 untuk perbandingan).\n\nCatatan: Jika ini adalah nomor versi perangkat lunak, versi 9.11 biasanya akan dianggap lebih baru (atau lebih tinggi) dari versi 9.9. Namun, dalam perbandingan numerik langsung, 9,9 lebih besar.",
                    "type": "output_text"
                }
            ],
            "id": "msg_xxx",
            "role": "assistant",
            "status": "completed",
            "type": "message"
        }
    ],
    "parallel_tool_calls": false,
    "status": "completed",
    "tool_choice": "auto",
    "tools": [],
    "usage": {
        "input_tokens": 57,
        "input_tokens_details": {
            "cached_tokens": 0
        },
        "output_tokens": 2018,
        "output_tokens_details": {
            "reasoning_tokens": 1861
        },
        "total_tokens": 2075,
        "x_details": [
            {
                "input_tokens": 57,
                "output_tokens": 2018,
                "output_tokens_details": {
                    "reasoning_tokens": 1861
                },
                "total_tokens": 2075,
                "x_billing_type": "response_api"
            }
        ]
    }
}

Output aliran

Terima konten dari model secara real-time, terutama berguna untuk generasi teks panjang.

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

stream = client.responses.create(
    model="qwen3.7-plus",
    input="Please briefly introduce artificial intelligence.",
    stream=True
)

print("Receiving stream output:")
for event in stream:
    # print(event.model_dump_json())  # Hapus komentar untuk melihat respons event mentah
    if event.type == 'response.output_text.delta':
        print(event.delta, end='', flush=True)
    elif event.type == 'response.completed':
        print("\nStream completed")
        print(f"Total tokens: {event.response.usage.total_tokens}")
import OpenAI from "openai";

const openai = new OpenAI({
    apiKey: process.env.DASHSCOPE_API_KEY,
    baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});

async function main() {
    const stream = await openai.responses.create({
        model: "qwen3.7-plus",
        input: "Please briefly introduce artificial intelligence.",
        stream: true
    });

    console.log("Receiving stream output:");
    for await (const event of stream) {
        // console.log(JSON.stringify(event));  // Hapus komentar untuk melihat respons event mentah
        if (event.type === 'response.output_text.delta') {
            process.stdout.write(event.delta);
        } else if (event.type === 'response.completed') {
            console.log("\nStream completed");
            console.log(`Total tokens: ${event.response.usage.total_tokens}`);
        }
    }
}

main();
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3.7-plus",
    "input": "Please briefly introduce artificial intelligence.",
    "stream": true
}'
Contoh respons
{"response":{"id":"47a71e7d-868c-4204-9693-ef8ff9058xxx","created_at":1769417481.0,"error":null,"incomplete_details":null,"instructions":null,"metadata":null,"model":"","object":"response","output":[],"parallel_tool_calls":false,"temperature":null,"tool_choice":"auto","tools":[],"top_p":null,"background":null,"completed_at":null,"conversation":null,"max_output_tokens":null,"max_tool_calls":null,"previous_response_id":null,"prompt":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":null,"safety_identifier":null,"service_tier":null,"status":"queued","text":null,"top_logprobs":null,"truncation":null,"usage":null,"user":null},"sequence_number":0,"type":"response.created"}
{"response":{"id":"47a71e7d-868c-4204-9693-ef8ff9058xxx","created_at":1769417481.0,"error":null,"incomplete_details":null,"instructions":null,"metadata":null,"model":"","object":"response","output":[],"parallel_tool_calls":false,"temperature":null,"tool_choice":"auto","tools":[],"top_p":null,"background":null,"completed_at":null,"conversation":null,"max_output_tokens":null,"max_tool_calls":null,"previous_response_id":null,"prompt":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":null,"safety_identifier":null,"service_tier":null,"status":"in_progress","text":null,"top_logprobs":null,"truncation":null,"usage":null,"user":null},"sequence_number":1,"type":"response.in_progress"}
{"item":{"id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","content":[],"role":"assistant","status":"in_progress","type":"message"},"output_index":0,"sequence_number":2,"type":"response.output_item.added"}
{"content_index":0,"item_id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","output_index":0,"part":{"annotations":[],"text":"","type":"output_text","logprobs":null},"sequence_number":3,"type":"response.content_part.added"}
{"content_index":0,"delta":"Artificial","item_id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","logprobs":[],"output_index":0,"sequence_number":4,"type":"response.output_text.delta"}
{"content_index":0,"delta":" intelligence","item_id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","logprobs":[],"output_index":0,"sequence_number":5,"type":"response.output_text.delta"}
{"content_index":0,"delta":" (","item_id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","logprobs":[],"output_index":0,"sequence_number":6,"type":"response.output_text.delta"}
{"content_index":0,"delta":"AI","item_id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","logprobs":[],"output_index":0,"sequence_number":7,"type":"response.output_text.delta"}
... (intermediate events omitted) ...
{"content_index":0,"delta":"fields, and is profoundly changing our","item_id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","logprobs":[],"output_index":0,"sequence_number":38,"type":"response.output_text.delta"}
{"content_index":0,"delta":" lives and ways of working","item_id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","logprobs":[],"output_index":0,"sequence_number":39,"type":"response.output_text.delta"}
{"content_index":0,"delta":".","item_id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","logprobs":[],"output_index":0,"sequence_number":40,"type":"response.output_text.delta"}
{"content_index":0,"item_id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","logprobs":[],"output_index":0,"sequence_number":41,"text":"Artificial intelligence (AI) is the technology and science of simulating human intelligent behavior by using computer systems. xxxx","type":"response.output_text.done"}
{"content_index":0,"item_id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","output_index":0,"part":{"annotations":[],"text":"Artificial intelligence (AI) is the technology and science of simulating human intelligent behavior by using computer systems. xxx","type":"output_text","logprobs":null},"sequence_number":42,"type":"response.content_part.done"}
{"item":{"id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","content":[{"annotations":[],"text":"Artificial intelligence (AI) is the technology and science of simulating human intelligent behavior by using computer systems. It aims to enable machines to perform tasks that typically require human intelligence, such as:\n\n- Learning (for example, training models with data)  \n- Reasoning (for example, logical judgment and problem-solving)  \n- Perception (for example, recognizing images, speech, or text)  \n- Understanding language (for example, natural language processing)  \n- Decision-making (for example, making optimal choices in complex environments)\n\nAI can be divided into weak AI (focused on specific tasks, such as voice assistants and recommendation systems) and strong AI (possessing general, human-like intelligence, which has not yet been achieved).\n\nCurrently, AI is widely used in various fields, including healthcare, finance, transportation, education, and entertainment, and is profoundly changing the way we live and work.","type":"output_text","logprobs":null}],"role":"assistant","status":"completed","type":"message"},"output_index":0,"sequence_number":43,"type":"response.output_item.done"}
{"response":{"id":"47a71e7d-868c-4204-9693-ef8ff9058xxx","created_at":1769417481.0,"error":null,"incomplete_details":null,"instructions":null,"metadata":null,"model":"qwen3.7-plus","object":"response","output":[{"id":"msg_16db29d6-c1d3-47d7-9177-0fba81964xxx","content":[{"annotations":[],"text":"Artificial intelligence (AI) is xxxxxx","type":"output_text","logprobs":null}],"role":"assistant","status":"completed","type":"message"}],"parallel_tool_calls":false,"temperature":null,"tool_choice":"auto","tools":[],"top_p":null,"background":null,"completed_at":null,"conversation":null,"max_output_tokens":null,"max_tool_calls":null,"previous_response_id":null,"prompt":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":null,"safety_identifier":null,"service_tier":null,"status":"completed","text":null,"top_logprobs":null,"truncation":null,"usage":{"input_tokens":37,"input_tokens_details":{"cached_tokens":0},"output_tokens":166,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":203},"user":null},"sequence_number":44,"type":"response.completed"}

Gunakan alat bawaan

Aktifkan alat bawaan untuk tugas kompleks. Ekstraktor web dan interpreter kode gratis untuk waktu terbatas. Lihat pemanggilan alat untuk daftar alat yang didukung.

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

response = client.responses.create(
    model="qwen3.7-plus",
    input="Find the Alibaba Cloud website and extract key information from the homepage",
    # Untuk hasil terbaik, aktifkan semua alat bawaan.
    tools=[
        {"type": "web_search"},
        {"type": "code_interpreter"},
        {"type": "web_extractor"}
    ],
    reasoning={"effort": "medium"}
)

# Hapus komentar baris berikut untuk melihat output antara.
# print(response.output)
print(response.output_text)
import OpenAI from "openai";

const openai = new OpenAI({
    apiKey: process.env.DASHSCOPE_API_KEY,
    baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1"
});

async function main() {
    const response = await openai.responses.create({
        model: "qwen3.7-plus",
        input: "Find the Alibaba Cloud website and extract key information from the homepage",
        tools: [
            { type: "web_search" },
            { type: "code_interpreter" },
            { type: "web_extractor" }
        ],
        reasoning: { effort: "medium" }
    });

    for (const item of response.output) {
        if (item.type === "reasoning") {
            console.log("Model is thinking...");
        } else if (item.type === "web_search_call") {
            console.log(`Search query: ${item.action.query}`);
        } else if (item.type === "web_extractor_call") {
            console.log("Extracting web content...");
        } else if (item.type === "message") {
            console.log(`Response: ${item.content[0].text}`);
        }
    }
}

main();
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3.7-plus",
    "input": "Find the Alibaba Cloud website and extract key information from the homepage",
    "tools": [
        {
            "type": "web_search"
        },
        {
            "type": "code_interpreter"
        },
        {
            "type": "web_extractor"
        }
    ],
    "reasoning": {"effort": "medium"}
}'
Contoh respons
{
    "id": "69258b21-5099-9d09-92e8-8492b1955xxx",
    "object": "response",
    "status": "completed",
    "output": [
        {
            "type": "reasoning",
            "summary": [
                {
                    "type": "summary_text",
                    "text": "The user wants to find the Alibaba Cloud website and extract information..."
                }
            ]
        },
        {
            "type": "web_search_call",
            "status": "completed",
            "action": {
                "query": "Alibaba Cloud official website",
                "type": "search",
                "sources": [
                    {
                        "type": "url",
                        "url": "https://cn.aliyun.com/"
                    },
                    {
                        "type": "url",
                        "url": "https://www.alibabacloud.com/zh"
                    }
                ]
            }
        },
        {
            "type": "reasoning",
            "summary": [
                {
                    "type": "summary_text",
                    "text": "The search results show the Alibaba Cloud website URL..."
                }
            ]
        },
        {
            "type": "web_extractor_call",
            "status": "completed",
            "goal": "Extract key information from the Alibaba Cloud homepage",
            "output": "Tongyi Large Language Model, full product portfolio, AI solutions...",
            "urls": [
                "https://cn.aliyun.com/"
            ]
        },
        {
            "type": "message",
            "role": "assistant",
            "status": "completed",
            "content": [
                {
                    "type": "output_text",
                    "text": "Key information from the Alibaba Cloud website: Tongyi Large Language Model, cloud computing services..."
                }
            ]
        }
    ],
    "usage": {
        "input_tokens": 40836,
        "output_tokens": 2106,
        "total_tokens": 42942,
        "output_tokens_details": {
            "reasoning_tokens": 677
        },
        "x_tools": {
            "web_extractor": {
                "count": 1
            },
            "web_search": {
                "count": 1
            }
        }
    }
}

Cache sesi

Dalam percakapan multi-putaran, aktifkan cache sesi agar server secara otomatis menyimpan konteks percakapan. Ini mengurangi latensi dan biaya tanpa perlu manajemen cache manual.

Penggunaan: Untuk mengaktifkan cache sesi, tambahkan x-dashscope-session-cache: enable ke header permintaan. Untuk menonaktifkannya, atur nilainya menjadi disable. Nilai default-nya adalah disable.

Model yang didukung: qwen3.8-max, qwen3.8-flash, qwen3.7-max, qwen3.7-max-2026-05-20, qwen3.7-max-2026-06-08, qwen3-max, qwen3.7-plus, qwen3.6-plus, qwen3.5-plus, qwen3.7-flash, qwen3.6-flash, qwen3.5-flash, qwen-plus, qwen-flash, qwen3-coder-plus, qwen3-coder-flash

Cache sesi memerlukan panjang prompt minimum 1.024 token dan kedaluwarsa setelah 5 menit. Cache ini memiliki batasan yang sama dengan cache eksplisit.

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
    # Aktifkan cache sesi melalui default_headers
    default_headers={"x-dashscope-session-cache": "enable"}
)

# Buat teks panjang yang melebihi 1024 token untuk memicu pembuatan cache.
# (Jika prompt awal kurang dari 1024 token, server membuat cache setelah konteks total melebihi ambang batas ini.)
long_context = "Artificial intelligence is an important branch of computer science that focuses on the research and development of theories, methods, technologies, and application systems that can simulate, extend, and expand human intelligence." * 50

# Permintaan pertama
response1 = client.responses.create(
    model="qwen3.7-plus",
    input=long_context + "\n\nBased on the background knowledge above, briefly introduce the random forest algorithm in machine learning.",
)
print(f"First response: {response1.output_text}")

# Permintaan kedua: Kaitkan konteks menggunakan previous_response_id. Server mengelola cache secara otomatis.
response2 = client.responses.create(
    model="qwen3.7-plus",
    input="What are the main differences between it and GBDT?",
    previous_response_id=response1.id,
)
print(f"Second response: {response2.output_text}")

# Periksa status cache hit
usage = response2.usage
print(f"Input tokens: {usage.input_tokens}")
print(f"Cached tokens: {usage.input_tokens_details.cached_tokens}")
import OpenAI from "openai";

const openai = new OpenAI({
    apiKey: process.env.DASHSCOPE_API_KEY,
    baseURL: "https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
    // Aktifkan cache sesi melalui defaultHeaders
    defaultHeaders: {"x-dashscope-session-cache": "enable"}
});

// Buat teks panjang yang melebihi 1024 token untuk memicu pembuatan cache.
// (Jika prompt awal kurang dari 1024 token, server membuat cache setelah konteks total melebihi ambang batas ini.)
const longContext = "Artificial intelligence is an important branch of computer science that focuses on the research and development of theories, methods, technologies, and application systems that can simulate, extend, and expand human intelligence.".repeat(50);

async function main() {
    // Permintaan pertama
    const response1 = await openai.responses.create({
        model: "qwen3.7-plus",
        input: longContext + "\n\nBased on the background knowledge above, briefly introduce the random forest algorithm in machine learning, including its basic principles and use cases."
    });
    console.log(`First response: ${response1.output_text}`);

    // Permintaan kedua: Kaitkan konteks menggunakan previous_response_id. Server mengelola cache secara otomatis.
    const response2 = await openai.responses.create({
        model: "qwen3.7-plus",
        input: "What are the main differences between it and GBDT?",
        previous_response_id: response1.id
    });
    console.log(`Second response: ${response2.output_text}`);

    // Periksa status cache hit
    console.log(`Input tokens: ${response2.usage.input_tokens}`);
    console.log(`Cached tokens: ${response2.usage.input_tokens_details.cached_tokens}`);
}

main();
# Permintaan pertama
# Teks 'input' harus melebihi 1024 token untuk memicu pembuatan cache.
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-H "x-dashscope-session-cache: enable" \
-d '{
    "model": "qwen3.7-plus",
    "input": "Kecerdasan buatan adalah cabang penting dari ilmu komputer yang berfokus pada penelitian dan pengembangan teori, metode, teknologi, dan sistem aplikasi yang dapat menyimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer yang berfokus pada penelitian dan pengembangan teori, metode, teknologi, dan sistem aplikasi yang dapat menyimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer yang berfokus pada penelitian dan pengembangan teori, metode, teknologi, dan sistem aplikasi yang dapat menyimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer yang berfokus pada penelitian dan pengembangan teori, metode, teknologi, dan sistem aplikasi yang dapat menyimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer yang berfokus pada penelitian dan pengembangan teori, metode, teknologi, dan sistem aplikasi yang dapat menyimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer yang berfokus pada penelitian dan pengembangan teori, metode, teknologi, dan sistem aplikasi yang dapat menyimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer yang berfokus pada penelitian dan pengembangan teori, metode, teknologi, dan sistem aplikasi yang dapat menyimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer yang berfokus pada penelitian dan pengembangan teori, metode, teknologi, dan sistem aplikasi yang dapat menyimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer yang berfokus pada penelitian dan pengembangan teori, metode, teknologi, dan sistem aplikasi yang dapat menyimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer yang berfokus pada penelitian dan pengembangan teori, metode, teknologi, dan sistem aplikasi yang dapat menyimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer yang berfokus pada penelitian dan pengembangan teori, metode, teknologi, dan sistem aplikasi yang dapat menyimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer yang berfokus pada penelitian dan pengembangan teori, metode, teknologi, dan sistem aplikasi yang dapat menyimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer yang berfokus pada penelitian dan pengembangan teori, metode, teknologi, dan sistem aplikasi yang dapat menyimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer yang berfokus pada penelitian dan pengembangan teori, metode, teknologi, dan sistem aplikasi yang dapat menyimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer yang berfokus pada penelitian dan pengembangan teori, metode, teknologi, dan sistem aplikasi yang dapat menyimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer yang berfokus pada penelitian dan pengembangan teori, metode, teknologi, dan sistem aplikasi yang dapat menyimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer yang berfokus pada penelitian dan pengembangan teori, metode, teknologi, dan sistem aplikasi yang dapat menyimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer yang berfokus pada penelitian dan pengembangan teori, metode, teknologi, dan sistem aplikasi yang dapat menyimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer yang berfokus pada penelitian dan pengembangan teori, metode, teknologi, dan sistem aplikasi yang dapat menyimulasikan, memperluas, dan mengembangkan kecerdasan manusia. Kecerdasan buatan adalah cabang penting dari ilmu komputer yang berfokus pada penelitian dan pengembangan teori, metode, teknologi, dan sistem aplikasi yang dapat menyimulasikan, memperluas, dan mengembangkan kecerdasan manusia.\n\nBerdasarkan pengetahuan latar belakang di atas, jelaskan secara singkat algoritma random forest dalam pembelajaran mesin, termasuk prinsip-prinsip dasar dan kasus penggunaannya."
}'

# Permintaan kedua - Atur 'previous_response_id' ke 'id' dari tanggapan pertama.
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-H "x-dashscope-session-cache: enable" \
-d '{
    "model": "qwen3.7-plus",
    "input": "Apa perbedaan utama antara ini dan GBDT?",
    "previous_response_id": "id_from_first_response"
}'

Migrasi dari Chat Completions API ke Responses API

Responses API menyederhanakan antarmuka Chat Completions API sekaligus mempertahankan kompatibilitas. Untuk melakukan migrasi, ikuti langkah-langkah berikut.

1. Perbarui alamat endpoint

Perbarui alamat endpoint dari /v1/chat/completions menjadi /v1/responses.

# Chat Completions API
completion = client.chat.completions.create(
    model="qwen3.7-plus",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello!"}
    ]
)
print(completion.choices[0].message.content)

# Responses API - dapat menggunakan format message yang sama
response = client.responses.create(
    model="qwen3.7-plus",
    input=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello!"}
    ]
)
print(response.output_text)

# Responses API - atau gunakan format yang lebih ringkas
response = client.responses.create(
    model="qwen3.7-plus",
    input="Hello!"
)
print(response.output_text)
// Chat Completions API
const completion = await client.chat.completions.create({
    model: "qwen3.7-plus",
    messages: [
        { role: "system", content: "You are a helpful assistant." },
        { role: "user", content: "Hello!" }
    ]
});
console.log(completion.choices[0].message.content);

// Responses API - dapat menggunakan format message yang sama
const response = await client.responses.create({
    model: "qwen3.7-plus",
    input: [
        { role: "system", content: "You are a helpful assistant." },
        { role: "user", content: "Hello!" }
    ]
});
console.log(response.output_text);

// Responses API - atau gunakan format yang lebih ringkas
const response2 = await client.responses.create({
    model: "qwen3.7-plus",
    input: "Hello!"
});
console.log(response2.output_text);
# Chat Completions API
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": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello!"}
    ]
}'

# Responses API - gunakan format yang lebih ringkas
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3.7-plus",
    "input": "Hello!"
}'

2. Perbarui penanganan respons

Responses API mengembalikan struktur respons yang berbeda. Gunakan pintasan output_text untuk mengambil output teks, atau akses informasi detail melalui array output.

Perbandingan respons
# Respons Chat Completions
{
  "id": "chatcmpl-416b0ea5-e362-9fec-97c5-0a60b5d7xxx",
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "logprobs": null,
      "message": {
        "content": "Hello! I'm happy to see you~  How can I help you?",
        "refusal": null,
        "role": "assistant",
        "function_call": null,
        "tool_calls": null
      }
    }
  ],
  "created": 1769416269,
  "model": "qwen3.7-plus",
  "object": "chat.completion",
  "service_tier": null,
  "system_fingerprint": null,
  "usage": {
    "completion_tokens": 14,
    "prompt_tokens": 22,
    "total_tokens": 36,
    "prompt_tokens_details": {
      "cached_tokens": 0
    }
  }
}
# Tanggapan API
{
  "id": "d69c735d-0f5e-4b6c-9c2a-8cab5eb14xxx",
  "created_at": 1769416269.0,
  "model": "qwen3.7-plus",
  "object": "response",
  "status": "completed",
  "output": [
    {
      "id": "msg_3426d3e5-8da7-4dd8-a6a5-7c2cd866xxx",
      "type": "message",
      "role": "assistant",
      "status": "completed",
      "content": [
        {
          "type": "output_text",
          "text": "Halo! Hari ini adalah hari Senin, 26 Januari 2026. Ada yang bisa saya bantu? ",
          "annotations": []
        }
      ]
    }
  ],
  "usage": {
    "input_tokens": 34,
    "output_tokens": 25,
    "total_tokens": 59,
    "input_tokens_details": {
      "cached_tokens": 0
    },
    "output_tokens_details": {
      "reasoning_tokens": 0
    }
  }
}

3. Sederhanakan percakapan multi-putaran

Dengan Chat Completions API, Anda harus mengelola array riwayat pesan secara manual. Responses API menyederhanakan proses ini dengan menggunakan parameter previous_response_id untuk menautkan konteks percakapan secara otomatis. id respons berlaku selama 7 hari.

Python

# Chat Completions - pengelolaan riwayat pesan manual
messages = [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "What is the capital of France?"}
]
res1 = client.chat.completions.create(
    model="qwen3.7-plus",
    messages=messages
)

# Tambahkan respons ke riwayat secara manual
messages.append(res1.choices[0].message)
messages.append({"role": "user", "content": "What is its population?"})

res2 = client.chat.completions.create(
    model="qwen3.7-plus",
    messages=messages
)
# Responses API - penautan otomatis dengan previous_response_id
res1 = client.responses.create(
    model="qwen3.7-plus",
    input="What is the capital of France?"
)

# Cukup berikan ID respons sebelumnya
res2 = client.responses.create(
    model="qwen3.7-plus",
    input="What is its population?",
    previous_response_id=res1.id
)

Node.js

// Chat Completions - pengelolaan riwayat pesan manual
let messages = [
    { role: "system", content: "You are a helpful assistant." },
    { role: "user", content: "What is the capital of France?" }
];
const res1 = await client.chat.completions.create({
    model: "qwen3.7-plus",
    messages
});

// Tambahkan respons ke riwayat secara manual
messages = messages.concat([res1.choices[0].message]);
messages.push({ role: "user", content: "What is its population?" });

const res2 = await client.chat.completions.create({
    model: "qwen3.7-plus",
    messages
});
// Responses API - penautan otomatis dengan previous_response_id
const res1 = await client.responses.create({
    model: "qwen3.7-plus",
    input: "What is the capital of France?"
});

// Cukup berikan ID respons sebelumnya
const res2 = await client.responses.create({
    model: "qwen3.7-plus",
    input: "What is its population?",
    previous_response_id: res1.id
});

4. Gunakan alat bawaan

Responses API mencakup alat bawaan. Tentukan alat tersebut dalam parameter tools. Alat Code Interpreter dan pencarian web gratis untuk waktu terbatas. Lihat pemanggilan alat.

Python

# Chat Completions - Anda perlu mengimplementasikan alat sendiri
def web_search(query):
    # Perlu mengimplementasikan logika pencarian web sendiri
    import requests
    r = requests.get(f"https://api.example.com/search?q={query}")
    return r.json().get("results", [])

completion = client.chat.completions.create(
    model="qwen3.7-plus",
    messages=[{"role": "user", "content": "Who is the current president of France?"}],
    functions=[{
        "name": "web_search",
        "description": "Search the web for information",
        "parameters": {
            "type": "object",
            "properties": {"query": {"type": "string"}},
            "required": ["query"]
        }
    }]
)
# Responses API - gunakan alat bawaan secara langsung
response = client.responses.create(
    model="qwen3.7-plus",
    input="Who is the current president of France?",
    tools=[{"type": "web_search"}]  # Aktifkan pencarian web secara langsung
)
print(response.output_text)

Node.js

// Chat Completions - Anda perlu mengimplementasikan alat sendiri
async function web_search(query) {
    const fetch = (await import('node-fetch')).default;
    const res = await fetch(`https://api.example.com/search?q=${query}`);
    const data = await res.json();
    return data.results;
}

const completion = await client.chat.completions.create({
    model: "qwen3.7-plus",
    messages: [{ role: "user", content: "Who is the current president of France?" }],
    functions: [{
        name: "web_search",
        description: "Search the web for information",
        parameters: {
            type: "object",
            properties: { query: { type: "string" } },
            required: ["query"]
        }
    }]
});
// Responses API - gunakan alat bawaan secara langsung
const response = await client.responses.create({
    model: "qwen3.7-plus",
    input: "Who is the current president of France?",
    tools: [{ type: "web_search" }]  // Aktifkan pencarian web secara langsung
});
console.log(response.output_text);

Curl

# Chat Completions - perlu mengimplementasikan alat sendiri
# Contoh pemanggilan API pencarian eksternal
curl https://api.example.com/search \
  -G \
  --data-urlencode "q=current president of France" \
  --data-urlencode "key=$SEARCH_API_KEY"
# Responses API - gunakan alat bawaan secara langsung
curl -X POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses \
-H "Authorization: Bearer $DASHSCOPE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
    "model": "qwen3.7-plus",
    "input": "Who is the current president of France?",
    "tools": [{"type": "web_search"}]
}'

FAQ

Q: Bagaimana cara meneruskan konteks percakapan multi-putaran?

A: Teruskan id dari respons model sebelumnya yang berhasil sebagai parameter previous_response_id dalam permintaan percakapan berikutnya.

Q: Mengapa saya tidak bisa mencetak 'output_text'?

A: Atribut ini tidak tersedia di beberapa versi OpenAI Python SDK, seperti versi 1.99.2. Untuk mengatasi error ini, perbarui SDK ke versi terbaru.

Terkait