En oberoende guide och community för utvecklare
Officiell information om Jev: typesafe.ai

Testa Jev gratis

Ställ en fråga eller tre olika frågor om samma situation. Välj ett exempel, ändra indata och granska de strukturerade svaren.

Utforska projekt på GitHub
01 / Välj ett beslut

Börja med ett konkret exempel

typesafe/jev-1.13

Utforska en svarstyp i taget. Varje körning använder ett av dagens försök.

1. Choice
questions.decision
Förhandsgranska API-anropet

Förhandsvisningen innehåller varken API-nyckel eller verifieringstoken. Varje fråge-ID får ett svar med samma namn.

{
  "model": "typesafe/jev-1.13",
  "state": {
    "input": "Jag debiterades två gånger för mitt abonnemang. Kan du hjälpa till?"
  },
  "questions": {
    "decision": {
      "type": "choice",
      "instructions": "Vilket team ska hantera detta?",
      "criteria": {
        "billing": "Betalningar och återbetalningar",
        "technical": "Fel och integrationer",
        "general": "Andra ärenden"
      }
    }
  }
}

Varje konto har 6 kostnadsfria försök per UTC-dygn; de återställs kl. 00:00 UTC. Webbplatsens dagliga kapacitet är begränsad. Din inmatning skickas till OpenRouter; vi sparar användningsdata men inte det du skriver.

02 / Läs svaret

Redo när du är det

Kör ett exempel för att få ett strukturerat svar per fråga: Choice väljer ett alternativ, Score placerar resultatet på en skala och Probability ger ett värde mellan 0 och 1.

Hur man integrerar

Lägg till Jev i din kod.

Formuläret skickar din text som state.input tillsammans med en eller tre namngivna frågor. Varje resultat finns under answers.<question_id>.

Vad varje fält betyder

Förfrågan definierar frågorna och svarsformaten. Svaret returnerar ett resultat för var och en. Här är JSON-fälten som används i exemplet.

Begäran fält

model
Modell-ID. Exemplet låser versionen till Jev 1.13 så att modellversionen är explicit.
state
Text eller strukturerade data som ska bedömas, till exempel ett meddelande till kundsupport.
questions
En uppsättning namngivna beslut. Samma namn används under answers i svaret.
<question_id>
Ett namn som action eller urgency; svaret använder samma namn.
type
Svarsformatet: choice väljer ett alternativ, score bedömer på en ordnad skala och noul besvarar en ja/nej-fråga.
instructions
Den specifika bedömning du vill att modellen ska göra.
criteria
Tillåtna Choice-alternativ, ordnade Score-nivåer eller betydelsen av false och true för Noul.

Svarsfält

answers
Ett resultat per fråga, returneras under samma namn.
choice
Den valda nyckeln i choice: alternativet med högst sannolikhet.
probabilities
Sannolikheten för varje valalternativ; dessa värden summerar till 1.
confidence
Ett separat konfidensvärde beräknat från sannolikhetsfördelningen; det är inte det valda alternativets sannolikhet.
score
En position på en ordnad skala, viktad efter sannolikhet; den kan hamna mellan två nivåer.
legend
Kopplingen mellan numeriska Score-positioner och beskrivningarna av de nivåer du angav.
noul
Ett tal från 0 (nej) till 1 (ja) för en ja/nej-fråga.

Samma kontext, tre oberoende frågor: Choice, Score och Probability. Varje körning använder ett av dagens försök. Ett svar med korrekt format kan fortfarande vara fel. Testa representativa fall och ange routingtrösklar som passar ditt arbetsflöde.

Endpoint

OpenRouter

Här anropas en fast Jev-version via OpenRouter. Kontrollera modellsidan för aktuella priser och tillgänglighet.

Endpoint
POST https://openrouter.ai/api/alpha/decisions
model
typesafe/jev-1.13
API-nyckel
Skicka API-nyckeln från servern som en Bearer-token.
OpenRouter ↗
Officiellt direkt-API

TypeSafe

TypeSafe har en egen slutpunkt och egna API-nycklar. Den officiella snabbstarten använder jev-latest och visar hur flera frågor skickas i ett anrop.

Endpoint
POST https://api.typesafe.ai/v1/systemone
model
jev-latest
API-nyckel
Skicka API-nyckeln från servern som en Bearer-token.

TypeScript på serversidan

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);
Läs svaret

Tre frågetyper, tre svarsformat

Välj den svarstyp som din kod behöver. Om du skickar flera frågor får varje fråge-ID ett eget resultat.

TypeSafe: Choice · Score · Noul ↗

Choice

choice · probabilities · confidence

Den valda nyckeln i choice: alternativet med högst sannolikhet.

Score

score · legend · probabilities · confidence

En position på en ordnad skala, viktad efter sannolikhet; den kan hamna mellan två nivåer.

Noul

noul

Ett tal från 0 (nej) till 1 (ja) för en ja/nej-fråga.

Innan du använder den i produktionen

Testa med representativa supportärenden före produktionsbruk, registrera modellversionen och skicka osäkra eller konsekvensrika fall till manuell granskning. Värdet 0,8 är bara ett exempel.