Jev – rozhodovací model
MarkdownRozhodovací model Jev od TypeSafe odpovedá na typované otázky o texte alebo JSON: výber možnosti, hodnotenie na škále alebo „áno/nie“ s pravdepodobnosťami. Nie je to chat ani generovanie textu.
Úplný sprievodca
https://api.ailoot.ai/v1/systemonecurl https://api.ailoot.ai/v1/systemone \
-H "Authorization: Bearer $AILOOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "jev-latest",
"state": "Pomoc! Výplaty mi už 3 dni zlyhávajú.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Vyjadruje to naliehavosť?"
}
}
}' import json, os, urllib.request
body = {
"model": "jev-latest",
"state": "Pomoc! Výplaty mi už 3 dni zlyhávajú.",
"questions": {
"is_urgent": {"type": "noul", "instructions": "Vyjadruje to naliehavosť?"},
},
}
req = urllib.request.Request(
"https://api.ailoot.ai/v1/systemone",
data=json.dumps(body).encode(),
headers={"Authorization": "Bearer " + os.environ["AILOOT_API_KEY"],
"Content-Type": "application/json"},
)
with urllib.request.urlopen(req, timeout=60) as resp:
result = json.load(resp)
print(result["answers"]["is_urgent"]["noul"]) # 0.95const resp = await fetch("https://api.ailoot.ai/v1/systemone", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.AILOOT_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "jev-latest",
state: "Pomoc! Výplaty mi už 3 dni zlyhávajú.",
questions: {
is_urgent: { type: "noul", instructions: "Vyjadruje to naliehavosť?" },
},
}),
});
const result = await resp.json();
if (!resp.ok) throw new Error(`${resp.status} ${JSON.stringify(result)}`);
console.log(result.answers.is_urgent.noul); // 0.95{
"model": "jev-1.13.0",
"answers": {
"is_urgent": {
"type": "noul",
"noul": 0.95
}
},
"usage": { "input_tokens": 296, "output_tokens": 20 }
}Jev je rozhodovací model triedy System One od TypeSafe. Nepíše text a nevedie konverzáciu: odovzdáte mu stav (state) – text alebo JSON – a súbor otázok, a v odpovedi dostanete typované hodnoty s pravdepodobnosťami. Kód podľa nich môže okamžite vetviť, triediť a smerovať bez analýzy voľného textu.
Všetky otázky jednej požiadavky sa vyhodnocujú paralelne a nezávisle od seba nad tým istým state. Podľa TypeSafe pridávanie otázok takmer nemení čas odpovede a otázky sa navzájom neovplyvňujú.
| Čo | Stručne |
|---|---|
| Model | jev-latest – alias najnovšej stabilnej verzie Jev; karta v katalógu |
| Metóda | POST /v1/systemone. Nie je to chat: formáty OpenAI, Anthropic a Gemini nie sú pre Jev vhodné. Odpoveď príde celá ako jeden JSON |
| Čo prijíma | Iba text: reťazec, objekt JSON alebo pole textov. Obrázky, zvuk a video najprv preveďte na text |
| Kontext | 64K tokenov na požiadavku – state a všetky otázky spolu; state s najdlhšou otázkou najviac 32K |
| Jazyk | Podľa TypeSafe model pracuje najpresnejšie v angličtine; prijíma aj iné jazyky, ale s nižšou presnosťou – overte si ju na vlastných údajoch |
| Cena | Vstup $0.084 za 1 milión tokenov, výstup zadarmo |
Požiadavka
Autorizácia
- Authorizationheaderpovinné
Kľúč Ailoot vo formáte
Bearer sk-….
Telo požiadavky
- modelstringpovinné
jev-latest. - statestring | object | arraypovinné
Čo vyhodnotiť: reťazec s textom alebo JSON – požiadavku zákazníka, záznam z databázy, korešpondenciu, aktuálny stav vašej aplikácie. Objekt so zrozumiteľnými názvami polí je zvyčajne praktickejší než jeden reťazec.
- questionsobjectpovinné
Otázky. Kľúče si vyberáte sami, odpovede prídu pod rovnakými kľúčmi; kľúč odpoveď neovplyvňuje – samotná otázka sa zadáva v
instructions. - questions.*.typestringpovinné
noul,choicealeboscore– pozri nižšie. - questions.*.instructionsstring | object | arraypovinné
Samotná otázka. Dlhú otázku s údajmi možno odovzdať ako objekt: otázku v jednom poli a údaje v ostatných; na polia odkazujte ich názvom v spätných apostrofoch.
- questions.*.criteriaobject | array
Možnosti odpovede, odlišné pre každý typ: opisy „áno“ a „nie“ pri noul (voliteľné), slovník možností pri choice, zoradený zoznam úrovní pri score.
Typy otázok
| Typ | Na čo sa pýta | Čo vracia |
|---|---|---|
noul | Platí tvrdenie: áno alebo nie | noul – pravdepodobnosť „áno“ od 0 do 1 |
choice | Ktorá zo zadaných možností je vhodná | choice, probabilities, confidence |
score | Kde sa state nachádza na vašej škále úrovní | score, legend, probabilities, confidence |
V jednej požiadavke možno kombinovať rôzne typy.
noul – áno alebo nie
Pole criteria je voliteľné: možno v ňom opísať, čo znamená „áno“ (true) a „nie“ (false). Odpoveď noul – číslo od 0 (nie) do 1 (áno).
"is_urgent": {
"type": "noul",
"instructions": "Vyjadruje to naliehavosť?",
"criteria": {
"true": "Výslovná časová naliehavosť",
"false": "Bez vyjadrenej naliehavosti"
}
}"is_urgent": {
"type": "noul",
"noul": 0.95
}choice – výber možnosti
criteria – slovník „možnosť → opis“; ak opis nepotrebujete, uveďte null. Najviac 255 možností. V odpovedi choice – najpravdepodobnejšia možnosť, probabilities – pravdepodobnosť každej možnosti (súčet je 1), confidence – miera istoty od 0 do 1.
"department": {
"type": "choice",
"instructions": "Ktorý tím by to mal riešiť?",
"criteria": {
"billing": "Platby, fakturácia, vrátenie peňazí",
"technical": "Chyby, výpadky, integrácie",
"sales": "Ceny, prechod na vyšší plán, noví zákazníci"
}
}"department": {
"type": "choice",
"choice": "billing",
"probabilities": { "billing": 0.88, "technical": 0.12, "sales": 0.0 },
"confidence": 0.81
}score – hodnotenie na škále
criteria – úrovne od najnižšej po najvyššiu, najviac 10 (TypeSafe odporúča aspoň dve). V odpovedi score – hodnota vážená pravdepodobnosťami úrovní (môže ležať medzi úrovňami), legend – číslo úrovne a jej opis, probabilities a confidence. Podľa TypeSafe score je vhodné na porovnanie s prahom, ale nie na určenie presného čísla medzi úrovňami.
"frustration": {
"type": "score",
"instructions": "Ako veľmi je zákazník frustrovaný?",
"criteria": ["Pokojný", "Frustrovaný", "Veľmi nahnevaný"]
}"frustration": {
"type": "score",
"score": 1.05,
"legend": { "0": "Pokojný", "1": "Frustrovaný", "2": "Veľmi nahnevaný" },
"probabilities": { "0": 0.0, "1": 0.95, "2": 0.05 },
"confidence": 0.92
}Odpoveď
- modelstring
Verzia modelu, ktorá odpovedala. Alias jev-latest sa časom presúva na nové verzie: ak ste nastavili prahy
confidencepre konkrétnu verziu, sledujte toto pole. - answersobject
Jedna odpoveď na každú otázku pod rovnakými kľúčmi. Každá odpoveď má
type, pri choice a score navyšeconfidence. - usageobject
input_tokensaoutput_tokens. Účtujú sa iba vstupné tokeny.
Viac otázok v jednej požiadavke
Všetky otázky k jednému state odošlite v jednej požiadavke: vyhodnotia sa paralelne a state sa odovzdá iba raz. Podľa TypeSafe bola v ich príklade s 13 otázkami jedna spoločná požiadavka 12,2-krát lacnejšia a 10-krát rýchlejšia než 13 samostatných požiadaviek odoslaných postupne, pri rovnakých odpovediach.
Zložité posúdenie je lepšie rozdeliť na jednoduché otázky a odpovede spojiť v kóde: napríklad namiesto „vyhodnoť žiadosť“ samostatne ohodnotiť trh, realizovateľnosť a odlišnosti od konkurencie. Váhy potom meníte v kóde, nie v texte otázky.
{
"model": "jev-latest",
"state": "Pomoc! Výplaty mi už 3 dni zlyhávajú.",
"questions": {
"department": {
"type": "choice",
"instructions": "Ktorý tím by to mal riešiť?",
"criteria": {
"billing": "Platby, fakturácia, vrátenie peňazí",
"technical": "Chyby, výpadky, integrácie",
"sales": "Ceny, prechod na vyšší plán, noví zákazníci"
}
},
"frustration": {
"type": "score",
"instructions": "Ako veľmi je zákazník frustrovaný?",
"criteria": ["Pokojný", "Frustrovaný", "Veľmi nahnevaný"]
},
"is_urgent": {
"type": "noul",
"instructions": "Vyjadruje to naliehavosť?"
}
}
}Kedy sa hodí
- Smerovanie. Odoslať požiadavku zákazníka správnemu oddeleniu a požiadavku správnemu spracovateľovi: jednoduchému kódu, veľkému modelu alebo človeku.
- Triedenie a určovanie priorít. Naliehavosť, tón, riziko – na škále, s prahmi v kóde.
- Moderovanie a kontroly. Či správa porušuje pravidlá, či zdroj potvrdzuje citát, či dokument obsahuje odpoveď na otázku – ešte pred ďalším spracovaním textu.
- Skórovanie a zoraďovanie. Ohodnotiť dokumenty, kandidátov alebo nájdené úryvky podľa vlastných kritérií a v kóde rozhodnúť, čo pôjde ďalej.
- Namiesto nespoľahlivého „vráť JSON“. Volanie, ktoré už zo svojej podstaty vracia typované hodnoty namiesto textu, ktorý treba parsovať.
Kedy sa nehodí
- Chat, odpovede používateľovi, generovanie textu alebo kódu. Jev nepíše text – na to slúžia textové modely.
- Model pre Claude Code, Cursor a ďalších agentov. Model agenta nemožno nahradiť modelom jev-latest: agent potrebuje model, ktorý píše text a volá nástroje. Jev možno volať z kódu, ktorý pre vás agent napíše.
- Aritmetika, počítanie, porovnávanie dátumov. Podľa TypeSafe je spoľahlivejšie robiť to v kóde a modelu nechať iba významovú časť – napríklad extrahovať časti dátumu cez choice.
- Obrázky, zvuk a video. Model prijíma iba text – takéto údaje vopred preveďte na text.
Cena
Účtujú sa iba vstupné tokeny – pole usage.input_tokens v odpovedi: $0.084 za 1 milión. Výstupné tokeny sú zadarmo.
Požiadavka z príkladu na tejto stránke (296 vstupných tokenov) stojí menej ako $0.0001.
Pred požiadavkou Ailoot rezervuje sumu zo zostatku a po odpovedi ju jednorazovo zaúčtuje podľa skutočnej spotreby – ako to funguje.
Limity
| Čo | Limit |
|---|---|
| Celá požiadavka: state a všetky otázky | 64K tokenov |
| state s najdlhšou otázkou | 32K tokenov |
| Možností v jednom choice | najviac 255 |
| Úrovní v jednom score | od 2 do 10 |
| Vstup | iba text: reťazec, objekt JSON alebo pole textov |
Limity modelu sú podľa údajov TypeSafe. Obmedzenia vášho kľúča a zostatku platia rovnako ako pri každom modeli Ailoot: Chyby a limity.
Chyby
Chyby prichádzajú v spoločnom formáte Ailoot API: kód, zrozumiteľný text a Request ID. Pri tejto metóde sa najčastejšie vyskytujú:
| Kód | Kedy | Čo robiť |
|---|---|---|
400 invalid_request | Telo neprešlo kontrolou: chýba state, model alebo questions, neznámy type, pri choice viac ako 255 možností, pri score viac ako 10 úrovní | Opravte požiadavku podľa textu chyby: bez opravy opäť neprejde |
400 context_length_exceeded | state a otázky spolu prekračujú limit modelu | Odfiltrujte state v kóde a ponechajte údaje potrebné pre otázky |
401 invalid_api_key | Kľúč chýba alebo je nesprávny | Odovzdajte kľúč v hlavičke Authorization |
402 insufficient_balance | Voľný zostatok nestačí na rezerváciu | Dobite si kredit |
404 model_not_found, unsupported_endpoint | Nesprávne ID alebo model zavolaný nesprávnou metódou, napríklad cez /v1/chat/completions | jev-latest volajte iba cez POST /v1/systemone |
429 rate_limit_exceeded | Príliš veľa požiadaviek | Počkajte počet sekúnd uvedený v hlavičke Retry-After a skúste znova |
503 model_overloaded, model_unavailable | Model je dočasne preťažený alebo nedostupný | Ak je X-Should-Retry: true, skúste znova po počte sekúnd z Retry-After; ak false, najprv overte Request ID v histórii |
504 model_timeout | Model neodpovedal včas | Požiadavku neposielajte znova, kým neoveríte Request ID v histórii |
Úplný zoznam kódov je na stránke Chyby a limity.