docs
API

Jev — sprendimų modelis

Markdown

TypeSafe sprendimų modelis Jev atsako į tipizuotus klausimus apie tekstą ar JSON: parenka variantą, įvertina pagal skalę arba pateikia „taip / ne“ su tikimybėmis. Tai nėra pokalbis ar teksto generavimas.

Visas vadovas
POSThttps://api.ailoot.ai/v1/systemone
Jev — sprendimų modelis
curl https://api.ailoot.ai/v1/systemone \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jev-latest",
    "state": "Padėkite! Mano išmokos jau 3 dienas nevykdomos.",
    "questions": {
      "is_urgent": {
        "type": "noul",
        "instructions": "Ar tai rodo skubumą?"
      }
    }
  }' 
200 OK
{
  "model": "jev-1.13.0",
  "answers": {
    "is_urgent": {
      "type": "noul",
      "noul": 0.95
    }
  },
  "usage": { "input_tokens": 296, "output_tokens": 20 }
}

Jev — TypeSafe System One klasės sprendimų modelis. Jis nerašo teksto ir neveda pokalbio: perduodate būseną (state) — tekstą arba JSON — ir rinkinį klausimų, o atsakyme gaunate tipizuotas reikšmes su tikimybėmis. Pagal jas kodas iškart parenka šaką, rūšiuoja ir nukreipia, neanalizuodamas laisvo teksto.

Visi vienos užklausos klausimai vertinami lygiagrečiai ir nepriklausomai vienas nuo kito pagal tą patį state. TypeSafe duomenimis, pridėjus klausimų atsakymo laikas beveik nesikeičia, o klausimai vienas kitam netrukdo.

KasTrumpai
Modelisjev-latest — naujausios stabilios Jev versijos pseudonimas; kortelė kataloge
MetodasPOST /v1/systemone. Tai nėra pokalbis: OpenAI, Anthropic ir Gemini formatai Jev netinka. Atsakymas pateikiamas visas, vienu JSON
Ką priimaTik tekstą: eilutę, JSON objektą arba tekstų masyvą. Vaizdus, garsą ir vaizdo įrašus pirmiausia paverskite tekstu
Kontekstas64K žetonų vienai užklausai — state ir visi klausimai kartu; state su ilgiausiu klausimu — iki 32K
KalbaTypeSafe duomenimis, tiksliausiai modelis veikia anglų kalba; kitas kalbas priima, tačiau tikslumas mažesnis — patikrinkite su savo duomenimis
KainaĮvestis — $0.084 už 1 mln. žetonų, išvestis nemokama

Užklausa

Autorizacija

  • Authorizationheaderprivalomas

    Ailoot raktas formatu Bearer sk-….

Užklausos turinys

  • modelstringprivalomas

    jev-latest.

  • statestring | object | arrayprivalomas

    Ką vertinti: eilutė su tekstu arba JSON — kliento kreipimasis, duomenų bazės įrašas, susirašinėjimas, dabartinė jūsų programos būsena. Objektas su aiškiais laukų pavadinimais paprastai patogesnis nei viena eilutė.

  • questionsobjectprivalomas

    Klausimai. Raktus pasirenkate patys, atsakymai pateikiami su tais pačiais raktais; raktas atsakymui įtakos neturi — pats klausimas nurodomas lauke instructions.

  • questions.*.typestringprivalomas

    noul, choice arba score — žr. toliau.

  • questions.*.instructionsstring | object | arrayprivalomas

    Pats klausimas. Ilgą klausimą su duomenimis galima perduoti objektu: klausimas viename lauke, duomenys kituose; į laukus kreipkitės jų vardais tarp atgalinių kabučių.

  • questions.*.criteriaobject | array

    Atsakymų variantai, kiekvienam tipui savi: „taip“ ir „ne“ aprašai noul atveju (neprivalomi), variantų žodynas choice atveju, surikiuotas lygių sąrašas score atveju.

Klausimų tipai

TipasKo klausiaKą grąžina
noulAr teiginys teisingas: taip ar nenoul — „taip“ tikimybė nuo 0 iki 1
choiceKuris iš pateiktų variantų tinkachoice, probabilities, confidence
scoreKur state yra jūsų lygių skalėjescore, legend, probabilities, confidence

Vienoje užklausoje galima derinti skirtingus tipus.

noul — taip arba ne

