Skip to main content
Respons yang Kompatibel dengan OpenAI

Buat respons

Gunakan API Responses yang kompatibel dengan OpenAI untuk memanggil model Qwen. Topik ini menjelaskan parameter input dan output serta menyediakan contoh pemanggilan.

Keunggulan dibandingkan API OpenAI Chat Completions:
  • Alat bawaan: Hasilkan performa lebih baik pada tugas kompleks dengan alat bawaan seperti pencarian web, scraping web, interpreter kode, teks-ke-gambar, gambar-ke-gambar, dan pencarian basis pengetahuan. Untuk informasi selengkapnya, lihat pemanggilan alat.
  • Input lebih fleksibel: Mendukung input berupa string langsung maupun array pesan dalam format chat.
  • Pengelolaan konteks yang disederhanakan: Hindari konstruksi manual array riwayat pesan dengan meneruskan previous_response_id dari respons terakhir.
  • Peng-cache-an konteks yang praktis: Tambahkan x-dashscope-session-cache: enable (nilai default: disable) ke header permintaan untuk mengaktifkan peng-cache-an otomatis di sisi server terhadap konteks percakapan. Ini mengurangi latensi inferensi dan biaya untuk percakapan multi-putaran tanpa perubahan kode. Untuk detailnya, lihat cache sesi.

Kompatibilitas dan keterbatasan

API ini kompatibel dengan OpenAI untuk mengurangi biaya migrasi developer, tetapi berbeda dalam parameter, fungsionalitas, dan perilakunya. Prinsip Inti: Hanya parameter yang secara eksplisit tercantum dalam dokumen ini yang diproses. Parameter OpenAI apa pun yang tidak disebutkan akan diabaikan. Perbedaan utama berikut akan membantu Anda beradaptasi dengan cepat:
  • Parameter yang Tidak Didukung: API ini tidak mendukung beberapa parameter API OpenAI, seperti parameter eksekusi asinkron background. API saat ini hanya mendukung panggilan sinkron.
  • Kontrol Upaya Reasoning: Gunakan parameter reasoning.effort untuk mengontrol upaya reasoning model. Untuk detail penggunaan, lihat deskripsi parameter ini.
  • Singapore
  • China (Beijing)
  • AS (Virginia)
  • Jerman (Frankfurt)
  • China (Hong Kong)
  • Jepang (Tokyo)
base_url untuk konfigurasi pemanggilan SDK adalah https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1.Titik akhir permintaan HTTP: POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1/responses
Ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya.
Alibaba 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 baru:
  • 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 di Konsol Alibaba Cloud Model Studio. Domain lama tetap berfungsi penuh.
Jalur URL lama /api/v2/apps/protocols/compatible-mode/v1/responses untuk API Responses yang kompatibel dengan OpenAI akan segera ditinggalkan. Harap segera migrasi ke jalur baru /compatible-mode/v1/responses.

Badan permintaan

model string (wajib)ID model yang akan digunakan.
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
Model 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.
input string atau array (wajib)Input untuk model. Format berikut didukung:
  • string: Teks biasa, seperti "Hello".
  • array: Array pesan, diurutkan berdasarkan giliran percakapan.
