dokumentaatio
API

Jev — päätösmalli

Markdown

TypeSafen päätösmalli Jev vastaa tyypitettyihin kysymyksiin tekstistä tai JSONista: vaihtoehdon valinta, asteikkoarvio tai ”kyllä/ei” todennäköisyyksineen. Se ei ole chat eikä tuota tekstiä.

Koko opas
POSThttps://api.ailoot.ai/v1/systemone
Jev — päätösmalli
curl https://api.ailoot.ai/v1/systemone \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jev-latest",
    "state": "Apua! Maksatukseni ovat epäonnistuneet 3 päivän ajan.",
    "questions": {
      "is_urgent": {
        "type": "noul",
        "instructions": "Ilmaiseeko tämä kiireellisyyttä?"
      }
    }
  }' 
200 OK
{
  "model": "jev-1.13.0",
  "answers": {
    "is_urgent": {
      "type": "noul",
      "noul": 0.95
    }
  },
  "usage": { "input_tokens": 296, "output_tokens": 20 }
}

Jev on TypeSafen System One -luokan päätösmalli. Se ei kirjoita tekstiä eikä käy keskustelua: lähetät tilan (state) — tekstinä tai JSONina — ja joukon kysymyksiä, ja saat vastaukseksi tyypitettyjä arvoja todennäköisyyksineen. Koodi voi niiden perusteella heti haarautua, lajitella ja reitittää ilman vapaan tekstin tulkintaa.

Kaikki saman pyynnön kysymykset arvioidaan rinnakkain ja toisistaan riippumatta suhteessa samaan tilaan state. TypeSafen mukaan kysymysten lisääminen ei juuri muuta vastausaikaa, eivätkä kysymykset häiritse toisiaan.

AsiaTiivistetysti
Mallijev-latest — Jevin uusimman vakaan version alias; kortti luettelossa
MetodiPOST /v1/systemone. Tämä ei ole chat: OpenAI-, Anthropic- ja Gemini-muodot eivät sovellu Jeville. Vastaus saapuu kokonaisena yhtenä JSON-objektina
Hyväksytty syöteVain teksti: merkkijono, JSON-objekti tai tekstitaulukko. Muunna kuvat, ääni ja video ensin tekstiksi
Konteksti64K tokenia pyyntöä kohti — state ja kaikki kysymykset yhteensä; state ja pisin kysymys yhdessä — enintään 32K
KieliTypeSafen mukaan malli toimii tarkimmin englanniksi; se hyväksyy muita kieliä, mutta tarkkuus on heikompi — testaa omilla tiedoillasi
HintaSyöte $0.084 / 1 miljoonaa tokenia, tuloste maksuton

Pyyntö

Todennus

  • Authorizationheaderpakollinen

    Ailoot-avain muodossa Bearer sk-….

Pyynnön runko

  • modelstringpakollinen

    jev-latest.

  • statestring | object | arraypakollinen

    Arvioitava sisältö: tekstimerkkijono tai JSON — asiakkaan yhteydenotto, tietokantatietue, viestiketju tai sovelluksesi nykyinen tila. Objekti, jonka kenttien nimet ovat ymmärrettäviä, on yleensä yhtä merkkijonoa kätevämpi.

  • questionsobjectpakollinen

    Kysymykset. Valitset itse avaimet, ja vastaukset saapuvat samoilla avaimilla; avain ei vaikuta vastaukseen — itse kysymys määritetään kentässä instructions.

  • questions.*.typestringpakollinen

    noul, choice tai score — katso alta.

  • questions.*.instructionsstring | object | arraypakollinen

    Itse kysymys. Pitkän kysymyksen tietoineen voi lähettää objektina: kysymys yhdessä kentässä, tiedot muissa; viittaa kenttiin niiden nimillä gravis-merkkien sisällä.

  • questions.*.criteriaobject | array

    Vastausvaihtoehdot tyypin mukaan: noulissa ”kyllä”- ja ”ei”-kuvaukset (valinnaiset), choicessa vaihtoehtojen sanakirja ja scoressa järjestetty tasoluettelo.

Kysymystyypit

TyyppiMitä kysyyMitä palauttaa
noulOnko väite tosi: kyllä vai einoul — ”kyllä”-vastauksen todennäköisyys välillä 0–1
choiceMikä annetuista vaihtoehdoista sopiichoice, probabilities, confidence
scoreMihin state sijoittuu tasoasteikollasiscore, legend, probabilities, confidence

Tyyppejä voi yhdistellä samassa pyynnössä.

noul — kyllä vai ei

