Arti setiap bidang
Permintaan menentukan pertanyaan dan format jawaban. Respons mengembalikan satu hasil untuk setiap pertanyaan. Berikut bidang JSON yang digunakan dalam contoh.
Bidang permintaan
model- ID model. Contoh ini menetapkan versi Jev 1.13 agar versi yang digunakan selalu jelas.
state- Teks atau data terstruktur yang akan dievaluasi, misalnya pesan kepada tim dukungan.
questions- Kumpulan keputusan yang diberi nama. Nama yang sama digunakan dalam bidang answers pada respons.
<question_id>- Nama seperti action atau urgency; jawaban memakai nama yang sama.
type- Format jawaban: choice memilih satu opsi, score menilai pada skala berurutan, dan noul mengevaluasi pertanyaan ya/tidak.
instructions- Penilaian spesifik yang ingin Anda minta dari model.
criteria- Opsi Choice yang diizinkan, tingkat Score yang berurutan, atau arti false dan true untuk Noul.
Bidang respons
answers- Satu hasil per pertanyaan, dikembalikan dengan nama yang sama.
choice- Kunci opsi yang dipilih oleh choice: opsi dengan probabilitas tertinggi.
probabilities- Probabilitas untuk setiap opsi; seluruh nilainya berjumlah 1.
confidence- Nilai keyakinan tersendiri yang dihitung dari distribusi probabilitas; ini bukanlah probabilitas pilihan yang dipilih.
score- Posisi pada skala berurutan yang dibobot menurut probabilitas; nilainya bisa berada di antara dua tingkat.
legend- Pemetaan posisi angka Score kembali ke deskripsi tingkat yang Anda tentukan.
noul- Angka dari 0 (tidak) hingga 1 (ya) untuk pertanyaan ya/tidak.
Satu konteks yang sama, tiga pertanyaan terpisah: Choice, Score, dan Probability. Setiap kali menjalankan contoh, jatah harian berkurang satu. Jawaban dengan format yang benar masih bisa salah. Uji kasus yang representatif dan tetapkan ambang routing yang sesuai dengan alur kerja Anda.
TypeScript sisi server
TypeScript · fetch// Run on your server. Keep the API key out of browser code.
const apiKey = process.env.OPENROUTER_API_KEY;
if (!apiKey) throw new Error("Set OPENROUTER_API_KEY");
const response = await fetch("https://openrouter.ai/api/alpha/decisions", {
method: "POST",
headers: {
Authorization: "Bearer " + apiKey,
"Content-Type": "application/json"
},
body: JSON.stringify({
model: "typesafe/jev-1.13",
state: {input: "A customer reports a duplicate charge."},
questions: {
team: {
type: "choice",
instructions: "Which team should handle this?",
criteria: {
billing: "Payments and refunds",
technical: "Bugs and integrations"
}
},
urgency: {
type: "score",
instructions: "How urgent is the issue?",
criteria: ["Can wait", "Needs attention today", "Immediate action"]
},
escalate: {
type: "noul",
instructions: "Should a human review this first?",
criteria: {false: "No review needed", true: "Review before acting"}
}
}
})
});
if (!response.ok) throw new Error("Decision request failed");
const {answers} = await response.json();
console.log(answers.team.choice, answers.urgency.score, answers.escalate.noul);