EasyInputMessage objekObjek dengan role untuk penulis pesan dan content untuk muatan pesan.
role string (wajib)Peran penulis pesan. Nilai yang valid: user, assistant, system, developer.content string atau array (wajib)Konten pesan. Kontennya berupa string jika input berupa teks biasa, atau array jika input berupa array konten terstruktur. Ketika role adalah system atau developer, jenis elemen array adalah input_text. Ketika role adalah user, jenis elemen array adalah input_text, input_image, atau input_file. Ketika role adalah assistant, jenis elemen array adalah output_text.
API Responses saat ini tidak mendukung input video atau audio. Untuk meneruskan jenis data ini, gunakan API Chat Completions atau API DashScope.
type string (wajib)Menentukan jenis konten. Nilai yang valid adalah input_text, input_image (hanya untuk peran user), input_file (hanya untuk peran user, mendukung PDF dan gambar), dan output_text (hanya untuk peran assistant).text stringKonten teks. Diperlukan ketika type adalah input_text atau output_text.image_url stringMendukung URL atau data yang dikodekan Base64. Diperlukan ketika type adalah input_image. Untuk Base64, berikan URI Data lengkap, contohnya: data:image/png;base64,iVBORw0KGgoAAAANSUhEUg....file_url stringURL publik file. Diperlukan ketika type adalah input_file. Mendukung file PDF (maksimal 100 MB) dan file gambar (maksimal 20 MB). Saat ini hanya didukung oleh qwen3.5-ocr.Batas jumlah halaman PDF bergantung pada task di ocr_options: maksimal 50 halaman jika task disetel ke document_parsing; maksimal 10 halaman jika task tidak disetel atau disetel ke tugas lain.
type string (opsional)Tetap sebagai message.
ResponseOutputMessage objek (opsional)Pesan keluaran model. Untuk melanjutkan percakapan, Anda dapat meneruskan objek message dari array output respons sebelumnya kembali ke input. Berbeda dengan EasyInputMessage, objek ini mencakup struktur keluaran lengkap, dengan id, status, dan content terstruktur.
type string (wajib)Tetap sebagai message.id string (wajib)Pengidentifikasi unik pesan keluaran, dari respons sebelumnya.role string (wajib)Tetap sebagai assistant.status string (wajib)Status pesan. Nilai yang valid: in_progress, completed, incomplete.content array (wajib)Array konten, di mana elemennya berupa objek output_text.
type string (wajib)Tetap sebagai output_text.text string (wajib)Teks respons.annotations array (opsional)Informasi anotasi.
Pemanggilan fungsi objek (opsional)Instruksi terstruktur yang dihasilkan ketika model memutuskan untuk memanggil alat eksternal.
type string (wajib)Tetap sebagai function_call.id string (opsional)Pengidentifikasi unik untuk pemanggilan fungsi, dari respons sebelumnya.name string (wajib)Nama fungsi alat.arguments string (wajib)Argumen pemanggilan alat, dalam format string JSON.call_id string (wajib)Pengidentifikasi untuk pemanggilan alat. Ini harus cocok dengan call_id yang dikembalikan oleh model.status string (opsional)Status. Nilai yang valid: in_progress, completed, incomplete.
Keluaran pemanggilan fungsi objek (opsional)Keluaran pemanggilan alat. Dalam daftar pesan, objek ini harus segera mengikuti pesan function_call yang sesuai untuk mencegah kegagalan permintaan.
type string (wajib)Tetap sebagai function_call_output.id string (opsional)Pengidentifikasi unik untuk keluaran pemanggilan fungsi.call_id string (wajib)Pengidentifikasi pemanggilan alat harus cocok dengan call_id yang dikembalikan oleh model.output string (wajib)Hasil eksekusi fungsi alat.status string (opsional)Status. Nilai yang valid: in_progress, completed, incomplete.
Reasoning objek (opsional)Proses reasoning model. Anda dapat meneruskan item reasoning dari output respons sebelumnya kembali ke input untuk melanjutkan proses ini di giliran berikutnya.
type string (wajib)Tetap sebagai reasoning.id string (wajib)Pengidentifikasi unik untuk konten reasoning, dari respons sebelumnya.summary array (wajib)Konten ringkasan reasoning.
type string (wajib)Tetap sebagai summary_text.text string (wajib)Teks ringkasan.
status string (opsional)Status. Nilai yang valid: in_progress, completed, incomplete.
Pemanggilan Pencarian Web objek (opsional)Objek pemanggilan pencarian web. Anda dapat meneruskan kembali item web_search_call dari output respons sebelumnya ke input, memberikan konteks hasil pencarian dalam percakapan multi-putaran.
type string (wajib)Selalu web_search_call.id string (wajib)Pengidentifikasi unik pemanggilan pencarian, dari respons sebelumnya.status string (wajib)Status pencarian. Nilai yang valid: in_progress, searching, completed, failed.action objek (wajib)Rincian tindakan pencarian. Hanya jenis search yang didukung.
type string (wajib)Jenis pencarian. Selalu search.queries array (opsional)Daftar kueri pencarian. Setiap elemen berupa string.sources array (opsional)Daftar sumber hasil pencarian.
type string (wajib)Jenis sumber. Selalu url.url string (wajib)URL sumber.
instructionsstring (opsional)Dimasukkan di awal konteks sebagai instruksi sistem. Ketika previous_response_id digunakan, instructions yang ditentukan di giliran sebelumnya tidak diteruskan ke konteks giliran saat ini.previous_response_id string (opsional)ID unik dari respons sebelumnya. id respons berlaku selama 7 hari. Anda dapat menggunakan parameter ini untuk membuat percakapan multi-putaran. Server secara otomatis mengambil dan menggabungkan input dan output giliran tersebut sebagai konteks. Jika Anda menyediakan array pesan input dan previous_response_id, pesan baru dalam input ditambahkan ke konteks historis. Parameter ini tidak dapat digunakan dengan conversation.conversation string (opsional)Percakapan tempat respons saat ini berada (lihat API Percakapan). Riwayat percakapan secara otomatis disertakan sebagai konteks. Input dan output permintaan ini ditambahkan ke percakapan setelah selesai. Tidak dapat digunakan dengan previous_response_id.stream boolean (opsional) Default ke falseMengaktifkan keluaran streaming. Jika diatur ke true, model mengalirkan respons secara real time.store boolean (opsional) Default ke trueMenentukan apakah respons model yang dihasilkan untuk sesi ini disimpan.
  • false: Respons tidak disimpan dan tidak dapat dirujuk dalam pemanggilan berikutnya melalui previous_response_id.
  • true: Respons disimpan. Respons model saat ini dapat dirujuk oleh previous_response_id dan pemanggilan API berikutnya.
