Pomen posameznih polj
V zahtevi določite vprašanja in oblike odgovorov. Odgovor vsebuje rezultat za vsako vprašanje. Spodaj so razložena polja JSON iz primera.
Polja zahteve
model- ID modela. V primeru je navedena različica Jev 1.13.
state- Besedilo ali strukturirani podatki za oceno, denimo sporočilo uporabnika.
questions- Objekt s poimenovanimi vprašanji. Ista imena se pojavijo v polju answers.
<question_id>- Ime, na primer action ali urgency; odgovor uporablja isto ime.
type- Oblika odgovora: choice izbere možnost, score ocenjuje po urejeni lestvici, noul pa odgovori na vprašanje da/ne.
instructions- Natančno opredeljena presoja, ki jo mora opraviti model.
criteria- Dovoljene možnosti Choice, urejene ravni Score ali pomen false in true za Noul.
Polja odgovora
answers- Po en rezultat za vsako vprašanje, pod istim imenom.
choice- Ključ izbrane možnosti, ki ima najvišjo verjetnost.
probabilities- Verjetnost za vsako možnost; skupna vsota je 1.
confidence- Ločena ocena zaupanja, izračunana iz porazdelitve verjetnosti. Ni enaka verjetnosti izbrane možnosti.
score- Položaj na urejeni lestvici, utežen z verjetnostmi; lahko leži med dvema ravnema.
legend- Povezava številskih položajev Score z opisi ravni, ki si jih določil.
noul- Število od 0 (ne) do 1 (da) za vprašanje da/ne.
Isti kontekst, tri neodvisna vprašanja: Choice, Score in Probability. Vsak zagon porabi en dnevni poskus. Tudi pravilno oblikovan odgovor je lahko napačen. Preizkusite reprezentativne primere in nastavite pragove za svoj potek dela.
TypeScript na strani strežnika
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);