Her alanın anlamı
İstek, soru ve cevap formatlarını tanımlar. Yanıt her biri için bir sonuç döndürür. Örnekte kullanılan JSON alanları aşağıda verilmiştir.
Talep alanları
model- Model kimliği. Bu örnek Jev 1.13'ü sabitliyor, böylece sürümü açıkça görülüyor.
state- Destek mesajı gibi değerlendirilecek metin veya yapılandırılmış veriler.
questions- Adlandırılmış kararlar kümesi. Aynı adlar yanıttaki answers alanında kullanılır.
<question_id>- action veya urgency gibi bir ad; yanıt da aynı adı kullanır.
type- Yanıt biçimi: choice bir seçenek seçer, score sıralı bir ölçeği puanlar, noul ise evet/hayır sorusunu değerlendirir.
instructions- Modelin vermesini istediğiniz spesifik karar.
criteria- Choice seçenekleri, sıralı Score düzeyleri veya Noul için false ve true değerlerinin anlamı.
Yanıt alanları
answers- Soru başına bir sonuç, aynı adla döndürülür.
choice- choice tarafından seçilen seçenek anahtarı: olasılığı en yüksek seçenek.
probabilities- Her seçenek için olasılık; bu değerlerin toplamı 1’dir.
confidence- Olasılık dağılımından hesaplanan ayrı bir güven değeri; seçilen seçeneğin olasılığı değildir.
score- Olasılıklara göre ağırlıklandırılmış sıralı ölçek konumu; iki seviye arasında olabilir.
legend- Sayısal Score konumlarının tanımladığınız düzey açıklamalarıyla eşleştirilmesi.
noul- Evet/hayır sorusu için 0'dan (hayır) 1'e (evet) kadar bir sayı.
Aynı bağlam için üç bağımsız soru: Choice, Score ve Probability. Her çalıştırma günlük hakkınızdan birini kullanır. Doğru şekillendirilmiş bir cevap yine de yanlış olabilir. Temsili durumları test edin ve kendi iş akışınız için yönlendirme eşiklerini ayarlayın.
Sunucu tarafı TypeScript
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);