Laukas criteria neprivalomas: jame galima aprašyti, ką reiškia „taip“ (true) ir „ne“ (false). Atsakymas noul — skaičius nuo 0 (ne) iki 1 (taip).

"is_urgent": {
  "type": "noul",
  "instructions": "Ar tai rodo skubumą?",
  "criteria": {
    "true": "Aiškiai nurodyta, kad laikas svarbus",
    "false": "Skubumas neišreikštas"
  }
}

choice — varianto pasirinkimas

criteria — žodynas „variantas → aprašymas“; jei aprašymo nereikia, nurodykite null. Iki 255 variantų. Atsakyme choice — labiausiai tikėtinas variantas, probabilities — kiekvieno varianto tikimybė (suma — 1), confidence — patikimumas nuo 0 iki 1.

"department": {
  "type": "choice",
  "instructions": "Kuri komanda turėtų tai tvarkyti?",
  "criteria": {
    "billing": "Mokėjimai, sąskaitų išrašymas, pinigų grąžinimas",
    "technical": "Klaidos, veikimo sutrikimai, integracijos",
    "sales": "Kainodara, perėjimas prie aukštesnių planų, nauji klientai"
  }
}

score — vertinimas pagal skalę

criteria — lygiai nuo žemiausio iki aukščiausio, ne daugiau kaip 10 (TypeSafe rekomenduoja bent du). Atsakyme score — pagal lygių tikimybes pasverta reikšmė (gali būti tarp lygių), legend — lygio numeris ir jo aprašymas, probabilities ir confidence. TypeSafe duomenimis, score tinka palyginti su slenksčiu, tačiau ne tiksliam skaičiui tarp lygių nustatyti.

"frustration": {
  "type": "score",
  "instructions": "Kiek klientas susierzinęs?",
  "criteria": ["Ramus", "Susierzinęs", "Labai piktas"]
}

Atsakymas

  • modelstring

    Kuri modelio versija atsakė. Pseudonimas jev-latest laikui bėgant nukreipiamas į naujas versijas: jei parinkote slenksčius confidence konkrečiai versijai, stebėkite šį lauką.

  • answersobject

    Po vieną atsakymą į kiekvieną klausimą, su tais pačiais raktais. Kiekvienas atsakymas turi type, o choice ir score — dar ir confidence.

  • usageobject

    input_tokens ir output_tokens. Apmokestinami tik įvesties žetonai.

Keli klausimai viena užklausa

Visus klausimus apie vieną state pateikite viena užklausa: jie vertinami lygiagrečiai, o state perduodamas vieną kartą. TypeSafe duomenimis, jų pavyzdyje su 13 klausimų viena bendra užklausa buvo 12,2 karto pigesnė ir 10 kartų greitesnė nei 13 atskirų užklausų, siunčiamų paeiliui, gaunant tokius pačius atsakymus.

Sudėtingą vertinimą geriau išskaidyti į paprastus klausimus ir atsakymus sujungti kode: pavyzdžiui, vietoj „įvertink paraišką“ — atskirai įvertinti rinką, įgyvendinamumą ir skirtumus nuo konkurentų. Tada svoriai keičiami kode, o ne klausimo tekste.

{
  "model": "jev-latest",
  "state": "Padėkite! Mano išmokos jau 3 dienas nevykdomos.",
  "questions": {
    "department": {
      "type": "choice",
      "instructions": "Kuri komanda turėtų tai tvarkyti?",
      "criteria": {
        "billing": "Mokėjimai, sąskaitų išrašymas, pinigų grąžinimas",
        "technical": "Klaidos, veikimo sutrikimai, integracijos",
        "sales": "Kainodara, perėjimas prie aukštesnių planų, nauji klientai"
      }
    },
    "frustration": {
      "type": "score",
      "instructions": "Kiek klientas susierzinęs?",
      "criteria": ["Ramus", "Susierzinęs", "Labai piktas"]
    },
    "is_urgent": {
      "type": "noul",
      "instructions": "Ar tai rodo skubumą?"
    }
  }
}

