OpenAI Decisions API adalah endpoint POST /v1/decisions, yang berjalan di GPT-6 Luna, yang menerima teks atau gambar ditambah daftar pertanyaan dan mengembalikan jawaban bertipe alih-alih prosa: probabilitas predicate, choice dengan probabilitas per-opsi, atau score di atas level yang terurut. Biaya input adalah $0.10 per 1 Juta token tanpa output, biaya baca-cache atau tulis-cache, dan endpoint ini telah dalam beta publik sejak 2026-10-06, dengan OpenAI menyatakan GA diharapkan "dalam beberapa minggu mendatang".
Posting ini membahas apa yang dikembalikan oleh endpoint, berapa biayanya, di mana posisinya dibandingkan dengan Structured Outputs dan function calling, serta cara mengujinya. Untuk panduan langkah demi langkah dengan curl, Python, dan JavaScript, bacalah cara menggunakan OpenAI Decisions API selanjutnya; jika Anda sudah menggunakan Responses API, perbandingan Decisions vs Responses menunjukkan pekerjaan yang sama dilakukan dengan dua cara. Sepanjang artikel ini, kita akan menggunakan Apidog untuk menyimpan kunci, menyimpan permintaan, dan menegaskan pada array answers sehingga perubahan dalam perilaku model akan menyebabkan kegagalan uji daripada kesalahan rute tiket.
Anatomi permintaan dan respons Decisions
Tiga bidang permintaan, tiga bidang respons. Tanpa id, tanpa teks yang dihasilkan, tidak ada yang perlu diurai.
| Bagian | Bidang | Apa yang disimpannya |
|---|---|---|
| Permintaan | model |
gpt-6-luna, satu-satunya model yang tersedia saat ini |
| Permintaan | input |
String, atau array pesan pengguna yang kontennya mencampur bagian input_text dan input_image |
| Permintaan | questions |
Array pertanyaan, masing-masing dengan type, instructions yang wajib, dan name opsional |
| Permintaan | safety_identifier |
ID pengguna akhir opsional, hingga 128 karakter |
| Respons | model |
Mengulang gpt-6-luna |
| Respons | answers |
Satu entri per pertanyaan, sesuai urutan Anda bertanya, dengan type dan name |
| Respons | usage |
input_tokens, input_tokens_details, output_tokens, output_tokens_details, total_tokens |
Perhatikan apa yang hilang: tanpa temperature, reasoning, stream, store, tools atau text.format. Untuk itu Anda memerlukan Responses API. Dan output_tokens adalah 0 dalam contoh referensi OpenAI sendiri, itulah sebabnya harga di bawah ini tidak memiliki baris output.
Tiga jenis pertanyaan
Setiap pertanyaan membawa type-nya sendiri, dan Anda dapat mencampur jenis dalam satu input. Letakkan pertanyaan independen dalam permintaan yang sama; untuk keputusan yang bergantung pada jawaban sebelumnya, panduan OpenAI menyarankan untuk mengirimkan permintaan terpisah.
predicate: probabilitas ya/tidak
Sebuah predicate menanyakan apakah suatu kondisi berlaku dan mengembalikan probabilitas dari 0 hingga 1 bahwa kondisi tersebut benar.
curl https://api.openai.com/v1/decisions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-luna",
"input": "The box arrived crushed and the screen is cracked.",
"questions": [
{"type": "predicate", "name": "damaged",
"instructions": "Is the product described as damaged?"}
]
}'
Contoh referensi OpenAI untuk bentuk ini mengembalikan:
{
"model": "gpt-6-luna",
"answers": [
{"type": "predicate", "name": "damaged", "probability": 0.95}
],
"usage": {
"input_tokens": 42,
"input_tokens_details": {"cached_tokens":0,"cache_write_tokens":0},
"output_tokens": 0,
"output_tokens_details": {"reasoning_tokens":0},
"total_tokens": 42
}
}
choice: satu label dari set yang tidak terurut
Sebuah choice menambahkan array choices dari objek {value, description}: 2 hingga 255 pilihan unik, di mana value adalah string atau boolean (true dan "true" adalah berbeda). OpenAI merekomendasikan fallback seperti other ketika kategori Anda tidak mencakup setiap input.
{
"model": "gpt-6-luna",
"input": "I was charged twice for my order.",
"questions": [
{"type": "choice", "name": "department",
"instructions": "Which team should handle this ticket?",
"choices": [
{"value":"billing"}, {"value":"technical"},
{"value":"shipping"}, {"value":"other"}
]}
]
}
Jawaban ilustratif dari panduan untuk input ini:
{"type": "choice", "name": "department", "choice": "billing",
"probabilities": [
{"value":"billing","probability":0.95},
{"value":"technical","probability":0.02},
{"value":"shipping","probability":0.01},
{"value":"other","probability":0.02}
],
"confidence": 0.93}
score: posisi pada skala terurut
Sebuah score menambahkan levels, sebuah array dari objek {label, description} yang terurut dari terendah ke tertinggi. Indeks dimulai dari 0, dan score yang dikembalikan adalah rata-rata berbobot probabilitas dari indeks-indeks tersebut, sehingga dapat berada di antara level.
{
"model": "gpt-6-luna",
"input": "Export fails in Safari but works in Chrome.",
"questions": [
{"type": "score", "name": "severity",
"instructions": "How badly does this bug block the user?",
"levels": [
{"label":"Cosmetic"},
{"label":"Workaround available"},
{"label":"Fully blocked"}
]}
]
}
Dalam contoh panduan, probabilitasnya adalah 0.1, 0.7, dan 0.2 di ketiga level, memberikan score 1.1 dan confidence 0.55. Bacalah 1.1 sebagai "antara level 1 dan level 2, mendekati 1". Aturan panduan: choice untuk kategori yang tidak terurut seperti departemen; score untuk level yang terurut seperti tingkat keparahan.
Jenis jawaban keempat, refusal, dapat muncul untuk pertanyaan tunggal apa pun sebagai {"type":"refusal","name":...}. Pertanyaan lain dalam permintaan yang sama masih dapat mendapatkan jawaban, jadi bercabanglah pada type sebelum membaca bidang.
Kecepatan, sebagaimana dijelaskan OpenAI
OpenAI mengatakan Decisions API sekitar 10x lebih cepat daripada Responses API; pengumuman tersebut menyatakan hingga 10x lebih cepat daripada GPT-6 Luna melalui Responses. OpenAI tidak mempublikasikan angka latensi absolut. Seorang developer di forum OpenAI melaporkan keputusan input gambar kembali dalam sekitar 0,8 detik pada koneksi lambat: sebuah anekdot, bukan tolok ukur. Ukur p95 Anda sendiri sebelum menjanjikan apa pun.
Harga: $0.10 per juta token input, tidak ada yang lain
Dengan gpt-6-luna, biaya input adalah $0.10 per 1 Juta token. Anda hanya membayar untuk token input: tidak ada biaya baca-cache, tulis-cache, atau token output. Objek usage membawa bidang cached_tokens dan cache_write_tokens, tetapi menurut balasan di forum developer OpenAI, belum ada caching pada Decisions, jadi harapkan 0.
Dua pengganda berlaku. Input di atas 272K token ditagih 2x, yang berarti $0.20 per 1 Juta (berasal dari pengganda konteks panjang di halaman harga). Pemrosesan regional melalui endpoint residensi data AS atau UE menambah 10%. Tidak ada tingkatan Batch, Flex, atau Fast yang didokumentasikan untuk /v1/decisions, jadi jangan merencanakan diskon yang hanya ada di Responses.
Berikut adalah perhitungan untuk beban kerja perutean dukungan. Tiket 500-token dengan tiga pertanyaan dalam satu permintaan berbiaya 500 / 1.000.000 x $0.10 = $0.00005. Satu juta tiket semacam itu berbiaya $50. Tiket yang sama melalui Responses API dengan label JSON 40-token seharga $0.50 per 1 Juta output menambah 40 / 1.000.000 x $0.50 = $0.00002 per permintaan di atas input, sebelum token penalaran, yang Luna tagih sebagai output pada Responses dan Decisions sama sekali tidak menagihnya. Pembingkaian yang jujur adalah "Decisions tidak menagih token output", bukan persentase. Untuk daftar harga Luna lengkap dan apa yang dilakukan prompt caching pada Responses, lihat apa itu GPT-6 Luna.
Kapan menggunakan Decisions, Structured Outputs, atau function calling
OpenAI sendiri yang menarik garisnya: gunakan Structured Outputs dengan Responses API ketika Anda membutuhkan objek yang mengikuti skema JSON Anda sendiri, seperti bidang yang diekstraksi atau penjelasan tertulis, atau function calling ketika Anda membutuhkan model untuk meminta panggilan alat dengan argumen. Decisions adalah untuk mengklasifikasikan konten, merutekan permintaan, dan memprioritaskan pekerjaan.
| Anda perlu | Gunakan |
|---|---|
| Sebuah label, probabilitas, atau tingkat keparahan dengan kepercayaan diri | Decisions API |
| Sebuah objek dalam skema JSON Anda sendiri (bidang yang diekstraksi, penjelasan) | Structured Outputs pada Responses |
| Model untuk memilih alat dan mengisi argumennya | Function calling pada Responses |
| Streaming, status percakapan, alat, caching, atau Batch | Responses API |
Enum Structured Outputs dapat mengembalikan label. Itu tidak dapat mengembalikan distribusi probabilitas atau bidang confidence kecuali Anda meminta model untuk menuliskannya, dan kemudian itu adalah teks yang dihasilkan, bukan probabilitas yang terukur. Decisions memberi Anda angka yang dapat Anda ambang. OpenAI memberitahu Anda untuk mengatur ambang batas tersebut dari contoh berlabel dalam aplikasi Anda sendiri, menimbang biaya positif palsu terhadap negatif palsu, karena tidak ada angka akurasi atau kalibrasi yang dipublikasikan. Menimbang vendor keputusan bertipe kedua? Perbandingan Decisions vs Jev mencakup harga, input, dan bentuk output secara berdampingan.
Gambar, dan peringatan base64
input menerima pesan pengguna yang kontennya mencampur bagian input_text dan input_image, dengan detail opsional berupa low, high, auto (default) atau original. Panduan tersebut menyatakan bahwa gambar harus berupa URL data base64 sebaris; URL yang dihosting dan file_id tidak didukung. Referensi API juga mencantumkan URL HTTP(S) yang dapat diakses publik, hingga 128 gambar per permintaan. Perlakukan base64 sebagai jalur yang didokumentasikan dan uji URL yang dihosting sebelum mengandalkannya.
Kontrol data
Decisions API mendukung Zero Data Retention dan penggunaan HIPAA untuk pelanggan yang memenuhi syarat. Residensial data dan pemrosesan regional didukung di Amerika Serikat dan Eropa (EEA ditambah Swiss) melalui us.api.openai.com dan eu.api.openai.com. Endpoint ini dapat dijangkau dari setiap wilayah API yang didukung, meskipun ketersediaan di suatu wilayah tidak berarti inferensi berjalan di sana. Log pemantauan penyalahgunaan disimpan hingga 30 hari secara default. Jika Anda merutekan pesan pasien, bacalah panduan kepatuhan HIPAA API kami terlebih dahulu.
Ketersediaan: beta sekarang, GA segera
Endpoint ini masuk beta publik untuk semua developer pada 2026-10-06 dan berada di bawah "Beta APIs" dalam referensi. Panduan OpenAI menyatakan GA diharapkan "dalam beberapa minggu mendatang"; tidak ada tanggal yang diberikan. Contoh SDK memerlukan Python 3.26.0, JavaScript 7.30.0, Go 3.73.0, Ruby 0.101.0 atau Java 4.78.0 atau yang lebih baru; panggilannya adalah client.decisions.create(...) di Python dan JavaScript. Playground di platform.openai.com/decisions memungkinkan Anda mencoba pertanyaan sebelum menulis kode. Tidak ada batasan tingkat spesifik Decisions yang dipublikasikan; periksa halaman batasan organisasi Anda. Tidak ada tingkatan Decisions gratis; untuk akses Luna tanpa biaya, lihat postingan rute gratis Luna kami.
Menguji panggilan Decisions di Apidog
Jawaban bertipe mudah untuk ditegaskan, itulah intinya. Tiga langkah mencakup sebagian besar tim.
Simpan kunci sekali. Letakkan OPENAI_API_KEY dalam variabel lingkungan Apidog dan referensikan {{OPENAI_API_KEY}} di header Authorization: Bearer, sehingga kunci harfiah tidak pernah masuk ke permintaan bersama.
Simpan satu permintaan per jenis pertanyaan, dengan penegasan JSONPath: status 200, $.answers[0].type sama dengan choice, $.answers[0].choice sama dengan billing, $.answers[0].confidence lebih besar dari 0.8, $.answers[?(@.name=='damaged')].probability lebih besar dari 0.9, dan $.usage.output_tokens sama dengan 0, yang menangkap kejutan tagihan sebelum faktur Anda.
Pilih ambang batas dari set yang berlabel. Bangun skenario pengujian di Apidog yang menjalankan permintaan yang sama di atas CSV teks tiket dan departemen yang diharapkan, lalu atur ambang batas rute otomatis di mana biaya positif palsu melampaui biaya antrean tinjauan. Jalankan di CI dengan Apidog CLI sehingga perubahan model atau alias menyebabkan kegagalan pengujian alih-alih kesalahan pelanggan. Panduan cara penggunaan mencakup setiap langkah, termasuk mengejek array answers agar frontend dapat dibangun sebelum router final.
FAQ
Apakah Decisions API adalah model baru? Bukan. Ini adalah sebuah endpoint, POST /v1/decisions, yang berjalan di GPT-6 Luna. Luna diluncurkan pada 2026-09-22; endpoint ini masuk beta publik pada 2026-10-06.
Berapa biaya Decisions API? $0.10 per 1 Juta token input tanpa biaya output, baca-cache, atau tulis-cache. Input di atas 272K token adalah 2x, dan pemrosesan regional menambah 10%.
Apakah ini mengembalikan skema JSON saya sendiri? Tidak. Ini mengembalikan answers dengan bidang probability, choice, atau score. Untuk skema Anda sendiri, gunakan Structured Outputs pada Responses API.
Seberapa akurat itu? OpenAI tidak mempublikasikan angka akurasi atau kalibrasi. Atur ambang batas dari data berlabel Anda sendiri; skenario pengujian LLM yang didorong data adalah cara praktisnya.
Tempat memulai
Pilih satu keputusan perutean yang dibuat aplikasi Anda hari ini dengan regex atau loop prompt-dan-parse, tulis sebagai pertanyaan choice tunggal dengan fallback other, dan jalankan di atas 50 contoh berlabel. Jika distribusi kepercayaan terpisah dengan jelas, Anda memiliki ambang batas dan pengujian. Jika tidak, pertanyaan tersebut membutuhkan kriteria yang lebih tajam. Untuk menjalankan eksperimen itu dengan permintaan dan penegasan yang disimpan, unduh Apidog dan impor curl di atas.