tools array (opsional)Array alat yang dapat dipanggil model saat menghasilkan respons. Mendukung alat bawaan dan alat function kustom, yang dapat digunakan bersama.
Untuk hasil terbaik, aktifkan alat code_interpreter, web_search, dan web_extractor.
Pencarian webMencari informasi terkini di internet. Dokumentasi terkait: Pencarian Web
type string (wajib)Tetap sebagai web_search.Contoh: [{"type": "web_search"}]
Ekstraktor webMengakses dan mengekstraksi konten dari halaman web. Harus digunakan dengan alat web_search. Untuk model qwen3-max dan qwen3-max-2026-01-23, mode reasoning juga harus diaktifkan. Dokumentasi terkait: Ekstraksi Web
type string (wajib)Tetap sebagai web_extractor.Contoh: [{"type": "web_search"}, {"type": "web_extractor"}]
Interpreter kodeMenjalankan kode dalam lingkungan sandbox untuk melakukan tugas seperti analisis data. Untuk model qwen3-max dan qwen3-max-2026-01-23, mode reasoning juga harus diaktifkan. Dokumentasi terkait: Interpreter Kode
type string (wajib)Tetap sebagai code_interpreter.Contoh: [{"type": "code_interpreter"}]
Web Search ImageMencari gambar berdasarkan deskripsi teks. Dokumentasi terkait: Pencarian Teks-ke-Gambar
type string (wajib)Tetap sebagai web_search_image.Contoh: [{"type": "web_search_image"}]
Pencarian gambarMencari gambar serupa atau terkait berdasarkan gambar input. Input harus menyertakan URL gambar. Dokumentasi terkait: Pencarian Gambar-ke-Gambar
type string (wajib)Tetap sebagai image_search.Contoh: [{"type": "image_search"}]
Pencarian fileMenjalankan pengambilan pengetahuan dengan mencari basis pengetahuan tertentu. Dokumentasi terkait: Pengambilan Pengetahuan
type string (wajib)Tetap sebagai file_search.vector_store_ids array(wajib)ID basis pengetahuan yang akan dicari. Saat ini, hanya satu ID basis pengetahuan yang dapat diberikan.Contoh: [{"type": "file_search", "vector_store_ids": ["your_knowledge_base_id"]}]
Pemanggilan MCPMemanggil layanan eksternal melalui Model Context Protocol (MCP). Dokumentasi terkait: MCP
type string (wajib)Tetap sebagai mcp.server_protocol string (wajib)Protokol komunikasi dengan layanan MCP, seperti "sse".server_label string (wajib)Label yang digunakan untuk mengidentifikasi layanan MCP.server_description string (opsional)Deskripsi layanan. Membantu model memahami fungsinya dan kapan harus menggunakannya.server_url string (wajib)URL titik akhir layanan MCP.headers objek (opsional)Header permintaan, digunakan untuk membawa informasi seperti autentikasi (misalnya, Authorization).Contoh:
mcp_tool = {
    "type": "mcp",
    "server_protocol": "sse",
    "server_label": "amap-maps",
    "server_description": "Server MCP AMap menyediakan rangkaian lengkap layanan informasi geografis, mencakup 15 API inti. Ini termasuk pembuatan peta kustom, navigasi, layanan taksi online, geocoding, reverse geocoding, lokasi berbasis IP, kueri cuaca, serta perencanaan rute bersepeda, berjalan kaki, mengemudi, dan transportasi umum, bersama dengan pengukuran jarak dan berbagai fungsi pencarian.",
    "server_url": "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api/v1/mcps/amap-maps/sse",
    "headers": {
        "Authorization": "Bearer <your-mcp-server-token>"
    }
}
Alat KustomFungsiMemungkinkan model memanggil fungsi yang ditentukan developer. Ketika model menentukan bahwa alat perlu dipanggil, respons mengembalikan item keluaran bertipe function_call. Dokumentasi terkait: Pemanggilan fungsi
type string (wajib)Harus diatur ke function.namestring(wajib)Nama alat. Hanya boleh berisi huruf, angka, garis bawah (_), dan tanda hubung (-), dengan panjang maksimum 64 token.descriptionstring(wajib)Deskripsi alat, yang membantu model memutuskan kapan dan bagaimana memanggilnya.parameters objek (opsional)Definisi parameter untuk alat, yang harus berupa objek JSON Schema yang valid. Jika parameters kosong, alat tidak memerlukan argumen (misalnya, alat kueri waktu).
Untuk meningkatkan akurasi pemanggilan alat, kami merekomendasikan mendefinisikan parameters.
Contoh:
[{
  "type": "function",
  "name": "get_weather",
  "description": "Dapatkan informasi cuaca untuk kota tertentu",
  "parameters": {
    "type": "object",
    "properties": {
      "city": {
        "type": "string",
        "description": "Nama kota"
      }
    },
    "required": ["city"]
  }
}]
tool_choice string atau objek (opsional) Default ke autoMengontrol cara model memilih dan memanggil alat. Parameter ini mendukung dua format: mode string dan mode objek.Mode string
  • auto: Model memutuskan apakah akan memanggil alat.
  • none: Mencegah model memanggil alat apa pun.
  • required: Memaksa model memanggil alat. Ini hanya tersedia ketika daftar tools berisi tepat satu alat.
Object ModeMembatasi model pada himpunan alat tertentu untuk dipilih dan dipanggil.
mode string (wajib)
  • auto: Model secara otomatis memutuskan apakah akan memanggil alat dari daftar yang disediakan.
  • required: Memaksa model memanggil alat dari daftar yang disediakan. Ini hanya tersedia ketika daftar tools berisi tepat satu alat.