Kenttä criteria on valinnainen: siinä voi kuvata, mitä ”kyllä” (true) ja ”ei” (false) tarkoittavat. Vastaus noul — luku välillä 0 (ei) ja 1 (kyllä).

"is_urgent": {
  "type": "noul",
  "instructions": "Ilmaiseeko tämä kiireellisyyttä?",
  "criteria": {
    "true": "Nimenomaisesti aikakriittinen",
    "false": "Kiireellisyyttä ei ilmaista"
  }
}

choice — vaihtoehdon valinta

criteria — sanakirja ”vaihtoehto → kuvaus”; jos kuvausta ei tarvita, määritä null. Enintään 255 vaihtoehtoa. Vastauksessa choice — todennäköisin vaihtoehto, probabilities — kunkin vaihtoehdon todennäköisyys (summa 1), confidence — varmuus välillä 0–1.

"department": {
  "type": "choice",
  "instructions": "Minkä tiimin pitäisi käsitellä tämä?",
  "criteria": {
    "billing": "Maksut, laskutus, maksunpalautukset",
    "technical": "Virheet, käyttökatkot, integraatiot",
    "sales": "Hinnoittelu, päivitykset, uudet asiakkaat"
  }
}

score — asteikkoarvio

criteria — tasot alimmasta ylimpään, enintään 10 (TypeSafe suosittelee vähintään kahta). Vastauksessa score — tasojen todennäköisyyksillä painotettu arvo (voi sijoittua tasojen väliin), legend — tason numero ja kuvaus, probabilities ja confidence. TypeSafen mukaan score sopii vertailuun kynnysarvon kanssa, mutta ei tarkaksi luvuksi tasojen välillä.

"frustration": {
  "type": "score",
  "instructions": "Kuinka turhautunut asiakas on?",
  "criteria": ["Rauhallinen", "Turhautunut", "Erittäin vihainen"]
}

Vastaus

  • modelstring

    Vastanneen mallin versio. Alias jev-latest siirtyy ajan mittaan uusiin versioihin: jos olet sovittanut kentän nimeltä confidence arvon kynnysarvot tiettyyn versioon, seuraa tätä kenttää.

  • answersobject

    Yksi vastaus jokaiseen kysymykseen samoilla avaimilla. Jokaisessa vastauksessa on type, choice- ja score-vastauksissa lisäksi confidence.

  • usageobject

    input_tokens ja output_tokens. Vain syötetokeneista veloitetaan.

Useita kysymyksiä yhdessä pyynnössä

Esitä kaikki samaan stateen liittyvät kysymykset yhdessä pyynnössä: ne arvioidaan rinnakkain, ja state lähetetään vain kerran. TypeSafen mukaan heidän 13 kysymyksen esimerkissään yksi yhteinen pyyntö oli 12,2 kertaa halvempi ja 10 kertaa nopeampi kuin 13 peräkkäin lähetettyä erillistä pyyntöä, samoilla vastauksilla.

Monimutkainen arvio kannattaa jakaa yksinkertaisiin kysymyksiin ja yhdistää vastaukset koodissa: esimerkiksi ”arvioi hakemus” -pyynnön sijaan erilliset arviot markkinasta, toteutettavuudesta ja eroista kilpailijoihin. Painoja voi tällöin muuttaa koodissa, ei kysymystekstissä.

{
  "model": "jev-latest",
  "state": "Apua! Maksatukseni ovat epäonnistuneet 3 päivän ajan.",
  "questions": {
    "department": {
      "type": "choice",
      "instructions": "Minkä tiimin pitäisi käsitellä tämä?",
      "criteria": {
        "billing": "Maksut, laskutus, maksunpalautukset",
        "technical": "Virheet, käyttökatkot, integraatiot",
        "sales": "Hinnoittelu, päivitykset, uudet asiakkaat"
      }
    },
    "frustration": {
      "type": "score",
      "instructions": "Kuinka turhautunut asiakas on?",
      "criteria": ["Rauhallinen", "Turhautunut", "Erittäin vihainen"]
    },
    "is_urgent": {
      "type": "noul",
      "instructions": "Ilmaiseeko tämä kiireellisyyttä?"
    }
  }
}

