Ý nghĩa của từng trường
Yêu cầu xác định các câu hỏi và định dạng trả lời. Phản hồi trả về một kết quả cho từng câu hỏi. Dưới đây là các trường JSON được dùng trong ví dụ.
Các trường yêu cầu
model- ID mô hình. Ví dụ này cố định phiên bản Jev 1.13 để phiên bản được sử dụng luôn rõ ràng.
state- Văn bản hoặc dữ liệu có cấu trúc cần đánh giá, chẳng hạn như tin nhắn gửi tới bộ phận hỗ trợ.
questions- Danh sách các quyết định được đặt tên. Những tên này cũng xuất hiện trong trường answers của phản hồi.
<question_id>- Tên như action hoặc urgency; câu trả lời sẽ dùng đúng tên đó.
type- Định dạng câu trả lời: choice chọn một phương án, score đánh giá theo thang mức có thứ tự, còn noul xử lý câu hỏi có/không.
instructions- Nội dung đánh giá cụ thể mà bạn yêu cầu mô hình thực hiện.
criteria- Các phương án Choice được phép, các mức Score theo thứ tự hoặc ý nghĩa của false và true trong Noul.
Trường phản hồi
answers- Một kết quả cho mỗi câu hỏi, được trả về dưới cùng một tên.
choice- Khóa phương án do choice chọn: phương án có xác suất cao nhất.
probabilities- Xác suất của từng phương án; tổng các giá trị này bằng 1.
confidence- Giá trị độ tin cậy riêng được tính từ phân bố xác suất; đây không phải xác suất của phương án được chọn.
score- Vị trí trên thang có thứ tự được tính theo xác suất; có thể nằm giữa hai mức.
legend- Ánh xạ vị trí số của Score về phần mô tả các mức do bạn xác định.
noul- Một số từ 0 (không) đến 1 (có) cho câu hỏi có/không.
Một ngữ cảnh chung, ba câu hỏi độc lập: Choice, Score và Probability. Mỗi lần chạy sẽ dùng một lượt trong hạn mức hằng ngày. Một câu trả lời được định dạng đúng vẫn có thể sai. Kiểm tra các trường hợp đại diện và đặt ngưỡng định tuyến cho quy trình làm việc của riêng bạn.
TypeScript phía máy chủ
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);