tools array(wajib)Daftar definisi alat yang boleh dipanggil model.
[
  { "type": "function", "name": "get_weather" }
]
typestring (wajib)Jenis konfigurasi alat. Tetap sebagai allowed_tools.
suhufloat(opsional)Suhu pengambilan sampel, yang mengontrol keragaman teks yang dihasilkan.Nilai yang lebih tinggi membuat output lebih acak dan beragam, sedangkan nilai yang lebih rendah membuatnya lebih fokus dan deterministik.Kisaran nilai: [0, 2)Baik suhu maupun top_p mengontrol keragaman teks yang dihasilkan. Kami merekomendasikan hanya menggunakan salah satu parameter ini dalam satu waktu. Untuk informasi selengkapnya, lihat Ikhtisar.top_pfloat(opsional)Ambang batas probabilitas untuk pengambilan sampel top-p, yang mengontrol keragaman teks yang dihasilkan.Nilai yang lebih tinggi membuat output lebih acak dan beragam, sedangkan nilai yang lebih rendah membuatnya lebih fokus dan deterministik.Kisaran nilai: (0, 1.0]Baik suhu maupun top_p mengontrol keragaman teks yang dihasilkan. Kami merekomendasikan hanya menggunakan salah satu parameter ini dalam satu waktu. Untuk informasi selengkapnya, lihat Ikhtisar.enable_thinking boolean (opsional)Mengaktifkan atau menonaktifkan mode reasoning. Ketika diaktifkan, model melakukan langkah reasoning sebelum merespons. Proses reasoning dikembalikan sebagai item keluaran bertipe reasoning. Ketika mengaktifkan mode reasoning, kami merekomendasikan juga mengaktifkan alat bawaan untuk mencapai hasil terbaik pada tugas kompleks.Nilai yang valid:
  • true: Mengaktifkan mode reasoning.
  • false: Menonaktifkan mode reasoning.
Untuk nilai default berbagai model, lihat Model yang Didukung.
Parameter ini bukan parameter OpenAI standar. Di SDK Python, teruskan menggunakan extra_body={"enable_thinking": True}. Di SDK Node.js dan curl, gunakan enable_thinking: true sebagai parameter tingkat atas. Kami merekomendasikan menggunakan reasoning.effort sebagai gantinya, karena enable_thinking akan ditinggalkan.
reasoning objek (opsional)Mengontrol upaya reasoning model. Model melakukan langkah reasoning sebelum membalas, dan proses reasoning dikembalikan melalui item keluaran bertipe reasoning.
effort string (opsional): Tingkat upaya reasoning. Default ke xhigh.Mendukung 7 tingkat bertahap: none, minimal, low, medium, high, xhigh, dan max. Menurunkan nilai ini akan mempercepat kecepatan respons dan mengurangi konsumsi Token inferensi.
xhigh dan max hanya didukung di China (Beijing) dan Singapore.
reasoning.effort memiliki prioritas lebih tinggi daripada enable_thinking. Kami merekomendasikan menggunakan reasoning.effort, karena enable_thinking akan ditinggalkan.
ocr_options objek (opsional)Parameter tugas bawaan OCR. Hanya berlaku untuk model qwen3.5-ocr. Gunakan parameter ini untuk memanggil tugas OCR bawaan (seperti ekstraksi informasi dan pelokalan teks). Hasil tugas bawaan dikembalikan dalam bidang ocr_result respons.Saat mengurai file PDF, nilai task menentukan jumlah halaman yang didukung: maksimal 50 halaman jika disetel ke document_parsing; maksimal 10 halaman jika task tidak disetel atau disetel ke tugas lain.
Parameter ini bukan parameter OpenAI standar. Di SDK Python, teruskan menggunakan extra_body={"ocr_options": {...}}. Di SDK Node.js dan curl, gunakan ocr_options sebagai parameter tingkat atas.
max_output_tokens integer (opsional)
  • Seri Qwen3.8: jumlah maksimum total token dalam konten respons model dan konten rantai-pikiran digabungkan.
  • Model lain: jumlah maksimum token dalam konten respons model.
Nilai minimum adalah 16. Jika output model melebihi nilai ini, generasi dihentikan lebih awal dan statusnya incomplete.
  • Panggilan dasar
  • Keluaran streaming
  • Percakapan multi-putaran
  • Alat bawaan
  • Pemanggilan fungsi
  • Pemahaman dokumen
  • Cache sesi
Python
import os
from openai import OpenAI

client = OpenAI(
    # Jika variabel lingkungan belum diatur, ganti dengan: api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # Ganti {WorkspaceId} dengan ID ruang kerja Anda yang sebenarnya. URL berbeda berdasarkan wilayah.    base_url="https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
)

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

# Dapatkan respons model
print(response.output_text)

Objek respons (keluaran non-streaming)

id stringPengidentifikasi unik untuk respons ini, berupa UUID. ID ini berlaku selama 7 hari dan dapat digunakan dalam parameter previous_response_id untuk membuat percakapan multi-putaran.created_at integerTimestamp Unix (dalam detik) untuk permintaan ini.object stringJenis objek, yang selalu response.status stringStatus generasi respons. Nilai yang valid:
  • completed: Generasi selesai.
  • failed: Generasi gagal.
  • in_progress: Generasi sedang berlangsung.
  • cancelled: Generasi dibatalkan.
  • queued: Permintaan dalam antrian.
  • incomplete: Generasi tidak lengkap.