Kada tinka

  • Nukreipimas. Nusiųsti kreipimąsi reikiamam skyriui, o užklausą — reikiamam vykdytojui: paprastam kodui, dideliam modeliui ar žmogui.
  • Rūšiavimas ir prioritetas. Skubumas, tonas, rizika — pagal skalę su kode nustatytais slenksčiais.
  • Moderavimas ir patikros. Ar pranešimas pažeidžia taisykles, ar šaltinis patvirtina citatą, ar dokumente yra atsakymas į klausimą — prieš perduodant tekstą toliau.
  • Vertinimas balais ir reitingavimas. Įvertinti dokumentus, kandidatus ar rastus fragmentus pagal savo kriterijus ir kode nuspręsti, kas bus perduota toliau.
  • Vietoj nepatikimo „grąžink JSON“. Iškvietimas, kuris pagal savo sandarą grąžina tipizuotas reikšmes, o ne tekstą, kurį reikia analizuoti.

Kada netinka

  • Pokalbiai, atsakymai vartotojui, teksto ar kodo generavimas. Jev nerašo teksto — tam skirti tekstiniai modeliai.
  • Modelis Claude Code, Cursor ir kitiems agentams. Pakeisti agento modelį į jev-latest nepavyks: agentui reikia modelio, kuris rašo tekstą ir iškviečia įrankius. Jev galima iškviesti iš kodo, kurį agentas jums parašo.
  • Aritmetika, skaičiavimas, datų palyginimas. TypeSafe duomenimis, tai patikimiau atlikti kode, o modelio klausti tik prasminės dalies — pavyzdžiui, išgauti datos dalis naudojant choice.
  • Vaizdai, garsas ir vaizdo įrašai. Modelis priima tik tekstą — tokius duomenis iš anksto paverskite tekstu.

Kaina

Apmokestinami tik įvesties žetonai — laukas usage.input_tokens atsakyme: $0.084 už 1 mln. Išvesties žetonai nemokami.

Šio puslapio pavyzdžio užklausa (296 įvesties žetonai) kainuoja mažiau nei $0.0001.

Prieš užklausą Ailoot rezervuoja sumą balanse, o gavus atsakymą vieną kartą nurašo pagal faktinį naudojimą — kaip tai veikia.

Limitai

KasLimitas
Visa užklausa: state ir visi klausimai64K žetonų
state kartu su ilgiausiu klausimu32K žetonų
Variantų viename choiceiki 255
Lygių viename scorenuo 2 iki 10
Įvestistik tekstas: eilutė, JSON objektas arba tekstų masyvas

Modelio limitai pateikti pagal TypeSafe duomenis. Jūsų rakto ir balanso apribojimai taikomi kaip bet kuriam Ailoot modeliui: Klaidos ir limitai.

Klaidos

Klaidos pateikiamos bendru Ailoot API formatu: kodas, aiškus tekstas ir Request ID. Šiame metode dažniausiai pasitaiko:

KodasKadaKą daryti
400 invalid_requestTurinys nepraėjo patikros: nėra state, model arba questions, nežinomas type, choice turi daugiau nei 255 variantus, score — daugiau nei 10 lygiųPataisykite užklausą pagal klaidos tekstą: nepataisyta ji vėl nepraeis patikros
400 context_length_exceededstate ir klausimai kartu viršija modelio limitąPerfiltruokite state kode, palikite tik tai, ko reikia klausimams
401 invalid_api_keyRakto nėra arba jis neteisingasPerduokite raktą Authorization antraštėje
402 insufficient_balanceNepakanka laisvo balanso rezervuiPapildykite balansą
404 model_not_found, unsupported_endpointKlaidingas ID arba modelis iškviestas netinkamu metodu, pavyzdžiui, per /v1/chat/completionsjev-latest iškvieskite tik per POST /v1/systemone
429 rate_limit_exceededPer daug užklausųPalaukite tiek sekundžių, kiek nurodyta Retry-After antraštėje, ir bandykite dar kartą
503 model_overloaded, model_unavailableModelis laikinai perkrautas arba neprieinamasJei X-Should-Retry: true — bandykite dar kartą po Retry-After nurodyto sekundžių skaičiaus; jei false — pirmiausia patikrinkite Request ID istorijoje
504 model_timeoutModelis laiku neatsakėNesiųskite užklausos iš naujo, kol nepatikrinsite Request ID istorijoje

Visas kodų sąrašas pateiktas puslapyje Klaidos ir limitai.

Liko klausimų? Atsiųskite Request ID ir aprašymą — padėsime išsiaiškinti.Rašyti pagalbos tarnybai