Hva hvert felt betyr
Forespørselen definerer spørsmålene og svarformatene. Svaret gir et resultat for hver enkelt. Her er JSON-feltene brukt i eksemplet.
Forespørselsfelt
model- Modell-ID. Eksemplet låser modellversjonen til Jev 1.13, slik at versjonen er tydelig angitt.
state- Tekst eller strukturerte data som skal vurderes, for eksempel en melding til kundestøtte.
questions- Et sett med navngitte avgjørelser. De samme navnene brukes under answers i svaret.
<question_id>- Et navn som action eller urgency; svaret bruker det samme navnet.
type- Svarformatet: choice velger et alternativ, score vurderer på en ordnet skala, og noul vurderer et ja/nei-spørsmål.
instructions- Den spesifikke vurderingen du vil at modellen skal ta.
criteria- Tillatte Choice-alternativer, ordnede Score-nivåer eller betydningen av false og true for Noul.
Svarfelt
answers- Ett resultat per spørsmål, returnert under samme navn.
choice- Den valgte nøkkelen i choice: alternativet med høyest sannsynlighet.
probabilities- Sannsynligheten for hvert valgalternativ; disse verdiene summerer til 1.
confidence- En egen konfidensverdi beregnet fra sannsynlighetsfordelingen; det er ikke det valgte alternativets sannsynlighet.
score- En posisjon på en ordnet skala vektet etter sannsynlighet; den kan ligge mellom to nivåer.
legend- Koblingen mellom numeriske Score-posisjoner og beskrivelsene av nivåene du definerte.
noul- Et tall fra 0 (nei) til 1 (ja) for et ja/nei-spørsmål.
Samme kontekst, tre uavhengige spørsmål: Choice, Score og Probability. Hver kjøring bruker ett av dagens forsøk. Et riktig utformet svar kan fortsatt være feil. Test representative tilfeller og sett rutingterskler for din egen arbeidsflyt.
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);