model stringID model yang digunakan untuk menghasilkan respons.output arrayArray item keluaran yang dihasilkan model. Jenis dan urutan elemen dalam array bergantung pada respons model.
type stringJenis item keluaran. Nilai yang valid:
  • message: Item pesan yang berisi konten respons akhir model.
  • reasoning: Jenis reasoning. Parameter ini dikembalikan ketika reasoning.effort diatur ke nilai selain none atau ketika mode reasoning diaktifkan. Token reasoning dihitung dalam output_tokens_details.reasoning_tokens dan ditagih sebagai token reasoning.
  • function_call: Jenis pemanggilan fungsi. Ini dikembalikan ketika alat function kustom digunakan. Tangani pemanggilan fungsi dan kembalikan hasilnya.
  • web_search_call: Jenis pemanggilan pencarian. Ini dikembalikan ketika alat web_search digunakan.
  • code_interpreter_call: Jenis eksekusi kode yang dikembalikan ketika alat code_interpreter digunakan.
  • web_extractor_call: Jenis ekstraksi web. Ini dikembalikan ketika alat web_extractor digunakan. Harus digunakan dengan alat web_search.
  • web_search_image_call: Jenis pemanggilan untuk pencarian teks-ke-gambar. Ini dikembalikan ketika Anda menggunakan alat web_search_image. Berisi daftar gambar yang ditemukan.
  • image_search_call: Jenis pemanggilan untuk pencarian gambar-ke-gambar. Ini dikembalikan ketika alat image_search digunakan. Berisi daftar gambar serupa.
  • mcp_call: Jenis pemanggilan MCP. Ini dikembalikan ketika Anda menggunakan alat mcp. Berisi hasil pemanggilan layanan MCP.
  • file_search_call: Jenis pemanggilan untuk pencarian basis pengetahuan, yang dikembalikan ketika Anda menggunakan alat file_search. Berisi kueri pengambilan dan hasil untuk basis pengetahuan.
id stringPengidentifikasi unik item keluaran. Semua jenis item keluaran berisi bidang ini.role stringPeran pesan selalu assistant. Parameter ini ada hanya ketika type adalah message.status stringStatus item keluaran. Nilai yang valid: completed dan in_progress. Parameter ini ada ketika parameter type tidak diatur ke reasoning.name stringNama alat atau fungsi. Parameter ini ada ketika type adalah function_call, web_search_image_call, image_search_call, atau mcp_call.Untuk web_search_image_call dan image_search_call, nilainya tetap "web_search_image" dan "image_search", masing-masing.Untuk mcp_call, nilainya adalah nama fungsi spesifik yang dipanggil dalam layanan MCP, seperti amap-maps-maps_geo.arguments stringParameter untuk pemanggilan alat, dalam format string JSON. Parameter ini ada ketika type adalah function_call, web_search_image_call, image_search_call, atau mcp_call. Uraikan string dengan menggunakan JSON.parse() sebelum digunakan. Konten argumen untuk berbagai jenis alat adalah sebagai berikut:
  • web_search_image_call: {"queries": ["Kata Kunci Pencarian 1", "Kata Kunci Pencarian 2"]}, di mana queries adalah daftar kata kunci pencarian yang dihasilkan model secara otomatis berdasarkan input pengguna.
  • image_search_call: {"img_idx": 0, "bbox": [0, 0, 1000, 1000]}, di mana img_idx adalah indeks gambar input (dimulai dari 0), dan bbox adalah koordinat kotak pembatas [x1, y1, x2, y2] untuk area pencarian. Nilai koordinat berkisar dari 0 hingga 1000.
  • function_call: Objek parameter yang dihasilkan dari skema parameter fungsi yang ditentukan pengguna.
  • mcp_call: Objek parameter untuk fungsi yang dipanggil dalam layanan MCP.
call_id stringID unik untuk pemanggilan fungsi. Parameter ini hanya disertakan ketika type adalah function_call. ID ini harus disertakan dalam hasil pemanggilan fungsi untuk menghubungkan permintaan dengan respons.content arrayArray konten pesan. Parameter ini ada hanya jika type diatur ke message.
type stringJenis konten. Nilainya tetap output_text.text stringKonten teks yang dihasilkan model.annotations arrayArray anotasi teks. Biasanya berupa array kosong.
summary arrayArray ringkasan reasoning. Bidang ini ada hanya ketika type adalah reasoning. Setiap elemen berisi bidang type (nilai: summary_text) dan bidang text (teks ringkasan).action objekInformasi tentang tindakan pencarian. Parameter ini ada hanya ketika type adalah web_search_call.
query stringKata kunci kueri pencarian.type stringJenis pencarian. Nilainya selalu search.sources arrayDaftar sumber pencarian. Setiap elemen berisi bidang type dan url.
code stringKode yang dihasilkan dan dieksekusi model. Ini ada hanya ketika type adalah code_interpreter_call.outputs arrayArray keluaran eksekusi kode. Ini ada hanya ketika type adalah code_interpreter_call. Setiap elemen memiliki bidang type (nilainya logs) dan bidang logs (log eksekusi kode).container_id stringPengidentifikasi kontainer untuk interpreter kode. Parameter ini ada hanya ketika type adalah code_interpreter_call. Pengidentifikasi ini mengaitkan beberapa eksekusi kode dalam sesi yang sama.goal stringDeskripsi informasi yang akan diekstraksi dari halaman web. Parameter ini tersedia hanya ketika type adalah web_extractor_call.output stringKeluaran pemanggilan alat. Keluarannya berupa string.
  • Jika type adalah web_extractor_call, ini adalah ringkasan konten yang diekstraksi dari halaman web.
  • Jika type adalah web_search_image_call atau image_search_call, ini adalah string JSON yang berisi array hasil pencarian gambar. Setiap elemen mencakup bidang title, url, dan index.
  • Jika type adalah mcp_call, ini adalah hasil string JSON yang dikembalikan oleh layanan MCP.
