Hvad betyder hvert felt
Anmodningen definerer spørgsmålene og svarformaterne. Svaret returnerer et resultat for hver enkelt. Her er JSON-felterne brugt i eksemplet.
Anmodningsfelter
model- Model-id. Eksemplet låser modelversionen til Jev 1.13, så versionen er tydelig angivet.
state- Den tekst eller de strukturerede data, der skal vurderes, f.eks. en supportbesked.
questions- Et sæt navngivne beslutninger. De samme navne bruges under answers i svaret.
<question_id>- Et navn som action eller urgency; svaret bruger samme navn.
type- Svarformatet: choice vælger en mulighed, score vurderer på en ordnet skala, og noul besvarer et ja/nej-spørgsmål.
instructions- Den konkrete vurdering, du ønsker, at modellen skal foretage.
criteria- De mulige Choice-svar, ordnede Score-niveauer eller betydningen af false og true for Noul.
Svarfelter
answers- Et resultat pr. spørgsmål, returneret under samme navn.
choice- Den valgte nøgle i choice: muligheden med den højeste sandsynlighed.
probabilities- Sandsynligheden for hver valgmulighed; disse værdier summer til 1.
confidence- En separat konfidensværdi beregnet ud fra sandsynlighedsfordelingen; det er ikke den valgte muligheds sandsynlighed.
score- En position på den ordnede skala vægtet efter sandsynlighed; den kan ligge mellem to niveauer.
legend- Sammenhængen mellem de numeriske Score-positioner og beskrivelserne af dine niveauer.
noul- Et tal fra 0 (nej) til 1 (ja) for et ja/nej-spørgsmål.
Én fælles kontekst, tre uafhængige spørgsmål: Choice, Score og Probability. Hver kørsel bruger ét af dagens forsøg. Et korrekt udformet svar kan stadig være forkert. Test repræsentative cases, og indstil routingtærskler for din egen arbejdsgang.
TypeScript på serversiden
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);