Milloin sopii

  • Reititys. Ohjaa yhteydenotto oikealle osastolle ja pyyntö oikealle käsittelijälle: yksinkertaiselle koodille, suurelle mallille tai ihmiselle.
  • Lajittelu ja priorisointi. Kiireellisyys, sävy ja riski — asteikolla, jonka kynnysarvot ovat koodissa.
  • Moderointi ja tarkistukset. Rikkooko viesti sääntöjä, vahvistaako lähde lainauksen tai sisältääkö asiakirja vastauksen kysymykseen — ennen kuin teksti etenee.
  • Pisteytys ja järjestäminen. Arvioi asiakirjat, ehdokkaat tai löydetyt katkelmat omilla arviointiperusteillasi ja päätä koodissa, mitä viedään eteenpäin.
  • Hauraan ”palauta JSON” -ohjeen tilalle. Kutsu, joka palauttaa rakenteensa vuoksi tyypitettyjä arvoja eikä tulkittavaa tekstiä.

Milloin ei sovi

  • Chat, vastaukset käyttäjälle sekä tekstin tai koodin generointi. Jev ei kirjoita tekstiä — siihen on tekstimalleja.
  • Claude Coden, Cursorin ja muiden agenttien malliksi. Et voi korvata agentin mallia jev-latestilla: agentti tarvitsee mallin, joka kirjoittaa tekstiä ja kutsuu työkaluja. Jeviä voi kutsua koodista, jonka agentti kirjoittaa sinulle.
  • Aritmetiikka, laskenta ja päivämäärien vertailu. TypeSafen mukaan nämä kannattaa luotettavuuden vuoksi tehdä koodissa ja kysyä mallilta vain merkitykseen liittyvä osa — esimerkiksi poimia päivämäärän osat choicen avulla.
  • Kuvat, ääni ja video. Malli hyväksyy vain tekstin — muunna tällaiset tiedot tekstiksi etukäteen.

Hinta

Vain syötetokeneista veloitetaan — kenttä usage.input_tokens vastauksessa: $0.084 / 1 miljoonaa. Tulostetokenit ovat maksuttomia.

Tämän sivun esimerkkipyyntö (296 syötetokenia) maksaa alle $0.0001.

Ailoot varaa summan saldosta ennen pyyntöä ja veloittaa vastauksen jälkeen kerran toteutuneen kulutuksen mukaan — näin se toimii.

Rajoitukset

AsiaRaja
Koko pyyntö: state ja kaikki kysymykset64K tokenia
state yhdessä pisimmän kysymyksen kanssa32K tokenia
Vaihtoehtoja yhdessä choice-kysymyksessäenintään 255
Tasoja yhdessä score-kysymyksessä2–10
Syötevain teksti: merkkijono, JSON-objekti tai tekstitaulukko

Mallirajat ovat TypeSafen ilmoittamia. Avaimesi ja saldosi rajoitukset pätevät kuten kaikilla Ailoot-malleilla: Virheet ja rajoitukset.

Virheet

Virheet saapuvat Ailoot APIn yhteisessä muodossa: koodi, ymmärrettävä teksti ja Request ID. Tämän metodin yleisimmät virheet ovat:

KoodiMilloinToimenpide
400 invalid_requestRunko ei läpäissyt tarkistusta: state, model tai questions puuttuu, type on tuntematon, choicessa on yli 255 vaihtoehtoa tai scoressa yli 10 tasoaKorjaa pyyntö virhetekstin perusteella: ilman korjausta se hylätään uudelleen
400 context_length_exceededstate ja kysymykset ylittävät yhteensä mallin rajanSuodata state koodissa ja säilytä kysymysten tarvitsemat tiedot
401 invalid_api_keyAvain puuttuu tai on virheellinenLähetä avain Authorization-otsakkeessa
402 insufficient_balanceVapaa saldo ei riitä varaukseenLataa saldoa
404 model_not_found, unsupported_endpointID:ssä on virhe tai mallia kutsutaan väärällä metodilla, esimerkiksi polun /v1/chat/completions kauttaKutsu jev-latestia vain metodilla POST /v1/systemone
429 rate_limit_exceededLiikaa pyyntöjäOdota Retry-After-otsakkeessa ilmoitettu määrä sekunteja ja yritä uudelleen
503 model_overloaded, model_unavailableMalli on tilapäisesti ylikuormittunut tai ei käytettävissäJos X-Should-Retry: true — yritä uudelleen Retry-After-otsakkeessa ilmoitetun sekuntimäärän kuluttua; jos false — tarkista ensin Request ID historiasta
504 model_timeoutMalli ei vastannut ajoissaÄlä lähetä pyyntöä uudelleen ennen kuin olet tarkistanut Request ID:n historiasta

Kaikki koodit löytyvät sivulta Virheet ja rajoitukset.

Onko vielä kysyttävää? Lähetä Request ID ja kuvaus — autamme selvittämään asian.Ota yhteyttä tukeen