Jev — шешім моделі
MarkdownTypeSafe ұсынған Jev шешім моделі мәтін не JSON туралы типтелген сұрақтарға жауап береді: нұсқа таңдау, шкала бойынша бағалау немесе ықтималдығы бар «иә/жоқ». Бұл чат та, мәтін генерациясы да емес.
Толық нұсқаулық
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": "Көмектесіңіз! Маған төленетін ақша 3 күннен бері аударылмай жатыр.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Бұл шұғылдықты білдіре ме?"
}
}
}' import json, os, urllib.request
body = {
"model": "jev-latest",
"state": "Көмектесіңіз! Маған төленетін ақша 3 күннен бері аударылмай жатыр.",
"questions": {
"is_urgent": {"type": "noul", "instructions": "Бұл шұғылдықты білдіре ме?"},
},
}
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: "Көмектесіңіз! Маған төленетін ақша 3 күннен бері аударылмай жатыр.",
questions: {
is_urgent: { type: "noul", instructions: "Бұл шұғылдықты білдіре ме?" },
},
}),
});
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 — TypeSafe ұсынған System One класындағы шешім моделі. Ол мәтін жазбайды және диалог жүргізбейді: сіз мынаны бересіз: күй (state) — мәтін немесе JSON — және мына жиынды: сұрақтар, ал жауапта ықтималдықтары бар типтелген мәндер аласыз. Код олар бойынша еркін мәтінді талдамай-ақ бірден тармақталады, сұрыптайды және бағыттайды.
Бір сұраудағы барлық сұрақ бірдей мына дерекке қатысты қатар әрі бір-бірінен тәуелсіз бағаланады: state. TypeSafe деректері бойынша, сұрақтарды қосу жауап уақытын өзгертпейді дерлік және сұрақтар бір-біріне кедергі келтірмейді.
| Не | Қысқаша |
|---|---|
| Модель | jev-latest — Jev-тің соңғы тұрақты нұсқасының бүркеншік атауы; каталогтағы карточка |
| Әдіс | POST /v1/systemone. Бұл чат емес: OpenAI, Anthropic және Gemini форматтары Jev үшін жарамайды. Жауап толық, бір JSON түрінде келеді |
| Не қабылдайды | Тек мәтін: жол, JSON нысаны немесе мәтіндер массиві. Суреттерді, аудионы және бейнені алдымен мәтінге айналдырыңыз |
| Контекст | Бір сұрауға 64K токен — state пен барлық сұрақ бірге; state пен ең ұзын сұрақ бірге — 32K-ға дейін |
| Тіл | TypeSafe деректері бойынша, модель ағылшын тілінде ең дәл жұмыс істейді; басқа тілдерді де қабылдайды, бірақ дәлдігі төменірек — өз деректеріңізде тексеріңіз |
| Баға | Кіріс үшін 1 млн токенге $0.084, шығыс тегін |
Сұрау
Авторизация
- Authorizationheaderміндетті
Ailoot кілті мына пішімде:
Bearer sk-….
Сұрау денесі
- modelstringміндетті
jev-latest. - statestring | object | arrayміндетті
Не бағаланады: мәтіні бар жол немесе JSON — клиент өтініші, дерекқор жазбасы, хат алмасу, қолданбаңыздың ағымдағы күйі. Өріс атаулары түсінікті нысан әдетте бір жолдан ыңғайлы.
- questionsobjectміндетті
Сұрақтар. Кілттерді өзіңіз таңдайсыз, жауаптар сол кілттермен келеді; кілт жауапқа әсер етпейді — сұрақтың өзі мына жерде беріледі:
instructions. - questions.*.typestringміндетті
noul,choiceнемесеscore— төменде қараңыз. - questions.*.instructionsstring | object | arrayміндетті
Сұрақтың өзі. Деректері бар ұзын сұрақты нысан түрінде беруге болады: сұрақ бір өрісте, деректер басқа өрістерде; өрістерге атауын кері тырнақшаға алып сілтеңіз.
- questions.*.criteriaobject | array
Жауап нұсқалары әр түрге бөлек: noul үшін «иә» және «жоқ» сипаттамалары (міндетті емес), choice үшін нұсқалар сөздігі, score үшін деңгейлердің реттелген тізімі.
Сұрақ түрлері
| Түрі | Не сұрайды | Не қайтарады |
|---|---|---|
noul | Тұжырым дұрыс па: иә немесе жоқ | noul — «иә» ықтималдығы, 0-ден 1-ге дейін |
choice | Берілген нұсқалардың қайсысы сәйкес келеді | choice, probabilities, confidence |
score | Деңгейлер шкалаңызда state қай жерде орналасқан | score, legend, probabilities, confidence |
Бір сұрауда әртүрлі түрді бірге қолдануға болады.
noul — иә немесе жоқ
Өріс criteria міндетті емес: мұнда «иә» (true) және «жоқ» (false) нені білдіретінін сипаттауға болады. Жауап noul — 0-ден (жоқ) 1-ге (иә) дейінгі сан.
"is_urgent": {
"type": "noul",
"instructions": "Бұл шұғылдықты білдіре ме?",
"criteria": {
"true": "Уақыттың тығыз екені анық көрсетілген",
"false": "Шұғылдық көрсетілмеген"
}
}"is_urgent": {
"type": "noul",
"noul": 0.95
}choice — нұсқа таңдау
criteria — «нұсқа → сипаттама» сөздігі; сипаттама қажет болмаса, мынаны көрсетіңіз: null. 255 нұсқаға дейін. Жауапта choice — ең ықтимал нұсқа, probabilities — әр нұсқаның ықтималдығы (қосындысы 1), confidence — сенімділік, 0-ден 1-ге дейін.
"department": {
"type": "choice",
"instructions": "Мұны қай топ қарауы керек?",
"criteria": {
"billing": "Төлемдер, шот ұсыну, ақшаны қайтару",
"technical": "Қателер, қызметтің тоқтауы, интеграциялар",
"sales": "Бағалар, жоғары тарифке ауысу, жаңа клиенттер"
}
}"department": {
"type": "choice",
"choice": "billing",
"probabilities": { "billing": 0.88, "technical": 0.12, "sales": 0.0 },
"confidence": 0.81
}score — шкала бойынша бағалау
criteria — ең төменнен ең жоғарыға қарай деңгейлер, 10-нан аспайды (TypeSafe кемінде екі деңгейді ұсынады). Жауапта score — деңгейлер ықтималдығымен өлшенген мән (деңгейлердің арасында болуы мүмкін), legend — деңгей нөмірі мен оның сипаттамасы, probabilities және confidence. TypeSafe деректері бойынша, score шекпен салыстыруға жарайды, бірақ деңгейлер арасындағы дәл сан ретінде жарамайды.
"frustration": {
"type": "score",
"instructions": "Клиент қаншалықты наразы?",
"criteria": ["Сабырлы", "Наразы", "Аса ашулы"]
}"frustration": {
"type": "score",
"score": 1.05,
"legend": { "0": "Сабырлы", "1": "Наразы", "2": "Аса ашулы" },
"probabilities": { "0": 0.0, "1": 0.95, "2": 0.05 },
"confidence": 0.92
}Жауап
- modelstring
Модельдің қай нұсқасы жауап бергенін көрсетеді. jev-latest бүркеншік атауы уақыт өте жаңа нұсқаларға көшеді: егер мына шектерді:
confidenceнақты нұсқаға бейімдеген болсаңыз, осы өрісті қадағалаңыз. - answersobject
Әр сұраққа бір жауап, дәл сол кілттермен. Әр жауапта мына өріс бар:
type, ал choice пен score ішінде қосымшаconfidence. - usageobject
input_tokensжәнеoutput_tokens. Тек кіріс токендеріне ақы алынады.
Бір сұрауда бірнеше сұрақ
Бір state туралы барлық сұрақты бір сұрауда қойыңыз: олар қатар бағаланады, ал state бір рет беріледі. TypeSafe деректері бойынша, олардың 13 сұрақтық мысалында бір ортақ сұрау дәл сол жауаптармен 13 сұрауды кезекпен бөлек жібергеннен 12,2 есе арзан және 10 есе жылдам болған.
Күрделі пайымды қарапайым сұрақтарға бөліп, жауаптарды кодта біріктірген жөн: мысалы, «өтінімді бағала» деудің орнына нарықты, іске асырылу мүмкіндігін және бәсекелестерден айырмашылығын бөлек бағалау. Сонда салмақтар сұрақ мәтінінде емес, кодта өзгереді.
{
"model": "jev-latest",
"state": "Көмектесіңіз! Маған төленетін ақша 3 күннен бері аударылмай жатыр.",
"questions": {
"department": {
"type": "choice",
"instructions": "Мұны қай топ қарауы керек?",
"criteria": {
"billing": "Төлемдер, шот ұсыну, ақшаны қайтару",
"technical": "Қателер, қызметтің тоқтауы, интеграциялар",
"sales": "Бағалар, жоғары тарифке ауысу, жаңа клиенттер"
}
},
"frustration": {
"type": "score",
"instructions": "Клиент қаншалықты наразы?",
"criteria": ["Сабырлы", "Наразы", "Аса ашулы"]
},
"is_urgent": {
"type": "noul",
"instructions": "Бұл шұғылдықты білдіре ме?"
}
}
}Қай кезде жарайды
- Бағыттау. Өтінішті тиісті бөлімге, ал сұрауды тиісті өңдеушіге жіберу: қарапайым кодқа, үлкен модельге немесе адамға.
- Сұрыптау және басымдық. Шұғылдық, реңк, тәуекел — шкала бойынша, шектері кодта беріледі.
- Модерация және тексерулер. Хабарлама ережені бұза ма, дереккөз дәйексөзді растай ма, құжатта сұрақтың жауабы бар ма — мәтін әрі қарай жіберілмей тұрып тексеру.
- Скоринг және ранжирлеу. Құжаттарды, үміткерлерді немесе табылған үзінділерді өз бағалау өлшемдеріңізбен бағалап, әрі қарай не жіберілетінін кодта шешу.
- Сенімсіз «JSON қайтар» нұсқауының орнына. Талдауды қажет ететін мәтінді емес, құрылымы бойынша типтелген мәндерді қайтаратын шақыру.
Қай кезде жарамайды
- Чат, пайдаланушыға жауап беру, мәтін немесе код генерациялау. Jev мәтін жазбайды — ол үшін мына модельдер бар: мәтіндік модельдер.
- Claude Code, Cursor және басқа агенттер үшін модель. Агент моделінің орнына jev-latest қою мүмкін емес: агентке мәтін жазатын және құрал шақыратын модель қажет. Jev-ті агент сіз үшін жазған кодтан шақыруға болады.
- Арифметика, санау, күндерді салыстыру. TypeSafe деректері бойынша, мұны кодта орындау сенімдірек, ал модельден тек мағыналық бөлігін сұраған жөн — мысалы, choice арқылы күннің бөліктерін шығару.
- Суреттер, аудио және бейне. Модель тек мәтінді қабылдайды — мұндай деректерді алдын ала мәтінге айналдырыңыз.
Баға
Тек кіріс токендеріне ақы алынады — жауаптағы usage.input_tokens өрісі бойынша: 1 млн үшін $0.084. Шығыс токендері тегін.
Осы беттегі мысал сұрауы (296 кіріс токені) $0.0001-ден аз тұрады.
Сұрау алдында Ailoot баланста соманы резервтейді және жауаптан кейін нақты шығын бойынша бір рет есептен шығарады — бұл қалай жұмыс істейді.
Лимиттер
| Не | Лимит |
|---|---|
| Бүкіл сұрау: state және барлық сұрақ | 64K токен |
| state және ең ұзын сұрақ бірге | 32K токен |
| Бір choice ішіндегі нұсқалар | 255-ке дейін |
| Бір score ішіндегі деңгейлер | 2-ден 10-ға дейін |
| Кіріс | тек мәтін: жол, JSON нысаны немесе мәтіндер массиві |
Модель лимиттері TypeSafe деректері бойынша берілген. Кілтіңіз бен балансыңыздың шектеулері Ailoot-тың кез келген моделіндегідей қолданылады: Қателер және лимиттер.
Қателер
Қателер Ailoot API-інің жалпы форматында келеді: код, түсінікті мәтін және Request ID. Бұл әдісте ең жиі кездесетіндері:
| Код | Қай кезде | Не істеу керек |
|---|---|---|
400 invalid_request | Дене тексеруден өтпеді: state, model немесе questions жоқ, type белгісіз, choice ішінде 255-тен көп нұсқа немесе score ішінде 10-нан көп деңгей бар | Сұрауды қате мәтініне қарай түзетіңіз: түзетпесеңіз, ол қайтадан өтпейді |
400 context_length_exceeded | state пен сұрақтар бірге модель лимитінен ұзын | state дерегін кодта сүзіп, сұрақтарға керегін ғана қалдырыңыз |
401 invalid_api_key | Кілт жоқ немесе қате | Кілтті Authorization тақырыбында жіберіңіз |
402 insufficient_balance | Резервке бос баланс жетпейді | Балансты толықтырыңыз |
404 model_not_found, unsupported_endpoint | ID қате немесе модель басқа әдіспен шақырылған, мысалы /v1/chat/completions арқылы | jev-latest моделін тек POST /v1/systemone арқылы шақырыңыз |
429 rate_limit_exceeded | Сұрау тым көп | Retry-After тақырыбында көрсетілген секунд бойы күтіп, қайталаңыз |
503 model_overloaded, model_unavailable | Модель уақытша шамадан тыс жүктелген немесе қолжетімсіз | X-Should-Retry: true болса — Retry-After секундтан кейін қайталаңыз; false болса — алдымен тарихтан Request ID-ді тексеріңіз |
504 model_timeout | Модель уақытында жауап бермеді | Тарихтан Request ID-ді тексермейінше сұрауды қайта жібермеңіз |
Кодтардың толық тізімі мына бетте: Қателер және лимиттер.