urls arrayDaftar URL untuk halaman web yang diekstraksi. Parameter ini tersedia hanya ketika type adalah web_extractor_call.server_label stringLabel untuk layanan MCP. Ini muncul hanya ketika type adalah mcp_call. Ini menunjukkan layanan MCP mana yang digunakan dalam pemanggilan.queries arrayDaftar kueri untuk pengambilan basis pengetahuan. Parameter ini ada hanya ketika type adalah file_search_call. Array berisi string. Setiap string adalah kueri pencarian yang dihasilkan model.results arrayArray hasil pencarian dari basis pengetahuan. Parameter ini ada hanya ketika type adalah file_search_call.
file_id stringID file dokumen yang cocok.filename stringNama file dokumen yang cocok.score floatSkor relevansi kecocokan. Nilainya berkisar dari 0 hingga 1. Nilai yang lebih besar menunjukkan relevansi yang lebih tinggi.text stringCuplikan konten dari dokumen yang cocok.
usage objekInformasi tentang konsumsi token untuk permintaan ini.
input_tokens integerJumlah token dalam input. Catatan Tambahanoutput_tokens integerJumlah token dalam output model.total_tokens integerJumlah total token yang dikonsumsi adalah jumlah dari input_tokens dan output_tokens.input_tokens_details objekKlasifikasi detail halus token input.
cached_tokens integerJumlah token yang hit cache. Untuk informasi selengkapnya, lihat peng-cache-an konteks.
output_tokens_details objekRincian terperinci token output.
reasoning_tokens integerJumlah token reasoning.
x_details arrayArray rincian penagihan untuk permintaan. Ini memberikan rincian lebih granular token multimodal daripada bidang usage tingkat atas.
input_tokens integerJumlah token dalam input. Catatan Tambahanoutput_tokens integerJumlah token dalam output model.total_tokens integerJumlah total token yang dikonsumsi adalah jumlah dari input_tokens dan output_tokens.x_billing_type stringNilainya tetap response_api.image_tokens integerJumlah token untuk input gambar. Bidang ini dikembalikan ketika input menyertakan gambar dan setara dengan input_tokens_details.image_tokens.input_tokens_details objekRincian granular token input. Bidang ini dikembalikan untuk input multimodal. Saat ini hanya membedakan antara text_tokens dan image_tokens. Tidak memberikan rincian untuk token video atau audio.
text_tokens integerJumlah token untuk input teks.image_tokens integerJumlah token untuk input gambar.
output_tokens_details objekRincian granular token output. Bidang ini memiliki tambahan bidang text_tokens dibandingkan dengan output_tokens_details tingkat atas. Bidang text_tokens dikembalikan untuk input multimodal.
reasoning_tokens integerJumlah token untuk proses reasoning.text_tokens integerJumlah token untuk output teks. Bidang ini dikembalikan untuk input multimodal.
plugins objekStatistik untuk pemanggilan alat bawaan. Bidang ini dikembalikan ketika alat bawaan seperti web_search digunakan. Isinya sama dengan bidang x_tools tingkat atas.
web_search objekStatistik untuk pemanggilan pencarian web.
count integerJumlah kali pencarian web dipanggil dalam respons ini.
prompt_tokens_details objekRincian cache untuk token input. Bidang ini dikembalikan ketika cache sesi diaktifkan. Mungkin mengembalikan objek kosong jika input menyertakan gambar tetapi menghasilkan cache miss.
cached_tokens integerJumlah token yang ditemukan di cache.cache_creation_input_tokens integerJumlah token yang digunakan untuk membuat cache baru dalam permintaan ini.cache_creation objekRincian pembuatan cache.
ephemeral_5m_input_tokens integerJumlah token yang digunakan untuk membuat cache ephemeral baru selama 5 menit.
cache_type stringJenis cache. Nilainya tetap ephemeral.
x_tools objekStatistik penggunaan alat. Ini berisi jumlah kali setiap alat bawaan dipanggil.Contoh: {"web_search": {"count": 1}}
error objekObjek error dikembalikan ketika model gagal menghasilkan respons. Jika tidak, nilainya null.tools arrayMenggemakan konten lengkap parameter tools dari permintaan, dengan struktur yang sama seperti parameter tools dalam badan permintaan.tool_choice stringMenggemakan nilai parameter tool_choice dalam permintaan. Nilai yang valid adalah auto, none, dan required.
{
    "created_at": 1771165900.0,
    "id": "f75c28fb-4064-48ed-90da-4d2cc4362xxx",
    "model": "qwen3.8-max",
    "object": "response",
    "output": [
        {
            "content": [
                {
                    "annotations": [],
                    "text": "Halo! Saya Qwen3.5, model bahasa besar yang dikembangkan oleh Alibaba Cloud dengan pengetahuan hingga tahun 2026, dirancang untuk membantu Anda dalam reasoning kompleks, tugas kreatif, dan percakapan multibahasa.",
                    "type": "output_text"
                }
            ],
            "id": "msg_89ad23e6-f128-4d4c-b7a1-a786e7880xxx",
            "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": 44,
        "output_tokens_details": {
            "reasoning_tokens": 0
        },
        "total_tokens": 101,
        "x_details": [
            {
                "input_tokens": 57,
                "output_tokens": 44,
                "total_tokens": 101,
                "x_billing_type": "response_api"
            }
        ]
    }
}

Objek potongan respons (keluaran streaming)

Keluaran streaming mengembalikan serangkaian objek JSON. Setiap objek mencakup bidang type untuk menentukan jenis peristiwa dan bidang sequence_number untuk menunjukkan urutan peristiwa. Peristiwa response.completed menandai akhir aliran.type stringPengidentifikasi jenis peristiwa. Nilai yang mungkin meliputi:
  • response.created: Respons dibuat, dengan status queued.
  • response.in_progress: Respons mulai diproses, dan status berubah menjadi in_progress.
  • response.output_item.added: Item keluaran baru (misalnya, pesan atau web_extractor_call) ditambahkan ke array output. Ketika item.type adalah web_extractor_call, ini menunjukkan dimulainya pemanggilan alat ekstraksi web.
  • response.content_part.added: Bagian konten baru ditambahkan ke array content item keluaran.
  • response.output_text.delta: Segmen teks inkremental dihasilkan. Peristiwa ini dipicu beberapa kali, dan bidang delta berisi segmen teks baru.
  • response.output_text.done: Generasi teks untuk bagian konten selesai. Bidang text berisi teks lengkap.
  • response.content_part.done: Bagian konten selesai. Objek part berisi bagian konten lengkap.
  • response.output_item.done: Item keluaran selesai. Objek item berisi item keluaran lengkap. Ketika item.type adalah web_extractor_call, ini menunjukkan penyelesaian pemanggilan alat ekstraksi web.
  • response.reasoning_text.delta: (Dalam mode reasoning) Memberikan pembaruan inkremental ke ringkasan reasoning. Bidang delta berisi segmen baru.
  • response.reasoning_text.done: (Dalam mode reasoning) Ringkasan reasoning selesai. Bidang text berisi ringkasan lengkap.
  • response.custom_tool_call_input.delta: Memberikan pembaruan inkremental ke input pemanggilan alat kustom. Bidang delta berisi segmen yang baru dihasilkan.
  • response.custom_tool_call_input.done: Input pemanggilan alat kustom selesai. Bidang input berisi input lengkap.
  • response.web_search_call.in_progress / searching / completed: Peristiwa yang menunjukkan perubahan status pencarian ketika menggunakan alat web_search.
  • response.code_interpreter_call.in_progress / interpreting / completed: Peristiwa untuk perubahan status eksekusi kode (ketika menggunakan alat code_interpreter).
  • Catatan: Alat web_extractor tidak memiliki pengidentifikasi jenis peristiwa khusus. Pemanggilan alatnya diteruskan melalui peristiwa umum response.output_item.added dan response.output_item.done dan diidentifikasi oleh bidang item.type dengan nilai web_extractor_call.
  • response.mcp_call_arguments.delta / response.mcp_call_arguments.done: Peristiwa ini memberikan delta dan status penyelesaian untuk argumen pemanggilan MCP.
  • response.mcp_call.in_progress: Pemanggilan layanan MCP sedang berlangsung.
  • response.mcp_call.completed: Pemanggilan layanan MCP selesai.
  • response.file_search_call.in_progress / searching / completed: Peristiwa perubahan status untuk pencarian basis pengetahuan (ketika Anda menggunakan alat file_search).
  • Catatan: Ketika menggunakan alat web_search_image dan image_search, tidak ada peristiwa status antara khusus. Pemanggilan alat dikomunikasikan melalui peristiwa response.output_item.added (mulai pemanggilan) dan response.output_item.done (pemanggilan selesai).
  • response.completed: Generasi respons selesai. Objek response berisi respons lengkap, termasuk penggunaan. Peristiwa ini menandai akhir aliran.
  • response.incomplete: Respons berakhir lebih awal karena batasan seperti max_output_tokens.
sequence_number integerNomor urutan peristiwa, dimulai dari 0 dan bertambah dengan setiap peristiwa. Gunakan nomor ini untuk memproses peristiwa dalam urutan yang benar.response objekObjek respons. Muncul dalam peristiwa response.created, response.in_progress, dan response.completed. Dalam peristiwa response.completed, objek ini berisi data respons lengkap (termasuk output dan usage), dan strukturnya identik dengan objek Respons non-streaming.item objekObjek item keluaran. Muncul dalam peristiwa response.output_item.added dan response.output_item.done. Dalam peristiwa added, objek ini merupakan kerangka awal di mana content adalah array kosong. Dalam peristiwa done, objek ini lengkap.
id stringPengidentifikasi unik untuk item keluaran (misalnya, msg_xxx).type stringJenis item keluaran. Nilai yang mungkin: message, reasoning, web_search_call, web_search_image_call (pencarian teks-ke-gambar), image_search_call (pencarian gambar-ke-gambar), mcp_call (pemanggilan MCP), file_search_call (pencarian basis pengetahuan).role stringPeran pesan, yang selalu assistant. Ada hanya ketika type adalah message.status stringStatus generasi. Dalam peristiwa added, statusnya in_progress, dan dalam peristiwa done, statusnya completed.content arrayArray konten pesan. Dalam peristiwa added, array ini kosong []. Dalam peristiwa done, array ini berisi objek bagian konten lengkap yang strukturnya sama dengan objek part.
part objekObjek bagian konten. Muncul dalam peristiwa response.content_part.added dan response.content_part.done.
type stringJenis bagian konten, yang selalu output_text.text stringKonten teks. Ini adalah string kosong dalam peristiwa added dan teks lengkap dalam peristiwa done.annotations arrayArray anotasi teks. Biasanya berupa array kosong.logprobs objek | nullProbabilitas log token. Bidang ini saat ini selalu mengembalikan null.
delta stringSegmen teks inkremental. Bidang ini muncul dalam peristiwa response.output_text.delta dan berisi segmen teks yang baru ditambahkan. Gabungkan semua nilai delta untuk merekonstruksi teks lengkap.text stringKonten teks lengkap. Bidang ini muncul dalam peristiwa response.output_text.done. Anda dapat menggunakannya untuk memvalidasi teks yang direkonstruksi dari fragmen delta.item_id stringPengidentifikasi unik untuk item keluaran. Gunakan ID ini untuk menghubungkan peristiwa yang termasuk dalam item yang sama.output_index integerIndeks item keluaran dalam array output.content_index integerIndeks bagian konten dalam array content.
// response.created: Respons dibuat dan dalam antrian.
{"response":{"id":"428c90e9-9cd6-90a6-9726-c02b08ebexxx","created_at":1769082930,"object":"response","status":"queued",...},"sequence_number":0,"type":"response.created"}

// response.in_progress: Pemrosesan dimulai.
{"response":{"id":"428c90e9-9cd6-90a6-9726-c02b08ebexxx","status":"in_progress",...},"sequence_number":1,"type":"response.in_progress"}

// response.output_item.added: Item keluaran baru ditambahkan.
{"item":{"id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","content":[],"role":"assistant","status":"in_progress","type":"message"},"output_index":0,"sequence_number":2,"type":"response.output_item.added"}

// response.content_part.added: Bagian konten baru ditambahkan.
{"content_index":0,"item_id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","output_index":0,"part":{"annotations":[],"text":"","type":"output_text","logprobs":null},"sequence_number":3,"type":"response.content_part.added"}

// response.output_text.delta: Teks inkremental (dapat dipicu beberapa kali).
{"content_index":0,"delta":"Artificial Intelligence","item_id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","logprobs":[],"output_index":0,"sequence_number":4,"type":"response.output_text.delta"}
{"content_index":0,"delta":" (AI) refers to the technology","item_id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","logprobs":[],"output_index":0,"sequence_number":6,"type":"response.output_text.delta"}

// response.output_text.done: Generasi teks untuk bagian konten selesai.
{"content_index":0,"item_id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","logprobs":[],"output_index":0,"sequence_number":53,"text":"Artificial Intelligence (AI) refers to the technology and science that enables computer systems to simulate human intelligent behaviors...","type":"response.output_text.done"}

// response.content_part.done: Bagian konten selesai.
{"content_index":0,"item_id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","output_index":0,"part":{"annotations":[],"text":"...full text...","type":"output_text","logprobs":null},"sequence_number":54,"type":"response.content_part.done"}

// response.output_item.done: Item keluaran selesai.
{"item":{"id":"msg_bcb45d66-fc34-46a2-bb56-714a51e8exxx","content":[{"annotations":[],"text":"...full text...","type":"output_text","logprobs":null}],"role":"assistant","status":"completed","type":"message"},"output_index":0,"sequence_number":55,"type":"response.output_item.done"}

// response.completed: Respons selesai (menyertakan respons lengkap dan penggunaan).
{"response":{"id":"428c90e9-9cd6-90a6-9726-c02b08ebexxx","created_at":1769082930,"model":"qwen3.7-max","object":"response","output":[...],"status":"completed","usage":{"input_tokens":37,"output_tokens":243,"total_tokens":280,...}},"sequence_number":56,"type":"response.completed"}

FAQ

T: Bagaimana cara meneruskan konteks untuk percakapan multi-putaran? J: Saat membuat permintaan percakapan baru, teruskan id dari respons sukses sebelumnya model sebagai parameter previous_response_id. T: Mengapa beberapa bidang dalam contoh respons tidak dijelaskan dalam topik ini? J: SDK OpenAI resmi mungkin mengeluarkan bidang tambahan yang ditentukan oleh protokol OpenAI. Layanan kami tidak mendukung bidang-bidang ini, sehingga biasanya bernilai null. Fokuslah hanya pada bidang yang dijelaskan dalam topik ini.
Pembuatan Gambar
  • FAQ
Video Generation
Model Dunia
Audio
  • Pembuatan audio
Realtime API
Penyematan Teks
TokenPlan
Model production