Jev — döntési modell
MarkdownA TypeSafe Jev döntési modellje szövegről vagy JSON-ról feltett típusos kérdésekre válaszol: lehetőséget választ, skálán értékel vagy „igen/nem” választ ad valószínűségekkel. Nem csevegésre vagy szöveggenerálásra szolgál.
Teljes útmutató
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": "Segítség! Már 3 napja sikertelenek a kifizetéseim.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Sürgősséget fejez ki ez?"
}
}
}' import json, os, urllib.request
body = {
"model": "jev-latest",
"state": "Segítség! Már 3 napja sikertelenek a kifizetéseim.",
"questions": {
"is_urgent": {"type": "noul", "instructions": "Sürgősséget fejez ki ez?"},
},
}
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: "Segítség! Már 3 napja sikertelenek a kifizetéseim.",
questions: {
is_urgent: { type: "noul", instructions: "Sürgősséget fejez ki ez?" },
},
}),
});
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 }
}A Jev a TypeSafe System One osztályú döntési modellje. Nem ír szöveget és nem folytat párbeszédet: Ön egy állapotot (state) — szöveget vagy JSON-t — és egy kérdéscsomagot ad meg, válaszként pedig típusos értékeket kap valószínűségekkel. Ezek alapján a kód közvetlenül elágazhat, rendezhet és útválasztást végezhet, szabad szöveg feldolgozása nélkül.
Egy kérés minden kérdését párhuzamosan és egymástól függetlenül értékeljük, ugyanazon statealapján. A TypeSafe szerint további kérdések hozzáadása alig változtatja meg a válaszidőt, és a kérdések nem zavarják egymást.
| Jellemző | Röviden |
|---|---|
| Modell | jev-latest — a Jev legújabb stabil verziójának aliasa; adatlap a katalógusban |
| Metódus | POST /v1/systemone. Ez nem csevegés: az OpenAI, Anthropic és Gemini formátumai nem használhatók a Jevhez. A válasz egészben, egyetlen JSON-ként érkezik |
| Elfogadott bemenet | Csak szöveg: karakterlánc, JSON-objektum vagy szövegek tömbje. A képeket, hangot és videót előbb alakítsa szöveggé |
| Kontextus | 64K token kérésenként — a state és az összes kérdés együtt; a state a leghosszabb kérdéssel együtt legfeljebb 32K |
| Nyelv | A TypeSafe szerint a modell angolul a legpontosabb; más nyelveket is elfogad, de kisebb pontossággal — ellenőrizze a saját adatain |
| Ár | Bemenet: $0.084 1 millió tokenért, a kimenet ingyenes |
Kérés
Hitelesítés
- Authorizationheaderkötelező
Ailoot-kulcs a következő formátumban:
Bearer sk-….
A kérés törzse
- modelstringkötelező
jev-latest. - statestring | object | arraykötelező
Értékelendő tartalom: szöveges karakterlánc vagy JSON — ügyfélmegkeresés, adatbázisrekord, levelezés, az alkalmazása aktuális állapota. Az érthető mezőnevekkel rendelkező objektum általában kényelmesebb egyetlen karakterláncnál.
- questionsobjectkötelező
Kérdések. A kulcsokat Ön választja, a válaszok ugyanazon kulcsok alatt érkeznek; a kulcs nem befolyásolja a választ — magát a kérdést ebben a mezőben adja meg:
instructions. - questions.*.typestringkötelező
noul,choicevagyscore— lásd alább. - questions.*.instructionsstring | object | arraykötelező
Maga a kérdés. Hosszú, adatokat is tartalmazó kérdést objektumként is megadhat: a kérdés az egyik mezőben, az adatok a többiben; a mezőkre a nevükkel, backtick jelek között hivatkozzon.
- questions.*.criteriaobject | array
Válaszlehetőségek, típusonként eltérően: az „igen” és „nem” leírása noul esetén (nem kötelező), a lehetőségek szótára choice esetén, rendezett szintlista score esetén.
Kérdéstípusok
| Típus | Mit kérdez? | Mit ad vissza? |
|---|---|---|
noul | Igaz-e az állítás: igen vagy nem | noul — az „igen” valószínűsége 0 és 1 között |
choice | Melyik megadott lehetőség illik rá? | choice, probabilities, confidence |
score | Hol helyezkedik el a state az Ön szintskáláján? | score, legend, probabilities, confidence |
Egy kérésen belül a típusok vegyesen is használhatók.
noul — igen vagy nem
Mező: criteria — nem kötelező: leírhatja benne, mit jelent az „igen” (true) és a „nem” (false). A válaszban a noul értéke 0 (nem) és 1 (igen) közötti szám.
"is_urgent": {
"type": "noul",
"instructions": "Sürgősséget fejez ki ez?",
"criteria": {
"true": "Kifejezetten időérzékeny",
"false": "Nem fejez ki sürgősséget"
}
}"is_urgent": {
"type": "noul",
"noul": 0.95
}choice — lehetőség kiválasztása
criteria — „lehetőség → leírás” szótár; ha nem szükséges leírás, adja meg ezt: null. Legfeljebb 255 lehetőség. A válaszban a choice a legvalószínűbb lehetőség, a probabilities az egyes lehetőségek valószínűsége (összegük 1), a confidence pedig a bizonyosság 0 és 1 között.
"department": {
"type": "choice",
"instructions": "Melyik csapatnak kell ezt kezelnie?",
"criteria": {
"billing": "Fizetések, számlázás, visszatérítések",
"technical": "Hibák, leállások, integrációk",
"sales": "Árazás, magasabb csomagra váltás, új ügyfelek"
}
}"department": {
"type": "choice",
"choice": "billing",
"probabilities": { "billing": 0.88, "technical": 0.12, "sales": 0.0 },
"confidence": 0.81
}score — értékelés skálán
criteria — szintek az alacsonyabbtól a magasabb felé, legfeljebb 10 (a TypeSafe legalább kettőt javasol). A válaszban a score a szintek valószínűségével súlyozott érték (szintek közé is eshet), a legend a szint száma és leírása, továbbá probabilities és confidence. A TypeSafe szerint a score küszöbértékkel való összehasonlításra alkalmas, de a szintek közötti pontos szám meghatározására nem.
"frustration": {
"type": "score",
"instructions": "Mennyire frusztrált az ügyfél?",
"criteria": ["Nyugodt", "Frusztrált", "Nagyon dühös"]
}"frustration": {
"type": "score",
"score": 1.05,
"legend": { "0": "Nyugodt", "1": "Frusztrált", "2": "Nagyon dühös" },
"probabilities": { "0": 0.0, "1": 0.95, "2": 0.05 },
"confidence": 0.92
}Válasz
- modelstring
A válaszoló modell verziója. A jev-latest alias idővel új verziókra vált: ha a
confidenceküszöbértékeit egy adott verzióhoz állította be, figyelje ezt a mezőt. - answersobject
Kérdésenként egy válasz, ugyanazon kulcsok alatt. Minden válasz tartalmazza a
typemezőt, a choice és score esetén ezenfelül aconfidence. - usageobject
input_tokensésoutput_tokens. Csak a bemeneti tokenek díjkötelesek.
Több kérdés egy kérésben
Ugyanahhoz a state értékhez az összes kérdést egy kérésben tegye fel: párhuzamosan értékeljük őket, a state pedig csak egyszer kerül elküldésre. A TypeSafe szerint a 13 kérdéses példájukban egy közös kérés 12,2-szer olcsóbb és 10-szer gyorsabb volt, mint 13 külön kérés egymás utáni elküldése, azonos válaszok mellett.
Az összetett megítélést érdemes egyszerű kérdésekre bontani, és a válaszokat a kódban összesíteni: például az „értékeld a pályázatot” helyett külön értékelni a piacot, a megvalósíthatóságot és a versenytársaktól való eltéréseket. A súlyok így a kódban változnak, nem a kérdés szövegében.
{
"model": "jev-latest",
"state": "Segítség! Már 3 napja sikertelenek a kifizetéseim.",
"questions": {
"department": {
"type": "choice",
"instructions": "Melyik csapatnak kell ezt kezelnie?",
"criteria": {
"billing": "Fizetések, számlázás, visszatérítések",
"technical": "Hibák, leállások, integrációk",
"sales": "Árazás, magasabb csomagra váltás, új ügyfelek"
}
},
"frustration": {
"type": "score",
"instructions": "Mennyire frusztrált az ügyfél?",
"criteria": ["Nyugodt", "Frusztrált", "Nagyon dühös"]
},
"is_urgent": {
"type": "noul",
"instructions": "Sürgősséget fejez ki ez?"
}
}
}Mikor használható?
- Útválasztás. A megkeresés megfelelő osztályhoz, a kérés megfelelő feldolgozóhoz irányítása: egyszerű kódhoz, nagy modellhez vagy emberhez.
- Rendezés és prioritás. Sürgősség, hangnem, kockázat — skálán értékelve, a kódban megadott küszöbökkel.
- Moderálás és ellenőrzések. Sérti-e az üzenet a szabályokat, alátámasztja-e a forrás az idézetet, megtalálható-e a dokumentumban a kérdésre adott válasz — mielőtt a szöveg továbbhaladna.
- Pontozás és rangsorolás. Dokumentumok, jelöltek vagy megtalált szövegrészletek értékelése saját szempontrendszer alapján, majd döntés a kódban a folytatásról.
- A sérülékeny „adj vissza JSON-t” helyett. Olyan hívás, amely felépítéséből adódóan típusos értékeket ad vissza, nem pedig feldolgozandó szöveget.
Mikor nem használható?
- Csevegés, válaszok a felhasználónak, szöveg- vagy kódgenerálás. A Jev nem ír szöveget — erre szolgálnak a szöveges modellek.
- Modell a Claude Code, Cursor és más ügynökök számára. A jev-latest nem helyettesítheti az ügynök modelljét: az ügynöknek szöveget író és eszközöket hívó modellre van szüksége. A Jevet az ügynök által Önnek írt kódból hívhatja meg.
- Aritmetika, számlálás, dátumok összehasonlítása. A TypeSafe szerint ezt megbízhatóbban lehet kódban elvégezni, a modelltől pedig csak a jelentésbeli részt érdemes kérdezni — például dátumrészeket kinyerni choice használatával.
- Képek, hang és videó. A modell csak szöveget fogad — az ilyen adatokat előzetesen alakítsa szöveggé.
Ár
Csak a bemeneti tokenek díjkötelesek — a válasz usage.input_tokens mezője: $0.084 1 millióért. A kimeneti tokenek ingyenesek.
Az ezen az oldalon szereplő példakérés (296 bemeneti token) költsége kevesebb mint $0.0001.
A kérés előtt az Ailoot zárolja az összeget az egyenlegen, a válasz után pedig egyszer, a tényleges használat alapján terhel — hogyan működik.
Korlátok
| Jellemző | Korlát |
|---|---|
| A teljes kérés: state és az összes kérdés | 64K token |
| state a leghosszabb kérdéssel együtt | 32K token |
| Lehetőségek egy choice esetén | legfeljebb 255 |
| Szintek egy score esetén | 2 és 10 között |
| Bemenet | csak szöveg: karakterlánc, JSON-objektum vagy szövegek tömbje |
A modell korlátai a TypeSafe adatai szerint. A kulcsára és az egyenlegére vonatkozó korlátozások ugyanúgy érvényesek, mint bármely Ailoot-modellnél: Hibák és korlátok.
Hibák
A hibák az Ailoot API általános formátumában érkeznek: kód, érthető szöveg és Request ID. Ennél a metódusnál leggyakrabban ezek fordulnak elő:
| Kód | Mikor? | Teendő |
|---|---|---|
400 invalid_request | A törzs nem ment át az ellenőrzésen: hiányzik a state, model vagy questions, ismeretlen a type, a choice több mint 255 lehetőséget, a score több mint 10 szintet tartalmaz | Javítsa a kérést a hiba szövege alapján: módosítás nélkül ismét elutasításra kerül |
400 context_length_exceeded | A state és a kérdések együtt túllépik a modell korlátját | Szűrje a state tartalmát a kódban, csak a kérdésekhez szükséges adatokat tartsa meg |
401 invalid_api_key | A kulcs hiányzik vagy hibás | Adja meg a kulcsot az Authorization fejlécben |
402 insufficient_balance | Nincs elegendő szabad egyenleg a zároláshoz | Töltse fel az egyenleget |
404 model_not_found, unsupported_endpoint | Hibás az azonosító, vagy a modellt nem a megfelelő metódussal hívták, például a /v1/chat/completions útvonalon | A jev-latest modellt kizárólag a POST /v1/systemone útvonalon hívja |
429 rate_limit_exceeded | Túl sok kérés | Várjon a Retry-After fejlécben megadott számú másodpercig, majd próbálja újra |
503 model_overloaded, model_unavailable | A modell átmenetileg túlterhelt vagy nem érhető el | Ha X-Should-Retry: true — próbálja újra a Retry-After fejlécben megadott számú másodperc elteltével; ha false — előbb ellenőrizze a Request ID-t az előzményekben |
504 model_timeout | A modell nem válaszolt időben | Ne küldje újra a kérést, amíg nem ellenőrizte a Request ID-t az előzményekben |
A kódok teljes listája ezen az oldalon található: Hibák és korlátok.