{
  "aboutHtml": "<p>Jev je vodilni model družbe TypeSafe in prvi model novega razreda <strong>System One</strong>. Ne piše besedila, temveč hitro sprejema odločitve, ki jih program lahko takoj uporabi: podate <strong>stanje</strong> (<code>state</code>) — besedilo ali JSON — in nabor <strong>vprašanj</strong>, v odgovor pa prejmete tipizirane vrednosti z umerjenimi verjetnostmi.</p><p>Jezikovni modeli pišejo besede za ljudi, Jev pa je po besedah družbe TypeSafe bližje kodi: odgovor je takoj v obliki, ki jo potrebuje koda, hitrost je visoka in nobena vrednost ni zunaj določenih možnosti. Model je zasnovan za dosledne odgovore pri ponovljenih zahtevah.</p><h4>Kako se System One razlikuje od jezikovnega modela</h4><ul><li><strong>Ne ustvarja vsebine.</strong> Jev ne piše odgovorov uporabniku, ne piše kode in ne razlaga poteka sklepanja. Možne odgovore določite vi — z eno od treh vrst vprašanj.</li><li><strong>Naučen je za umerjene odločitve.</strong> TypeSafe model uči z metodo RLCD (Reinforcement Learning for Calibrated Decisions): verjetnosti se prilagajajo dejanskim izidom in odražajo negotovost. Med številnimi odgovori z verjetnostjo 0,8 naj bi jih bilo pravilnih približno 80%. Umerjenost je lastnost velikega vzorca in ne jamstvo pravilnosti posameznega odgovora.</li><li><strong>Drugačen cilj učenja.</strong> Pogovorne modele učijo ugajati ljudem (RLHF), kar po opažanju družbe TypeSafe spodbuja ustrežljivost in samozavestno zveneče napake. Eden od soavtorjev RLHF, Diogo Almeida, je soustanovitelj družbe TypeSafe.</li></ul><p>Ime se nanaša na »Sistem 1« iz knjige Daniela Kahnemana »Razmišljanje, hitro in počasno«: hitro intuitivno presojanje v nasprotju s počasnim premišljenim razmišljanjem »Sistema 2«. Jev je ustvarjen za hitre, ozke presoje.</p><h4>Tri vrste vprašanj</h4><p>Vprašanje je ena presoja o stanju, odgovor pa vrednost, ki jo koda primerja s pragom, razvrsti ali posreduje naprej.</p><ol><li><strong>Choice — izbira možnosti.</strong> Oddelek za zahtevo, kategorija izdelka, jezik odseka kode. Možnosti so slovar »možnost → opis«, do 255 možnosti. Odgovor vsebuje izbrani <code>choice</code>, verjetnosti <code>probabilities</code> vseh možnosti (vsota je 1) in zaupanje <code>confidence</code>. Če seznam morda ne zajame vseh primerov, dodajte »drugo« ali »nič od navedenega«.</li><li><strong>Score — ocena na lestvici.</strong> Mesto na urejeni lestvici, ki jo opišete vi: resnost napake, razdraženost stranke, raven spretnosti. Od 2 do 10 ravni, od najnižje do najvišje; model vsako raven oceni ločeno, brez vpogleda v njeno številko in sosede. Odgovor vsebuje <code>score</code> (vsoto številk ravni, pomnoženih z njihovimi verjetnostmi, zato je vrednost lahko med ravnmi), <code>legend</code> z opisi ravni, <code>probabilities</code> in <code>confidence</code>.</li><li><strong>Noul — da ali ne.</strong> Ali je trditev pravilna. Odgovor <code>noul</code> je verjetnost »da« od 0 do 1: okoli 1 pomeni odločen »da«, okoli 0 odločen »ne«, okoli 0,5 pa model omahuje. Ločenega <code>confidence</code> ni: eno število v celoti opisuje odgovor. Neobvezni <code>criteria</code> natančneje določa, kaj šteje za »da« in kaj za »ne«.</li></ol><p>Kako izbrati: znane neurejene možnosti — choice; stopnje spektra — score; čisti »da/ne«, kjer je pomembna sama verjetnost — noul. Noul 0,5 pomeni enaki možnosti za »da« in »ne«, ne pa »srednje ravni«: stopnjo meri score. Med dvema ustreznima vrstama izberite tisto, po kateri koda takoj ukrepa: choice — veje, score — prag, noul — <code>if</code>.</p><p>Vrste lahko združujete v eni zahtevi. Odgovor je vedno omejen na vaše možnosti in ni odvisen od drugih vprašanj: vprašanja lahko dodajate in odstranjujete brez spreminjanja drugih odgovorov.</p><h4>Stanje</h4><p>Stanje je tisto, kar model ocenjuje: sporočilo stranke, odsek dokumenta, zapis iz baze ali stanje vaše aplikacije.</p><ul><li><strong>Niz</strong> — kadar gre za eno besedilo: sporočilo, članek, odlomek.</li><li><strong>Objekt</strong> — poimenovana polja, povezani zapisi, stanje aplikacije. TypeSafe za večino zahtev priporoča objekt: vsak del ima razumljivo ime.</li><li><strong>Polje</strong> — zaporedje sporočil ali zapisov.</li></ul><p>Pripravite ga kot gradivo za strokovnjake: dopisovanje, naročilo in pravila vračila podajte skupaj, če jih je za odločitev treba primerjati. Vsebina naj bo v stanju, presoje pa v vprašanjih. Če se vprašanje nanaša na en del stanja, v njem navedite pot do tega dela v obrnjenih narekovajih, na primer <code>ticket.messages[0].text</code>.</p><h4>Kako postavljati vprašanja</h4><ul><li><strong>Ena hitra presoja na vprašanje.</strong> Dobro vprašanje je tisto, na katero poznavalec s potrebnim kontekstom odgovori v sekundi: »Ali sporočilo izraža nujnost?«. »Analiziraj sporočilo in se odloči, kaj storiti« je že počasno sklepanje, ki ga je treba razdeliti na preprosta vprašanja.</li><li><strong>Celotno vprašanje v <code>instructions</code>.</strong> Ključ vprašanja, na primer <code>refund_requested</code>, potrebuje samo vaša koda in se ne posreduje modelu.</li><li><strong>Vsa vprašanja o enem stanju v eni zahtevi.</strong> Model jih ocenjuje vzporedno: po podatkih družbe TypeSafe dodatna vprašanja skoraj ne podaljšajo odzivnega časa in stanejo le svoje tokene. Vprašanje »za vsak primer« je skoraj brezplačno — koda sama odloči, katere odgovore potrebuje.</li><li><strong>Zahtevna presoja po delih.</strong> Namesto »oceni prijavo zagonskega podjetja« ločeno vprašajte o velikosti trga, tehnični izvedljivosti in razlikah od konkurentov, rezultat pa izračunajte v kodi z utežmi. Če se prednostne naloge spremenijo, spremenite uteži in ne vprašanja.</li><li><strong>Odvisna vprašanja v drugi zahtevi.</strong> Odgovori iste zahteve drug drugemu ne služijo kot kontekst. Druga zahteva je potrebna le, če je brez prvega odgovora ni mogoče sestaviti: treba je naložiti podatke ali izbrati možnosti naslednjega vprašanja.</li><li><strong>Dolgo vprašanje kot objekt.</strong> <code>instructions</code> in <code>criteria</code> sta običajno niza, lahko pa sta objekt ali polje: vprašanje v enem polju, podatki v drugih. Tako lahko z enim vprašanjem primerjate življenjepis z zapisi baze.</li></ul><h4>Zaupanje</h4><p>Pri choice in score <code>confidence</code> od 0 do 1 kaže, koliko verjetnosti je zbrane pri enem odgovoru: 1 pomeni vso pri eni možnosti, 0 pa enakomerno pri vseh. Pri score sosednja raven zaupanje zmanjša manj kot oddaljena. Pri noul je zaupanje sama vrednost: bolj ko je oddaljena od 0,5, odločnejši je odgovor.</p><p>TypeSafe priporoča tri območja:</p><ol><li><strong>Visoko zaupanje</strong> — ukrepajte samodejno.</li><li><strong>Srednje</strong> — ukrepajte previdno, na primer prosite uporabnika za potrditev.</li><li><strong>Nizko</strong> — primer predajte človeku, natančneje določite zahtevo ali vključite rezervno pot, na primer zmogljivejši model s sklepanjem.</li></ol><p>Višja ko je cena napake, strožji naj bo prag: pri nepovratnih dejanjih višji kot pri branju. Odgovor pove, kaj izbrati, zaupanje pa, ali ukrepati. Pragove določite na lastnih podatkih s primerjanjem zaupanja in natančnosti.</p><h4>Kako zgraditi sistem okoli Jev</h4><p>Jev je zasnovan za programe, v katerih proces upravlja koda, model pa odgovarja na ozka pomenska vprašanja, in ne za agente, ki sami izbirajo naslednji korak ter se lahko v vsakem krogu zmotijo. Osem korakov načrtovanja po TypeSafe:</p><ol><li>Vse, kar lahko opravite s kodo, opravite s kodo — zanesljivo in poceni.</li><li>V stanje vključite samo tisto, kar potrebujejo trenutna vprašanja; sveža dejstva vzemite iz lastne baze znanja in ne iz pomnilnika modela.</li><li>Struktura v stanju: gnezden JSON, v vprašanju pa pot do ustreznega polja v obrnjenih narekovajih, če je tako manj dvoumnosti.</li><li>Najbolj ozka in konkretna vprašanja — po besedah družbe TypeSafe morda glavno pravilo: široko vprašanje za enim odgovorom skriva več presoj.</li><li>Struktura v vprašanjih: samo vprašanje naj bo kratko; pojasnila, primeri in vrednosti iz vaše baze naj bodo v sosednjih poljih objekta <code>instructions</code> ali <code>criteria</code>, ne v enem dolgem nizu.</li><li>Več neodvisnih vprašanj o enem stanju v eni zahtevi — več koristi za vsak dolar.</li><li>Odgovore združuje koda: s pravili, uteženo vsoto ali kot značilke za klasični model strojnega učenja.</li><li>Razvejanje po zaupanju: negotove primere predajte človeku ali modelu s sklepanjem.</li></ol><p>Jev ni pogovorni model ali model za dopolnjevanje kode in v agentskem programiranju ne more nadomestiti jezikovnega modela. Agent pa lahko za vas napiše kodo, ki Jev pokliče tam, kjer je potreben hiter umerjen odgovor.</p><h4>Kje se uporablja</h4><ul><li><strong>Avtomatizacija v ozadju</strong> — odločitve, ki se sprožijo milijonkrat brez človeka v bližini.</li><li><strong>Realni čas</strong> — po podatkih družbe TypeSafe se večina zahtev izvede v približno 100 ms: dovolj za sprotno obdelavo in vmesnike.</li><li><strong>Veliki podatki</strong> — iskanje po ogromnih korpusih, označevanje dnevnikov agentskega dela, značilke za napovedi.</li><li><strong>Preverjanje drugih modelov</strong> — zahteve, izluščanje, sklepanje, klici orodij: obhodi omejitev, napake pri citiranju, izmišljotine.</li><li><strong>Iskanje in razvrščanje</strong> — ustreznost para »poizvedba — kandidat«, ponovno razvrščanje, izbira konteksta.</li><li><strong>Razvejanje po namenu</strong> — kaj želi uporabnik in kateri obdelovalec je potreben: preprosta logika, specializiran model ali človek; tema, zahtevnost in tveganje določajo, kateremu jezikovnemu modelu predati zahtevo.</li><li><strong>Zaščitna preverjanja</strong> — vhod, izhod in klici orodij jezikovnega modela: vstavljena navodila, kršitve pravil, uhajanje osebnih podatkov.</li><li><strong>Podpora</strong> — tema in namen zahteve, nujnost, razdraženost, tveganje odhoda, prošnja za vračilo, čakalna vrsta.</li><li><strong>Moderiranje</strong> — po pravilih vaše platforme: toksičnost, nadlegovanje, neželena sporočila, goljufije, nevarni nasveti, osebni podatki; glede na resnost in zaupanje prepustite, opozorite, preverite ali blokirajte.</li><li><strong>Področja</strong> — zavarovalni primeri, finančne preiskave in KYC, pogodbe in oglaševanje, kartice izdelkov, zaposlovanje, potencialne stranke, igre, tveganja, napoved povpraševanja, grafi znanja, znanstveni pregledi, pomenska preverjanja kode v CI.</li></ul><h4>Značilnosti</h4><ul><li><strong><code>jev-latest</code></strong> — vzdevek zadnje stabilne različice, trenutno Jev 1.13; različica, ki je odgovorila, je v polju <code>model</code>, na primer <code>jev-1.13.0</code>. Ob novi različici vzdevek preide nanjo in odgovori se lahko spremenijo brez vaših popravkov — spremljajte to polje, če so pragovi prilagojeni različici.</li><li><strong>Kontekst</strong> — 64K tokenov na zahtevo: stanje in vsa vprašanja skupaj; stanje z najdaljšim vprašanjem do 32K. Model stanje prebere enkrat in vzporedno glede nanj preverja vsa vprašanja.</li><li><strong>Vhod</strong> — samo besedilo: niz, objekt JSON ali polje besedil. Slike, zvok in video še niso podprti — predhodno jih pretvorite v besedilo.</li><li><strong>Jezik</strong> — glavni jezik učenja je angleščina, v kateri je natančnost trenutno največja. Model sprejema tudi druge jezike, vključno s kitajščino, japonščino in korejščino, vendar je natančnost manjša — preverite na lastnih podatkih.</li><li><strong>Cene in obračunavanje v Ailoot API</strong> — pogoji so odvisni od izbrane metode in navedeni na njeni kartici.</li><li><strong>Prilagajanje</strong> — Jev se ne uči dodatno na podatkih naročnika: lastno gradivo podajte v <code>state</code>, področne zahteve pa v <code>instructions</code> in <code>criteria</code>.</li><li><strong>Podatki</strong> — TypeSafe sporoča, da Jev ne učijo na zahtevah in odgovorih strank.</li></ul><h4>Znane šibke točke Jev 1.13</h4><p>TypeSafe odkrito navaja šibke točke trenutne različice in obljublja številne izboljšave v naslednjih. Model je hiter, umerjen in dobro presoja po zdravi pameti, vendar:</p><ol><li><strong>Bere dobesedno.</strong> Odgovarja na napisano vprašanje in ne na mišljeno: pridržke, zanikanja in neizrecne pogoje razume dobesedno. Natančen pogoj in mejne primere zapišite v <code>criteria</code>; neizogibno razlago razdelite na dve dobesedni vprašanji.</li><li><strong>Ni kalkulator.</strong> Štetje znakov, ponovitev in elementov seznama je nezanesljivo, napaka pa raste z velikostjo — štejte v kodi, z enim vprašanjem na kandidata. Barve v hex ali RGB model razume slabše od imen. <code>score</code> je primeren za prag, ne za natančno število med ravnmi.</li><li><strong>Datumi in čas.</strong> Kateri datum je prej, koliko časa je med njima, ali datum spada v obdobje — to je nezanesljivo, posebej pri mešanih formatih in relativnih datumih. Dele datuma izluščite prek choice (z možnostjo »ni navedeno«), primerjajte pa v kodi.</li><li><strong>Posrednost.</strong> Dvojna zanikanja in vprašanja o lastnosti lastnosti zmanjšujejo natančnost. Pišite neposredno in dele stanja poimenujte.</li><li><strong>Odvečno v stanju.</strong> Nepovezano besedilo zmanjšuje natančnost. Filtrirajte v kodi, če to ni mogoče, pa nepomembno izločite z vprašanji noul.</li><li><strong>Sovražno besedilo.</strong> Model privzeto ne pričakuje pasti v stanju: vstavljeno navodilo ali besedilo, ki razpravlja o lastni razvrstitvi, lahko premakne odgovor. Zapišite natančna merila in pred zagonom preverite mejne primere.</li><li><strong>Protislovja.</strong> Če <code>instructions</code> in <code>criteria</code> zahtevata različno — na primer je pri noul »da« opisan kot »ne« — natančnost pade. Merila so nadaljevanje vprašanja.</li><li><strong>Vrstni red možnosti.</strong> Model se včasih nagiba k prvi možnosti choice. Preuredite možnosti in preverite, da se odgovor ne spremeni.</li><li><strong>Ustvarjanje besedila.</strong> Jev ni naučen pisati besedila. Za izluščanje podatkov poiščite kandidate z regularnim izrazom ali generativnim modelom, Jev pa naj pravilnega izbere prek choice.</li></ol>",
  "aboutText": "Jev je vodilni model družbe TypeSafe in prvi model novega razreda **System One**. Ne piše besedila, temveč hitro sprejema odločitve, ki jih program lahko takoj uporabi: podate **stanje** (`state`) — besedilo ali JSON — in nabor **vprašanj**, v odgovor pa prejmete tipizirane vrednosti z umerjenimi verjetnostmi.\n\nJezikovni modeli pišejo besede za ljudi, Jev pa je po besedah družbe TypeSafe bližje kodi: odgovor je takoj v obliki, ki jo potrebuje koda, hitrost je visoka in nobena vrednost ni zunaj določenih možnosti. Model je zasnovan za dosledne odgovore pri ponovljenih zahtevah.\n\n### Kako se System One razlikuje od jezikovnega modela\n\n- **Ne ustvarja vsebine.** Jev ne piše odgovorov uporabniku, ne piše kode in ne razlaga poteka sklepanja. Možne odgovore določite vi — z eno od treh vrst vprašanj.\n- **Naučen je za umerjene odločitve.** TypeSafe model uči z metodo RLCD (Reinforcement Learning for Calibrated Decisions): verjetnosti se prilagajajo dejanskim izidom in odražajo negotovost. Med številnimi odgovori z verjetnostjo 0,8 naj bi jih bilo pravilnih približno 80%. Umerjenost je lastnost velikega vzorca in ne jamstvo pravilnosti posameznega odgovora.\n- **Drugačen cilj učenja.** Pogovorne modele učijo ugajati ljudem (RLHF), kar po opažanju družbe TypeSafe spodbuja ustrežljivost in samozavestno zveneče napake. Eden od soavtorjev RLHF, Diogo Almeida, je soustanovitelj družbe TypeSafe.\n\nIme se nanaša na »Sistem 1« iz knjige Daniela Kahnemana »Razmišljanje, hitro in počasno«: hitro intuitivno presojanje v nasprotju s počasnim premišljenim razmišljanjem »Sistema 2«. Jev je ustvarjen za hitre, ozke presoje.\n\n### Tri vrste vprašanj\n\nVprašanje je ena presoja o stanju, odgovor pa vrednost, ki jo koda primerja s pragom, razvrsti ali posreduje naprej.\n\n1. **Choice — izbira možnosti.** Oddelek za zahtevo, kategorija izdelka, jezik odseka kode. Možnosti so slovar »možnost → opis«, do 255 možnosti. Odgovor vsebuje izbrani `choice`, verjetnosti `probabilities` vseh možnosti (vsota je 1) in zaupanje `confidence`. Če seznam morda ne zajame vseh primerov, dodajte »drugo« ali »nič od navedenega«.\n2. **Score — ocena na lestvici.** Mesto na urejeni lestvici, ki jo opišete vi: resnost napake, razdraženost stranke, raven spretnosti. Od 2 do 10 ravni, od najnižje do najvišje; model vsako raven oceni ločeno, brez vpogleda v njeno številko in sosede. Odgovor vsebuje `score` (vsoto številk ravni, pomnoženih z njihovimi verjetnostmi, zato je vrednost lahko med ravnmi), `legend` z opisi ravni, `probabilities` in `confidence`.\n3. **Noul — da ali ne.** Ali je trditev pravilna. Odgovor `noul` je verjetnost »da« od 0 do 1: okoli 1 pomeni odločen »da«, okoli 0 odločen »ne«, okoli 0,5 pa model omahuje. Ločenega `confidence` ni: eno število v celoti opisuje odgovor. Neobvezni `criteria` natančneje določa, kaj šteje za »da« in kaj za »ne«.\n\nKako izbrati: znane neurejene možnosti — choice; stopnje spektra — score; čisti »da/ne«, kjer je pomembna sama verjetnost — noul. Noul 0,5 pomeni enaki možnosti za »da« in »ne«, ne pa »srednje ravni«: stopnjo meri score. Med dvema ustreznima vrstama izberite tisto, po kateri koda takoj ukrepa: choice — veje, score — prag, noul — `if`.\n\nVrste lahko združujete v eni zahtevi. Odgovor je vedno omejen na vaše možnosti in ni odvisen od drugih vprašanj: vprašanja lahko dodajate in odstranjujete brez spreminjanja drugih odgovorov.\n\n### Stanje\n\nStanje je tisto, kar model ocenjuje: sporočilo stranke, odsek dokumenta, zapis iz baze ali stanje vaše aplikacije.\n\n- **Niz** — kadar gre za eno besedilo: sporočilo, članek, odlomek.\n- **Objekt** — poimenovana polja, povezani zapisi, stanje aplikacije. TypeSafe za večino zahtev priporoča objekt: vsak del ima razumljivo ime.\n- **Polje** — zaporedje sporočil ali zapisov.\n\nPripravite ga kot gradivo za strokovnjake: dopisovanje, naročilo in pravila vračila podajte skupaj, če jih je za odločitev treba primerjati. Vsebina naj bo v stanju, presoje pa v vprašanjih. Če se vprašanje nanaša na en del stanja, v njem navedite pot do tega dela v obrnjenih narekovajih, na primer `ticket.messages[0].text`.\n\n### Kako postavljati vprašanja\n\n- **Ena hitra presoja na vprašanje.** Dobro vprašanje je tisto, na katero poznavalec s potrebnim kontekstom odgovori v sekundi: »Ali sporočilo izraža nujnost?«. »Analiziraj sporočilo in se odloči, kaj storiti« je že počasno sklepanje, ki ga je treba razdeliti na preprosta vprašanja.\n- **Celotno vprašanje v `instructions`.** Ključ vprašanja, na primer `refund_requested`, potrebuje samo vaša koda in se ne posreduje modelu.\n- **Vsa vprašanja o enem stanju v eni zahtevi.** Model jih ocenjuje vzporedno: po podatkih družbe TypeSafe dodatna vprašanja skoraj ne podaljšajo odzivnega časa in stanejo le svoje tokene. Vprašanje »za vsak primer« je skoraj brezplačno — koda sama odloči, katere odgovore potrebuje.\n- **Zahtevna presoja po delih.** Namesto »oceni prijavo zagonskega podjetja« ločeno vprašajte o velikosti trga, tehnični izvedljivosti in razlikah od konkurentov, rezultat pa izračunajte v kodi z utežmi. Če se prednostne naloge spremenijo, spremenite uteži in ne vprašanja.\n- **Odvisna vprašanja v drugi zahtevi.** Odgovori iste zahteve drug drugemu ne služijo kot kontekst. Druga zahteva je potrebna le, če je brez prvega odgovora ni mogoče sestaviti: treba je naložiti podatke ali izbrati možnosti naslednjega vprašanja.\n- **Dolgo vprašanje kot objekt.** `instructions` in `criteria` sta običajno niza, lahko pa sta objekt ali polje: vprašanje v enem polju, podatki v drugih. Tako lahko z enim vprašanjem primerjate življenjepis z zapisi baze.\n\n### Zaupanje\n\nPri choice in score `confidence` od 0 do 1 kaže, koliko verjetnosti je zbrane pri enem odgovoru: 1 pomeni vso pri eni možnosti, 0 pa enakomerno pri vseh. Pri score sosednja raven zaupanje zmanjša manj kot oddaljena. Pri noul je zaupanje sama vrednost: bolj ko je oddaljena od 0,5, odločnejši je odgovor.\n\nTypeSafe priporoča tri območja:\n\n1. **Visoko zaupanje** — ukrepajte samodejno.\n2. **Srednje** — ukrepajte previdno, na primer prosite uporabnika za potrditev.\n3. **Nizko** — primer predajte človeku, natančneje določite zahtevo ali vključite rezervno pot, na primer zmogljivejši model s sklepanjem.\n\nVišja ko je cena napake, strožji naj bo prag: pri nepovratnih dejanjih višji kot pri branju. Odgovor pove, kaj izbrati, zaupanje pa, ali ukrepati. Pragove določite na lastnih podatkih s primerjanjem zaupanja in natančnosti.\n\n### Kako zgraditi sistem okoli Jev\n\nJev je zasnovan za programe, v katerih proces upravlja koda, model pa odgovarja na ozka pomenska vprašanja, in ne za agente, ki sami izbirajo naslednji korak ter se lahko v vsakem krogu zmotijo. Osem korakov načrtovanja po TypeSafe:\n\n1. Vse, kar lahko opravite s kodo, opravite s kodo — zanesljivo in poceni.\n2. V stanje vključite samo tisto, kar potrebujejo trenutna vprašanja; sveža dejstva vzemite iz lastne baze znanja in ne iz pomnilnika modela.\n3. Struktura v stanju: gnezden JSON, v vprašanju pa pot do ustreznega polja v obrnjenih narekovajih, če je tako manj dvoumnosti.\n4. Najbolj ozka in konkretna vprašanja — po besedah družbe TypeSafe morda glavno pravilo: široko vprašanje za enim odgovorom skriva več presoj.\n5. Struktura v vprašanjih: samo vprašanje naj bo kratko; pojasnila, primeri in vrednosti iz vaše baze naj bodo v sosednjih poljih objekta `instructions` ali `criteria`, ne v enem dolgem nizu.\n6. Več neodvisnih vprašanj o enem stanju v eni zahtevi — več koristi za vsak dolar.\n7. Odgovore združuje koda: s pravili, uteženo vsoto ali kot značilke za klasični model strojnega učenja.\n8. Razvejanje po zaupanju: negotove primere predajte človeku ali modelu s sklepanjem.\n\nJev ni pogovorni model ali model za dopolnjevanje kode in v agentskem programiranju ne more nadomestiti jezikovnega modela. Agent pa lahko za vas napiše kodo, ki Jev pokliče tam, kjer je potreben hiter umerjen odgovor.\n\n### Kje se uporablja\n\n- **Avtomatizacija v ozadju** — odločitve, ki se sprožijo milijonkrat brez človeka v bližini.\n- **Realni čas** — po podatkih družbe TypeSafe se večina zahtev izvede v približno 100 ms: dovolj za sprotno obdelavo in vmesnike.\n- **Veliki podatki** — iskanje po ogromnih korpusih, označevanje dnevnikov agentskega dela, značilke za napovedi.\n- **Preverjanje drugih modelov** — zahteve, izluščanje, sklepanje, klici orodij: obhodi omejitev, napake pri citiranju, izmišljotine.\n- **Iskanje in razvrščanje** — ustreznost para »poizvedba — kandidat«, ponovno razvrščanje, izbira konteksta.\n- **Razvejanje po namenu** — kaj želi uporabnik in kateri obdelovalec je potreben: preprosta logika, specializiran model ali človek; tema, zahtevnost in tveganje določajo, kateremu jezikovnemu modelu predati zahtevo.\n- **Zaščitna preverjanja** — vhod, izhod in klici orodij jezikovnega modela: vstavljena navodila, kršitve pravil, uhajanje osebnih podatkov.\n- **Podpora** — tema in namen zahteve, nujnost, razdraženost, tveganje odhoda, prošnja za vračilo, čakalna vrsta.\n- **Moderiranje** — po pravilih vaše platforme: toksičnost, nadlegovanje, neželena sporočila, goljufije, nevarni nasveti, osebni podatki; glede na resnost in zaupanje prepustite, opozorite, preverite ali blokirajte.\n- **Področja** — zavarovalni primeri, finančne preiskave in KYC, pogodbe in oglaševanje, kartice izdelkov, zaposlovanje, potencialne stranke, igre, tveganja, napoved povpraševanja, grafi znanja, znanstveni pregledi, pomenska preverjanja kode v CI.\n\n### Značilnosti\n\n- **`jev-latest`** — vzdevek zadnje stabilne različice, trenutno Jev 1.13; različica, ki je odgovorila, je v polju `model`, na primer `jev-1.13.0`. Ob novi različici vzdevek preide nanjo in odgovori se lahko spremenijo brez vaših popravkov — spremljajte to polje, če so pragovi prilagojeni različici.\n- **Kontekst** — 64K tokenov na zahtevo: stanje in vsa vprašanja skupaj; stanje z najdaljšim vprašanjem do 32K. Model stanje prebere enkrat in vzporedno glede nanj preverja vsa vprašanja.\n- **Vhod** — samo besedilo: niz, objekt JSON ali polje besedil. Slike, zvok in video še niso podprti — predhodno jih pretvorite v besedilo.\n- **Jezik** — glavni jezik učenja je angleščina, v kateri je natančnost trenutno največja. Model sprejema tudi druge jezike, vključno s kitajščino, japonščino in korejščino, vendar je natančnost manjša — preverite na lastnih podatkih.\n- **Cene in obračunavanje v Ailoot API** — pogoji so odvisni od izbrane metode in navedeni na njeni kartici.\n- **Prilagajanje** — Jev se ne uči dodatno na podatkih naročnika: lastno gradivo podajte v `state`, področne zahteve pa v `instructions` in `criteria`.\n- **Podatki** — TypeSafe sporoča, da Jev ne učijo na zahtevah in odgovorih strank.\n\n### Znane šibke točke Jev 1.13\n\nTypeSafe odkrito navaja šibke točke trenutne različice in obljublja številne izboljšave v naslednjih. Model je hiter, umerjen in dobro presoja po zdravi pameti, vendar:\n\n1. **Bere dobesedno.** Odgovarja na napisano vprašanje in ne na mišljeno: pridržke, zanikanja in neizrecne pogoje razume dobesedno. Natančen pogoj in mejne primere zapišite v `criteria`; neizogibno razlago razdelite na dve dobesedni vprašanji.\n2. **Ni kalkulator.** Štetje znakov, ponovitev in elementov seznama je nezanesljivo, napaka pa raste z velikostjo — štejte v kodi, z enim vprašanjem na kandidata. Barve v hex ali RGB model razume slabše od imen. `score` je primeren za prag, ne za natančno število med ravnmi.\n3. **Datumi in čas.** Kateri datum je prej, koliko časa je med njima, ali datum spada v obdobje — to je nezanesljivo, posebej pri mešanih formatih in relativnih datumih. Dele datuma izluščite prek choice (z možnostjo »ni navedeno«), primerjajte pa v kodi.\n4. **Posrednost.** Dvojna zanikanja in vprašanja o lastnosti lastnosti zmanjšujejo natančnost. Pišite neposredno in dele stanja poimenujte.\n5. **Odvečno v stanju.** Nepovezano besedilo zmanjšuje natančnost. Filtrirajte v kodi, če to ni mogoče, pa nepomembno izločite z vprašanji noul.\n6. **Sovražno besedilo.** Model privzeto ne pričakuje pasti v stanju: vstavljeno navodilo ali besedilo, ki razpravlja o lastni razvrstitvi, lahko premakne odgovor. Zapišite natančna merila in pred zagonom preverite mejne primere.\n7. **Protislovja.** Če `instructions` in `criteria` zahtevata različno — na primer je pri noul »da« opisan kot »ne« — natančnost pade. Merila so nadaljevanje vprašanja.\n8. **Vrstni red možnosti.** Model se včasih nagiba k prvi možnosti choice. Preuredite možnosti in preverite, da se odgovor ne spremeni.\n9. **Ustvarjanje besedila.** Jev ni naučen pisati besedila. Za izluščanje podatkov poiščite kandidate z regularnim izrazom ali generativnim modelom, Jev pa naj pravilnega izbere prek choice.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "6aa45a81750e36c6d68466ffd24554b0c2fe23887cd5b056a530a79ce9d88029",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "sl",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">TS</span><h2 id=\"sheet-title\">jev-latest</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Zapri\">×</button></div><div class=\"idline\"><span>TypeSafe /</span><code>jev-latest</code><button type=\"button\" id=\"copy-id\">Kopiraj ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Razdelki kartice modela\"><button type=\"button\" data-card-jump=\"overview\">Začetek</button><button type=\"button\" data-card-jump=\"methods\">Vhodi in metode</button><button type=\"button\" data-card-jump=\"pricing\">Cenik</button><button type=\"button\" data-card-jump=\"examples\">Primeri</button><button type=\"button\" data-card-jump=\"results\">Rezultati</button><button type=\"button\" data-card-jump=\"aliases\">Druga imena</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Metode API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Core|systemone|/v1/systemone|jev-latest\">System One</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Začetek</h3><p class=\"mdesc-full\">Model za odločanje družbe TypeSafe: ne piše besedila, temveč odgovarja na tipizirana vprašanja o besedilu ali JSON — izbiro možnosti, oceno na lestvici ali »da/ne« z verjetnostmi. Primeren je za usmerjanje, razvrščanje zahtev, moderiranje in točkovanje; vsa vprašanja ene zahteve se ocenijo vzporedno.</p><dl class=\"card-io\" data-card-io><div><dt>Dovoljeni vhodi</dt><dd>Besedilo</dd></div><div><dt>Rezultati</dt><dd>structured</dd></div></dl><details class=\"card-about\"><summary>O modelu</summary><p class=\"note-s\" data-model-method-boundary>Ta opis zajema zmožnosti modela. Vhodi, izhodi in možnosti, ki so na voljo v Ailoot, so spodaj navedeni za izbrano metodo.</p><div class=\"mabout\" id=\"m-about\"><p>Jev je vodilni model družbe TypeSafe in prvi model novega razreda <strong>System One</strong>. Ne piše besedila, temveč hitro sprejema odločitve, ki jih program lahko takoj uporabi: podate <strong>stanje</strong> (<code>state</code>) — besedilo ali JSON — in nabor <strong>vprašanj</strong>, v odgovor pa prejmete tipizirane vrednosti z umerjenimi verjetnostmi.</p><p>Jezikovni modeli pišejo besede za ljudi, Jev pa je po besedah družbe TypeSafe bližje kodi: odgovor je takoj v obliki, ki jo potrebuje koda, hitrost je visoka in nobena vrednost ni zunaj določenih možnosti. Model je zasnovan za dosledne odgovore pri ponovljenih zahtevah.</p><h4>Kako se System One razlikuje od jezikovnega modela</h4><ul><li><strong>Ne ustvarja vsebine.</strong> Jev ne piše odgovorov uporabniku, ne piše kode in ne razlaga poteka sklepanja. Možne odgovore določite vi — z eno od treh vrst vprašanj.</li><li><strong>Naučen je za umerjene odločitve.</strong> TypeSafe model uči z metodo RLCD (Reinforcement Learning for Calibrated Decisions): verjetnosti se prilagajajo dejanskim izidom in odražajo negotovost. Med številnimi odgovori z verjetnostjo 0,8 naj bi jih bilo pravilnih približno 80%. Umerjenost je lastnost velikega vzorca in ne jamstvo pravilnosti posameznega odgovora.</li><li><strong>Drugačen cilj učenja.</strong> Pogovorne modele učijo ugajati ljudem (RLHF), kar po opažanju družbe TypeSafe spodbuja ustrežljivost in samozavestno zveneče napake. Eden od soavtorjev RLHF, Diogo Almeida, je soustanovitelj družbe TypeSafe.</li></ul><p>Ime se nanaša na »Sistem 1« iz knjige Daniela Kahnemana »Razmišljanje, hitro in počasno«: hitro intuitivno presojanje v nasprotju s počasnim premišljenim razmišljanjem »Sistema 2«. Jev je ustvarjen za hitre, ozke presoje.</p><h4>Tri vrste vprašanj</h4><p>Vprašanje je ena presoja o stanju, odgovor pa vrednost, ki jo koda primerja s pragom, razvrsti ali posreduje naprej.</p><ol><li><strong>Choice — izbira možnosti.</strong> Oddelek za zahtevo, kategorija izdelka, jezik odseka kode. Možnosti so slovar »možnost → opis«, do 255 možnosti. Odgovor vsebuje izbrani <code>choice</code>, verjetnosti <code>probabilities</code> vseh možnosti (vsota je 1) in zaupanje <code>confidence</code>. Če seznam morda ne zajame vseh primerov, dodajte »drugo« ali »nič od navedenega«.</li><li><strong>Score — ocena na lestvici.</strong> Mesto na urejeni lestvici, ki jo opišete vi: resnost napake, razdraženost stranke, raven spretnosti. Od 2 do 10 ravni, od najnižje do najvišje; model vsako raven oceni ločeno, brez vpogleda v njeno številko in sosede. Odgovor vsebuje <code>score</code> (vsoto številk ravni, pomnoženih z njihovimi verjetnostmi, zato je vrednost lahko med ravnmi), <code>legend</code> z opisi ravni, <code>probabilities</code> in <code>confidence</code>.</li><li><strong>Noul — da ali ne.</strong> Ali je trditev pravilna. Odgovor <code>noul</code> je verjetnost »da« od 0 do 1: okoli 1 pomeni odločen »da«, okoli 0 odločen »ne«, okoli 0,5 pa model omahuje. Ločenega <code>confidence</code> ni: eno število v celoti opisuje odgovor. Neobvezni <code>criteria</code> natančneje določa, kaj šteje za »da« in kaj za »ne«.</li></ol><p>Kako izbrati: znane neurejene možnosti — choice; stopnje spektra — score; čisti »da/ne«, kjer je pomembna sama verjetnost — noul. Noul 0,5 pomeni enaki možnosti za »da« in »ne«, ne pa »srednje ravni«: stopnjo meri score. Med dvema ustreznima vrstama izberite tisto, po kateri koda takoj ukrepa: choice — veje, score — prag, noul — <code>if</code>.</p><p>Vrste lahko združujete v eni zahtevi. Odgovor je vedno omejen na vaše možnosti in ni odvisen od drugih vprašanj: vprašanja lahko dodajate in odstranjujete brez spreminjanja drugih odgovorov.</p><h4>Stanje</h4><p>Stanje je tisto, kar model ocenjuje: sporočilo stranke, odsek dokumenta, zapis iz baze ali stanje vaše aplikacije.</p><ul><li><strong>Niz</strong> — kadar gre za eno besedilo: sporočilo, članek, odlomek.</li><li><strong>Objekt</strong> — poimenovana polja, povezani zapisi, stanje aplikacije. TypeSafe za večino zahtev priporoča objekt: vsak del ima razumljivo ime.</li><li><strong>Polje</strong> — zaporedje sporočil ali zapisov.</li></ul><p>Pripravite ga kot gradivo za strokovnjake: dopisovanje, naročilo in pravila vračila podajte skupaj, če jih je za odločitev treba primerjati. Vsebina naj bo v stanju, presoje pa v vprašanjih. Če se vprašanje nanaša na en del stanja, v njem navedite pot do tega dela v obrnjenih narekovajih, na primer <code>ticket.messages[0].text</code>.</p><h4>Kako postavljati vprašanja</h4><ul><li><strong>Ena hitra presoja na vprašanje.</strong> Dobro vprašanje je tisto, na katero poznavalec s potrebnim kontekstom odgovori v sekundi: »Ali sporočilo izraža nujnost?«. »Analiziraj sporočilo in se odloči, kaj storiti« je že počasno sklepanje, ki ga je treba razdeliti na preprosta vprašanja.</li><li><strong>Celotno vprašanje v <code>instructions</code>.</strong> Ključ vprašanja, na primer <code>refund_requested</code>, potrebuje samo vaša koda in se ne posreduje modelu.</li><li><strong>Vsa vprašanja o enem stanju v eni zahtevi.</strong> Model jih ocenjuje vzporedno: po podatkih družbe TypeSafe dodatna vprašanja skoraj ne podaljšajo odzivnega časa in stanejo le svoje tokene. Vprašanje »za vsak primer« je skoraj brezplačno — koda sama odloči, katere odgovore potrebuje.</li><li><strong>Zahtevna presoja po delih.</strong> Namesto »oceni prijavo zagonskega podjetja« ločeno vprašajte o velikosti trga, tehnični izvedljivosti in razlikah od konkurentov, rezultat pa izračunajte v kodi z utežmi. Če se prednostne naloge spremenijo, spremenite uteži in ne vprašanja.</li><li><strong>Odvisna vprašanja v drugi zahtevi.</strong> Odgovori iste zahteve drug drugemu ne služijo kot kontekst. Druga zahteva je potrebna le, če je brez prvega odgovora ni mogoče sestaviti: treba je naložiti podatke ali izbrati možnosti naslednjega vprašanja.</li><li><strong>Dolgo vprašanje kot objekt.</strong> <code>instructions</code> in <code>criteria</code> sta običajno niza, lahko pa sta objekt ali polje: vprašanje v enem polju, podatki v drugih. Tako lahko z enim vprašanjem primerjate življenjepis z zapisi baze.</li></ul><h4>Zaupanje</h4><p>Pri choice in score <code>confidence</code> od 0 do 1 kaže, koliko verjetnosti je zbrane pri enem odgovoru: 1 pomeni vso pri eni možnosti, 0 pa enakomerno pri vseh. Pri score sosednja raven zaupanje zmanjša manj kot oddaljena. Pri noul je zaupanje sama vrednost: bolj ko je oddaljena od 0,5, odločnejši je odgovor.</p><p>TypeSafe priporoča tri območja:</p><ol><li><strong>Visoko zaupanje</strong> — ukrepajte samodejno.</li><li><strong>Srednje</strong> — ukrepajte previdno, na primer prosite uporabnika za potrditev.</li><li><strong>Nizko</strong> — primer predajte človeku, natančneje določite zahtevo ali vključite rezervno pot, na primer zmogljivejši model s sklepanjem.</li></ol><p>Višja ko je cena napake, strožji naj bo prag: pri nepovratnih dejanjih višji kot pri branju. Odgovor pove, kaj izbrati, zaupanje pa, ali ukrepati. Pragove določite na lastnih podatkih s primerjanjem zaupanja in natančnosti.</p><h4>Kako zgraditi sistem okoli Jev</h4><p>Jev je zasnovan za programe, v katerih proces upravlja koda, model pa odgovarja na ozka pomenska vprašanja, in ne za agente, ki sami izbirajo naslednji korak ter se lahko v vsakem krogu zmotijo. Osem korakov načrtovanja po TypeSafe:</p><ol><li>Vse, kar lahko opravite s kodo, opravite s kodo — zanesljivo in poceni.</li><li>V stanje vključite samo tisto, kar potrebujejo trenutna vprašanja; sveža dejstva vzemite iz lastne baze znanja in ne iz pomnilnika modela.</li><li>Struktura v stanju: gnezden JSON, v vprašanju pa pot do ustreznega polja v obrnjenih narekovajih, če je tako manj dvoumnosti.</li><li>Najbolj ozka in konkretna vprašanja — po besedah družbe TypeSafe morda glavno pravilo: široko vprašanje za enim odgovorom skriva več presoj.</li><li>Struktura v vprašanjih: samo vprašanje naj bo kratko; pojasnila, primeri in vrednosti iz vaše baze naj bodo v sosednjih poljih objekta <code>instructions</code> ali <code>criteria</code>, ne v enem dolgem nizu.</li><li>Več neodvisnih vprašanj o enem stanju v eni zahtevi — več koristi za vsak dolar.</li><li>Odgovore združuje koda: s pravili, uteženo vsoto ali kot značilke za klasični model strojnega učenja.</li><li>Razvejanje po zaupanju: negotove primere predajte človeku ali modelu s sklepanjem.</li></ol><p>Jev ni pogovorni model ali model za dopolnjevanje kode in v agentskem programiranju ne more nadomestiti jezikovnega modela. Agent pa lahko za vas napiše kodo, ki Jev pokliče tam, kjer je potreben hiter umerjen odgovor.</p><h4>Kje se uporablja</h4><ul><li><strong>Avtomatizacija v ozadju</strong> — odločitve, ki se sprožijo milijonkrat brez človeka v bližini.</li><li><strong>Realni čas</strong> — po podatkih družbe TypeSafe se večina zahtev izvede v približno 100 ms: dovolj za sprotno obdelavo in vmesnike.</li><li><strong>Veliki podatki</strong> — iskanje po ogromnih korpusih, označevanje dnevnikov agentskega dela, značilke za napovedi.</li><li><strong>Preverjanje drugih modelov</strong> — zahteve, izluščanje, sklepanje, klici orodij: obhodi omejitev, napake pri citiranju, izmišljotine.</li><li><strong>Iskanje in razvrščanje</strong> — ustreznost para »poizvedba — kandidat«, ponovno razvrščanje, izbira konteksta.</li><li><strong>Razvejanje po namenu</strong> — kaj želi uporabnik in kateri obdelovalec je potreben: preprosta logika, specializiran model ali človek; tema, zahtevnost in tveganje določajo, kateremu jezikovnemu modelu predati zahtevo.</li><li><strong>Zaščitna preverjanja</strong> — vhod, izhod in klici orodij jezikovnega modela: vstavljena navodila, kršitve pravil, uhajanje osebnih podatkov.</li><li><strong>Podpora</strong> — tema in namen zahteve, nujnost, razdraženost, tveganje odhoda, prošnja za vračilo, čakalna vrsta.</li><li><strong>Moderiranje</strong> — po pravilih vaše platforme: toksičnost, nadlegovanje, neželena sporočila, goljufije, nevarni nasveti, osebni podatki; glede na resnost in zaupanje prepustite, opozorite, preverite ali blokirajte.</li><li><strong>Področja</strong> — zavarovalni primeri, finančne preiskave in KYC, pogodbe in oglaševanje, kartice izdelkov, zaposlovanje, potencialne stranke, igre, tveganja, napoved povpraševanja, grafi znanja, znanstveni pregledi, pomenska preverjanja kode v CI.</li></ul><h4>Značilnosti</h4><ul><li><strong><code>jev-latest</code></strong> — vzdevek zadnje stabilne različice, trenutno Jev 1.13; različica, ki je odgovorila, je v polju <code>model</code>, na primer <code>jev-1.13.0</code>. Ob novi različici vzdevek preide nanjo in odgovori se lahko spremenijo brez vaših popravkov — spremljajte to polje, če so pragovi prilagojeni različici.</li><li><strong>Kontekst</strong> — 64K tokenov na zahtevo: stanje in vsa vprašanja skupaj; stanje z najdaljšim vprašanjem do 32K. Model stanje prebere enkrat in vzporedno glede nanj preverja vsa vprašanja.</li><li><strong>Vhod</strong> — samo besedilo: niz, objekt JSON ali polje besedil. Slike, zvok in video še niso podprti — predhodno jih pretvorite v besedilo.</li><li><strong>Jezik</strong> — glavni jezik učenja je angleščina, v kateri je natančnost trenutno največja. Model sprejema tudi druge jezike, vključno s kitajščino, japonščino in korejščino, vendar je natančnost manjša — preverite na lastnih podatkih.</li><li><strong>Cene in obračunavanje v Ailoot API</strong> — pogoji so odvisni od izbrane metode in navedeni na njeni kartici.</li><li><strong>Prilagajanje</strong> — Jev se ne uči dodatno na podatkih naročnika: lastno gradivo podajte v <code>state</code>, področne zahteve pa v <code>instructions</code> in <code>criteria</code>.</li><li><strong>Podatki</strong> — TypeSafe sporoča, da Jev ne učijo na zahtevah in odgovorih strank.</li></ul><h4>Znane šibke točke Jev 1.13</h4><p>TypeSafe odkrito navaja šibke točke trenutne različice in obljublja številne izboljšave v naslednjih. Model je hiter, umerjen in dobro presoja po zdravi pameti, vendar:</p><ol><li><strong>Bere dobesedno.</strong> Odgovarja na napisano vprašanje in ne na mišljeno: pridržke, zanikanja in neizrecne pogoje razume dobesedno. Natančen pogoj in mejne primere zapišite v <code>criteria</code>; neizogibno razlago razdelite na dve dobesedni vprašanji.</li><li><strong>Ni kalkulator.</strong> Štetje znakov, ponovitev in elementov seznama je nezanesljivo, napaka pa raste z velikostjo — štejte v kodi, z enim vprašanjem na kandidata. Barve v hex ali RGB model razume slabše od imen. <code>score</code> je primeren za prag, ne za natančno število med ravnmi.</li><li><strong>Datumi in čas.</strong> Kateri datum je prej, koliko časa je med njima, ali datum spada v obdobje — to je nezanesljivo, posebej pri mešanih formatih in relativnih datumih. Dele datuma izluščite prek choice (z možnostjo »ni navedeno«), primerjajte pa v kodi.</li><li><strong>Posrednost.</strong> Dvojna zanikanja in vprašanja o lastnosti lastnosti zmanjšujejo natančnost. Pišite neposredno in dele stanja poimenujte.</li><li><strong>Odvečno v stanju.</strong> Nepovezano besedilo zmanjšuje natančnost. Filtrirajte v kodi, če to ni mogoče, pa nepomembno izločite z vprašanji noul.</li><li><strong>Sovražno besedilo.</strong> Model privzeto ne pričakuje pasti v stanju: vstavljeno navodilo ali besedilo, ki razpravlja o lastni razvrstitvi, lahko premakne odgovor. Zapišite natančna merila in pred zagonom preverite mejne primere.</li><li><strong>Protislovja.</strong> Če <code>instructions</code> in <code>criteria</code> zahtevata različno — na primer je pri noul »da« opisan kot »ne« — natančnost pade. Merila so nadaljevanje vprašanja.</li><li><strong>Vrstni red možnosti.</strong> Model se včasih nagiba k prvi možnosti choice. Preuredite možnosti in preverite, da se odgovor ne spremeni.</li><li><strong>Ustvarjanje besedila.</strong> Jev ni naučen pisati besedila. Za izluščanje podatkov poiščite kandidate z regularnim izrazom ali generativnim modelom, Jev pa naj pravilnega izbere prek choice.</li></ol></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Na voljo v Ailoot · vhodi in metode</h3><details class=\"card-method\" open><summary><b>Ailoot · System One</b> <code>POST /v1/systemone</code></summary><dl class=\"method-capabilities\"><div><dt>Vhod</dt><dd><code>text</code></dd></div><div><dt>Izhod</dt><dd><code>structured</code></dd></div><div><dt>Kontekst</dt><dd>64.000 tokens</dd></div><div><dt>Izhodni format</dt><dd>json</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Polje</th><th>Vrsta</th><th>Zahteva</th><th>Vrednosti in omejitve</th><th>Privzeto</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>string</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Obvezno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>jev-latest</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">state</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>string|object|array</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Obvezno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">questions</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>object</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Obvezno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>Najmanjše število polj objekta: 1</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">questions.&lt;id&gt;.type</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>string</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Obvezno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>noul, choice, score</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">questions.&lt;id&gt;.instructions</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>string|object|array|null</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Izbirno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">questions.&lt;id&gt;.criteria</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>object|array|null</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Izbirno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>Pogoji: noul: neobvezna opisa za true/false, ki lahko vsebujeta null; choice: objekt meril; score: neprazno polje meril</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>boolean|null</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Izbirno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>false, null</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinacije vhodnih gradiv</summary><p class=\"note-s\"><b>noul</b> · Obvezno: state, questions.&lt;id&gt;.type=noul</p><p class=\"note-s\"><b>choice</b> · Obvezno: state, questions.&lt;id&gt;.type=choice, criteria object</p><p class=\"note-s\"><b>score</b> · Obvezno: state, questions.&lt;id&gt;.type=score, nonemptycriteriaarray</p></details><details class=\"note-s\" data-method-contract><summary>Parametri in življenjski cikel metode</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Specifikacija</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>text</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>model, state, questions</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>optional_controls</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>null</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>application/json</td></tr></tbody></table></div><p>Življenjski cikel: <code>exact retained published method</code></p><p class=\"note-s\">Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Cenik</h3><h4>Cene metod Ailoot</h4><section class=\"meth\" data-route=\"Core\"><header><b><span class=\"alias\">Ailoot</span> System One</b><code>POST /v1/systemone</code></header><dl><div><dt>Vhod</dt><dd>≈0,000084 $ <em>/ 1K</em></dd></div><div><dt>Izhod</dt><dd>0,00 $ <em>/ 1K</em></dd></div></dl></section><p class=\"note-s\">Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. <a href=\"/docs/sl/billing/reserve/\">Kako delujeta rezervacija in obračun →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Primeri zahtev</h3><h4>Ailoot · System One</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Primeri kode\"><button class=\"cg-tab\" id=\"model-code-665-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-665-panel-0\" aria-selected=\"true\" tabindex=\"0\">Primer razvrščanja</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopiraj kodo\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-665-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-665-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_TEXT_FILE:?Set your actual UTF-8 customer message}&quot;\nexport AILOOT_TEXT_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;jev-latest&quot;, &quot;state&quot;: &quot;&quot;, &quot;questions&quot;: {&quot;is_urgent&quot;: {&quot;type&quot;: &quot;noul&quot;, &quot;instructions&quot;: &quot;Does the supplied customer message express urgency?&quot;}}}&#39;)\nf=Path(os.environ[&quot;AILOOT_TEXT_FILE&quot;])\nif not f.is_file():raise SystemExit(&quot;Choose your actual UTF-8 source material&quot;)\ntext=f.read_text(encoding=&quot;utf-8&quot;)\nif not text.strip():raise SystemExit(&quot;Source material must contain text&quot;)\np[&quot;state&quot;]=text\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/systemone \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(&quot;result.json&quot;).read_text()),ensure_ascii=False,indent=2))\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Prejmi in shrani rezultate</h3><h4>Ailoot · System One</h4><p class=\"note-s\">json</p><div class=\"card-result-process\" data-all-results><h5>Ohrani vse dokončane rezultate</h5><p class=\"note-s\">Shranite vsak v celoti vrnjen odgovor, datoteko in del vsebine.</p><p class=\"note-s\">Ohranite vsak odgovor z njegovim podanim ID-jem vprašanja, verjetnostjo in legendo; formula zaupanja z n zahteva n&gt;1, ne da bi določala pravilo API o najmanjšem številu izbir.</p></div><details class=\"card-about\" data-output-fields><summary>Polja odgovora</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Polje</th><th>Vrsta</th></tr></thead><tbody><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">answers.&lt;id&gt;.type</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>string</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">answers.&lt;id&gt;.noul</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>number</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">answers.&lt;id&gt;.choice</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>string</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">answers.&lt;id&gt;.score</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>number</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">answers.&lt;id&gt;.confidence</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>number</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">answers.&lt;id&gt;.probabilities</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>object</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">answers.&lt;id&gt;.legend</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>object</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Napake in naslednji koraki</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Odgovor</th><th>Pogoj</th><th>Naslednji korak</th></tr></thead><tbody><tr><th data-cell-label=\"Odgovor\" scope=\"row\"><span class=\"card-cell-label\">Odgovor</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Pogoj\"><span class=\"card-cell-label\">Pogoj</span>Neveljavna obvezna polja, predstavitev gradiva ali vrednost parametra</td><td data-cell-label=\"Naslednji korak\"><span class=\"card-cell-label\">Naslednji korak</span>Pred novo zahtevo za ustvarjanje popravite navedena polja.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Druga imena</h3><h4>Druga imena modelov</h4><p class=\"note-s\"><span data-model-alias-route=\"Core\"><b>Ailoot</b> <a href=\"#m=jev-latest&amp;route=Core&amp;caller=jev-latest&amp;fmt=systemone\"><code>jev-latest</code></a></span></p><h4>Druga imena poti metod</h4><p class=\"note-s\">Uporabite zgoraj navedene poti metod.</p><h4>Povezani ID-ji za klic</h4><p class=\"note-s\"><a href=\"#m=jev-latest&amp;route=Core&amp;caller=jev-latest&amp;fmt=systemone\"><code>jev-latest</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "jev-latest",
        "fmt": "systemone",
        "http": "POST",
        "path": "/v1/systemone",
        "request_model_id": "jev-latest",
        "route_label": "Core"
      },
      "method_key": "Core|systemone|/v1/systemone|jev-latest",
      "ordinal": 0,
      "rawMethod": {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "Retain every answer by its supplied question ID, probability and legend; confidenceformulausingnrequiresn>1withoutassertinganAPIminchoicesrule.",
            "errors": [
              {
                "code": null,
                "condition": "Neveljavna obvezna polja, predstavitev gradiva ali vrednost parametra",
                "http_status": 400,
                "recovery": "Pred novo zahtevo za ustvarjanje popravite navedena polja.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "mode": "exact retained published method"
            },
            "material_combinations": [
              {
                "mode": "noul",
                "required": [
                  "state",
                  "questions.<id>.type=noul"
                ]
              },
              {
                "mode": "choice",
                "required": [
                  "state",
                  "questions.<id>.type=choice",
                  "criteria object"
                ]
              },
              {
                "mode": "score",
                "required": [
                  "state",
                  "questions.<id>.type=score",
                  "nonemptycriteriaarray"
                ]
              }
            ],
            "operation_modes": [
              "noul",
              "choice",
              "score"
            ],
            "outputs": {
              "all_results": "Ohranite vsak odgovor z njegovim podanim ID-jem vprašanja, verjetnostjo in legendo; formula zaupanja z n zahteva n>1, ne da bi določala pravilo API o najmanjšem številu izbir.",
              "family": "structured",
              "fields": [
                {
                  "description": null,
                  "name": "answers.<id>.type",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "answers.<id>.noul",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "answers.<id>.choice",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "answers.<id>.score",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "answers.<id>.confidence",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "answers.<id>.probabilities",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "answers.<id>.legend",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "jev-latest"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "state",
                "required": true,
                "type": "string|object|array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_properties": 1,
                "name": "questions",
                "required": true,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "noul",
                  "choice",
                  "score"
                ],
                "enum_known": true,
                "name": "questions.<id>.type",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "questions.<id>.instructions",
                "required": false,
                "type": "string|object|array|null"
              },
              {
                "availability": "source_interface",
                "conditions": "noul: neobvezna opisa za true/false, ki lahko vsebujeta null; choice: objekt meril; score: neprazno polje meril",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "questions.<id>.criteria",
                "required": false,
                "type": "object|array|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  null
                ],
                "enum_known": true,
                "name": "stream",
                "required": false,
                "type": "boolean|null"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "stream=true",
              "duplicateandcase-variedcanonicalkeys"
            ]
          },
          "hints": [
            "Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve."
          ],
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": [
              "model",
              "state",
              "questions"
            ]
          },
          "lifecycle": {
            "mode": "exact retained published method"
          },
          "method": {
            "http": "POST",
            "path": "/v1/systemone"
          },
          "operation_modes": [
            "systemone"
          ],
          "output": {
            "family": [
              "structured"
            ],
            "format": "structured decisions JSON",
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": 64000,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 customer message}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"jev-latest\", \"state\": \"\", \"questions\": {\"is_urgent\": {\"type\": \"noul\", \"instructions\": \"Does the supplied customer message express urgency?\"}}}')\nf=Path(os.environ[\"AILOOT_TEXT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 source material\")\ntext=f.read_text(encoding=\"utf-8\")\nif not text.strip():raise SystemExit(\"Source material must contain text\")\np[\"state\"]=text\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/systemone \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"result.json\").read_text()),ensure_ascii=False,indent=2))\nPY_RESULT\n",
            "label": "Classify your actual customer message",
            "language": "bash"
          }
        ],
        "family": "systemone",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "systemone",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": 0.084,
        "input": [
          "text"
        ],
        "label": "System One",
        "max_out": 0,
        "max_tool_calls": null,
        "out": 0,
        "output": [
          "structured"
        ],
        "path": "/v1/systemone",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.084,
                "amount_unit": "usd_per_million_tokens",
                "key": "in",
                "label": "Input",
                "side": "in"
              },
              {
                "amount": 0,
                "amount_unit": "usd_per_million_tokens",
                "key": "out",
                "label": "Output",
                "side": "out"
              }
            ]
          }
        ],
        "request_model_id": "jev-latest",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "token",
        "units": []
      }
    }
  ],
  "model_id": "jev-latest",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "1128ac222c745245a90fcf673505498e9433496480416348ed6bd666aff8c11d",
    "input_html_sha256": "3a4c28069db08e14468ce63a6f7a33cab9241cb7c05d987744728abca716c3ec",
    "private_audit_sha256": "6092b5f6980c23abeddfe67663df11155049fb68eed1ed0a9afe10890c80f451",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/sl/jev-latest/",
    "description": "Model za odločanje družbe TypeSafe: ne piše besedila, temveč odgovarja na tipizirana vprašanja o besedilu ali JSON — izbiro možnosti, oceno na lestvici ali »da/ne« z verjetnostmi. Primeren je za usmerjanje, razvrščanje zahtev, moderiranje in točkovanje; vsa vprašanja ene zahteve se ocenijo vzporedno.",
    "locale": "sl",
    "md_url": "https://ailoot.ai/models/sl/jev-latest/index.md",
    "title": "jev-latest — Ailoot",
    "url": "https://ailoot.ai/models/sl/jev-latest/"
  },
  "rawModel": {
    "about": "Jev je vodilni model družbe TypeSafe in prvi model novega razreda **System One**. Ne piše besedila, temveč hitro sprejema odločitve, ki jih program lahko takoj uporabi: podate **stanje** (`state`) — besedilo ali JSON — in nabor **vprašanj**, v odgovor pa prejmete tipizirane vrednosti z umerjenimi verjetnostmi.\n\nJezikovni modeli pišejo besede za ljudi, Jev pa je po besedah družbe TypeSafe bližje kodi: odgovor je takoj v obliki, ki jo potrebuje koda, hitrost je visoka in nobena vrednost ni zunaj določenih možnosti. Model je zasnovan za dosledne odgovore pri ponovljenih zahtevah.\n\n### Kako se System One razlikuje od jezikovnega modela\n\n- **Ne ustvarja vsebine.** Jev ne piše odgovorov uporabniku, ne piše kode in ne razlaga poteka sklepanja. Možne odgovore določite vi — z eno od treh vrst vprašanj.\n- **Naučen je za umerjene odločitve.** TypeSafe model uči z metodo RLCD (Reinforcement Learning for Calibrated Decisions): verjetnosti se prilagajajo dejanskim izidom in odražajo negotovost. Med številnimi odgovori z verjetnostjo 0,8 naj bi jih bilo pravilnih približno 80%. Umerjenost je lastnost velikega vzorca in ne jamstvo pravilnosti posameznega odgovora.\n- **Drugačen cilj učenja.** Pogovorne modele učijo ugajati ljudem (RLHF), kar po opažanju družbe TypeSafe spodbuja ustrežljivost in samozavestno zveneče napake. Eden od soavtorjev RLHF, Diogo Almeida, je soustanovitelj družbe TypeSafe.\n\nIme se nanaša na »Sistem 1« iz knjige Daniela Kahnemana »Razmišljanje, hitro in počasno«: hitro intuitivno presojanje v nasprotju s počasnim premišljenim razmišljanjem »Sistema 2«. Jev je ustvarjen za hitre, ozke presoje.\n\n### Tri vrste vprašanj\n\nVprašanje je ena presoja o stanju, odgovor pa vrednost, ki jo koda primerja s pragom, razvrsti ali posreduje naprej.\n\n1. **Choice — izbira možnosti.** Oddelek za zahtevo, kategorija izdelka, jezik odseka kode. Možnosti so slovar »možnost → opis«, do 255 možnosti. Odgovor vsebuje izbrani `choice`, verjetnosti `probabilities` vseh možnosti (vsota je 1) in zaupanje `confidence`. Če seznam morda ne zajame vseh primerov, dodajte »drugo« ali »nič od navedenega«.\n2. **Score — ocena na lestvici.** Mesto na urejeni lestvici, ki jo opišete vi: resnost napake, razdraženost stranke, raven spretnosti. Od 2 do 10 ravni, od najnižje do najvišje; model vsako raven oceni ločeno, brez vpogleda v njeno številko in sosede. Odgovor vsebuje `score` (vsoto številk ravni, pomnoženih z njihovimi verjetnostmi, zato je vrednost lahko med ravnmi), `legend` z opisi ravni, `probabilities` in `confidence`.\n3. **Noul — da ali ne.** Ali je trditev pravilna. Odgovor `noul` je verjetnost »da« od 0 do 1: okoli 1 pomeni odločen »da«, okoli 0 odločen »ne«, okoli 0,5 pa model omahuje. Ločenega `confidence` ni: eno število v celoti opisuje odgovor. Neobvezni `criteria` natančneje določa, kaj šteje za »da« in kaj za »ne«.\n\nKako izbrati: znane neurejene možnosti — choice; stopnje spektra — score; čisti »da/ne«, kjer je pomembna sama verjetnost — noul. Noul 0,5 pomeni enaki možnosti za »da« in »ne«, ne pa »srednje ravni«: stopnjo meri score. Med dvema ustreznima vrstama izberite tisto, po kateri koda takoj ukrepa: choice — veje, score — prag, noul — `if`.\n\nVrste lahko združujete v eni zahtevi. Odgovor je vedno omejen na vaše možnosti in ni odvisen od drugih vprašanj: vprašanja lahko dodajate in odstranjujete brez spreminjanja drugih odgovorov.\n\n### Stanje\n\nStanje je tisto, kar model ocenjuje: sporočilo stranke, odsek dokumenta, zapis iz baze ali stanje vaše aplikacije.\n\n- **Niz** — kadar gre za eno besedilo: sporočilo, članek, odlomek.\n- **Objekt** — poimenovana polja, povezani zapisi, stanje aplikacije. TypeSafe za večino zahtev priporoča objekt: vsak del ima razumljivo ime.\n- **Polje** — zaporedje sporočil ali zapisov.\n\nPripravite ga kot gradivo za strokovnjake: dopisovanje, naročilo in pravila vračila podajte skupaj, če jih je za odločitev treba primerjati. Vsebina naj bo v stanju, presoje pa v vprašanjih. Če se vprašanje nanaša na en del stanja, v njem navedite pot do tega dela v obrnjenih narekovajih, na primer `ticket.messages[0].text`.\n\n### Kako postavljati vprašanja\n\n- **Ena hitra presoja na vprašanje.** Dobro vprašanje je tisto, na katero poznavalec s potrebnim kontekstom odgovori v sekundi: »Ali sporočilo izraža nujnost?«. »Analiziraj sporočilo in se odloči, kaj storiti« je že počasno sklepanje, ki ga je treba razdeliti na preprosta vprašanja.\n- **Celotno vprašanje v `instructions`.** Ključ vprašanja, na primer `refund_requested`, potrebuje samo vaša koda in se ne posreduje modelu.\n- **Vsa vprašanja o enem stanju v eni zahtevi.** Model jih ocenjuje vzporedno: po podatkih družbe TypeSafe dodatna vprašanja skoraj ne podaljšajo odzivnega časa in stanejo le svoje tokene. Vprašanje »za vsak primer« je skoraj brezplačno — koda sama odloči, katere odgovore potrebuje.\n- **Zahtevna presoja po delih.** Namesto »oceni prijavo zagonskega podjetja« ločeno vprašajte o velikosti trga, tehnični izvedljivosti in razlikah od konkurentov, rezultat pa izračunajte v kodi z utežmi. Če se prednostne naloge spremenijo, spremenite uteži in ne vprašanja.\n- **Odvisna vprašanja v drugi zahtevi.** Odgovori iste zahteve drug drugemu ne služijo kot kontekst. Druga zahteva je potrebna le, če je brez prvega odgovora ni mogoče sestaviti: treba je naložiti podatke ali izbrati možnosti naslednjega vprašanja.\n- **Dolgo vprašanje kot objekt.** `instructions` in `criteria` sta običajno niza, lahko pa sta objekt ali polje: vprašanje v enem polju, podatki v drugih. Tako lahko z enim vprašanjem primerjate življenjepis z zapisi baze.\n\n### Zaupanje\n\nPri choice in score `confidence` od 0 do 1 kaže, koliko verjetnosti je zbrane pri enem odgovoru: 1 pomeni vso pri eni možnosti, 0 pa enakomerno pri vseh. Pri score sosednja raven zaupanje zmanjša manj kot oddaljena. Pri noul je zaupanje sama vrednost: bolj ko je oddaljena od 0,5, odločnejši je odgovor.\n\nTypeSafe priporoča tri območja:\n\n1. **Visoko zaupanje** — ukrepajte samodejno.\n2. **Srednje** — ukrepajte previdno, na primer prosite uporabnika za potrditev.\n3. **Nizko** — primer predajte človeku, natančneje določite zahtevo ali vključite rezervno pot, na primer zmogljivejši model s sklepanjem.\n\nVišja ko je cena napake, strožji naj bo prag: pri nepovratnih dejanjih višji kot pri branju. Odgovor pove, kaj izbrati, zaupanje pa, ali ukrepati. Pragove določite na lastnih podatkih s primerjanjem zaupanja in natančnosti.\n\n### Kako zgraditi sistem okoli Jev\n\nJev je zasnovan za programe, v katerih proces upravlja koda, model pa odgovarja na ozka pomenska vprašanja, in ne za agente, ki sami izbirajo naslednji korak ter se lahko v vsakem krogu zmotijo. Osem korakov načrtovanja po TypeSafe:\n\n1. Vse, kar lahko opravite s kodo, opravite s kodo — zanesljivo in poceni.\n2. V stanje vključite samo tisto, kar potrebujejo trenutna vprašanja; sveža dejstva vzemite iz lastne baze znanja in ne iz pomnilnika modela.\n3. Struktura v stanju: gnezden JSON, v vprašanju pa pot do ustreznega polja v obrnjenih narekovajih, če je tako manj dvoumnosti.\n4. Najbolj ozka in konkretna vprašanja — po besedah družbe TypeSafe morda glavno pravilo: široko vprašanje za enim odgovorom skriva več presoj.\n5. Struktura v vprašanjih: samo vprašanje naj bo kratko; pojasnila, primeri in vrednosti iz vaše baze naj bodo v sosednjih poljih objekta `instructions` ali `criteria`, ne v enem dolgem nizu.\n6. Več neodvisnih vprašanj o enem stanju v eni zahtevi — več koristi za vsak dolar.\n7. Odgovore združuje koda: s pravili, uteženo vsoto ali kot značilke za klasični model strojnega učenja.\n8. Razvejanje po zaupanju: negotove primere predajte človeku ali modelu s sklepanjem.\n\nJev ni pogovorni model ali model za dopolnjevanje kode in v agentskem programiranju ne more nadomestiti jezikovnega modela. Agent pa lahko za vas napiše kodo, ki Jev pokliče tam, kjer je potreben hiter umerjen odgovor.\n\n### Kje se uporablja\n\n- **Avtomatizacija v ozadju** — odločitve, ki se sprožijo milijonkrat brez človeka v bližini.\n- **Realni čas** — po podatkih družbe TypeSafe se večina zahtev izvede v približno 100 ms: dovolj za sprotno obdelavo in vmesnike.\n- **Veliki podatki** — iskanje po ogromnih korpusih, označevanje dnevnikov agentskega dela, značilke za napovedi.\n- **Preverjanje drugih modelov** — zahteve, izluščanje, sklepanje, klici orodij: obhodi omejitev, napake pri citiranju, izmišljotine.\n- **Iskanje in razvrščanje** — ustreznost para »poizvedba — kandidat«, ponovno razvrščanje, izbira konteksta.\n- **Razvejanje po namenu** — kaj želi uporabnik in kateri obdelovalec je potreben: preprosta logika, specializiran model ali človek; tema, zahtevnost in tveganje določajo, kateremu jezikovnemu modelu predati zahtevo.\n- **Zaščitna preverjanja** — vhod, izhod in klici orodij jezikovnega modela: vstavljena navodila, kršitve pravil, uhajanje osebnih podatkov.\n- **Podpora** — tema in namen zahteve, nujnost, razdraženost, tveganje odhoda, prošnja za vračilo, čakalna vrsta.\n- **Moderiranje** — po pravilih vaše platforme: toksičnost, nadlegovanje, neželena sporočila, goljufije, nevarni nasveti, osebni podatki; glede na resnost in zaupanje prepustite, opozorite, preverite ali blokirajte.\n- **Področja** — zavarovalni primeri, finančne preiskave in KYC, pogodbe in oglaševanje, kartice izdelkov, zaposlovanje, potencialne stranke, igre, tveganja, napoved povpraševanja, grafi znanja, znanstveni pregledi, pomenska preverjanja kode v CI.\n\n### Značilnosti\n\n- **`jev-latest`** — vzdevek zadnje stabilne različice, trenutno Jev 1.13; različica, ki je odgovorila, je v polju `model`, na primer `jev-1.13.0`. Ob novi različici vzdevek preide nanjo in odgovori se lahko spremenijo brez vaših popravkov — spremljajte to polje, če so pragovi prilagojeni različici.\n- **Kontekst** — 64K tokenov na zahtevo: stanje in vsa vprašanja skupaj; stanje z najdaljšim vprašanjem do 32K. Model stanje prebere enkrat in vzporedno glede nanj preverja vsa vprašanja.\n- **Vhod** — samo besedilo: niz, objekt JSON ali polje besedil. Slike, zvok in video še niso podprti — predhodno jih pretvorite v besedilo.\n- **Jezik** — glavni jezik učenja je angleščina, v kateri je natančnost trenutno največja. Model sprejema tudi druge jezike, vključno s kitajščino, japonščino in korejščino, vendar je natančnost manjša — preverite na lastnih podatkih.\n- **Cene in obračunavanje v Ailoot API** — pogoji so odvisni od izbrane metode in navedeni na njeni kartici.\n- **Prilagajanje** — Jev se ne uči dodatno na podatkih naročnika: lastno gradivo podajte v `state`, področne zahteve pa v `instructions` in `criteria`.\n- **Podatki** — TypeSafe sporoča, da Jev ne učijo na zahtevah in odgovorih strank.\n\n### Znane šibke točke Jev 1.13\n\nTypeSafe odkrito navaja šibke točke trenutne različice in obljublja številne izboljšave v naslednjih. Model je hiter, umerjen in dobro presoja po zdravi pameti, vendar:\n\n1. **Bere dobesedno.** Odgovarja na napisano vprašanje in ne na mišljeno: pridržke, zanikanja in neizrecne pogoje razume dobesedno. Natančen pogoj in mejne primere zapišite v `criteria`; neizogibno razlago razdelite na dve dobesedni vprašanji.\n2. **Ni kalkulator.** Štetje znakov, ponovitev in elementov seznama je nezanesljivo, napaka pa raste z velikostjo — štejte v kodi, z enim vprašanjem na kandidata. Barve v hex ali RGB model razume slabše od imen. `score` je primeren za prag, ne za natančno število med ravnmi.\n3. **Datumi in čas.** Kateri datum je prej, koliko časa je med njima, ali datum spada v obdobje — to je nezanesljivo, posebej pri mešanih formatih in relativnih datumih. Dele datuma izluščite prek choice (z možnostjo »ni navedeno«), primerjajte pa v kodi.\n4. **Posrednost.** Dvojna zanikanja in vprašanja o lastnosti lastnosti zmanjšujejo natančnost. Pišite neposredno in dele stanja poimenujte.\n5. **Odvečno v stanju.** Nepovezano besedilo zmanjšuje natančnost. Filtrirajte v kodi, če to ni mogoče, pa nepomembno izločite z vprašanji noul.\n6. **Sovražno besedilo.** Model privzeto ne pričakuje pasti v stanju: vstavljeno navodilo ali besedilo, ki razpravlja o lastni razvrstitvi, lahko premakne odgovor. Zapišite natančna merila in pred zagonom preverite mejne primere.\n7. **Protislovja.** Če `instructions` in `criteria` zahtevata različno — na primer je pri noul »da« opisan kot »ne« — natančnost pade. Merila so nadaljevanje vprašanja.\n8. **Vrstni red možnosti.** Model se včasih nagiba k prvi možnosti choice. Preuredite možnosti in preverite, da se odgovor ne spremeni.\n9. **Ustvarjanje besedila.** Jev ni naučen pisati besedila. Za izluščanje podatkov poiščite kandidate z regularnim izrazom ali generativnim modelom, Jev pa naj pravilnega izbere prek choice.",
    "alias_of": null,
    "aliases": [],
    "author": "TypeSafe",
    "ctx": 64000,
    "formats": [
      "systemone"
    ],
    "guide": "/docs/api/systemone/",
    "id": "jev-latest",
    "input": [
      "text"
    ],
    "kind": "decision",
    "max_out": null,
    "methods": [
      {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "Retain every answer by its supplied question ID, probability and legend; confidenceformulausingnrequiresn>1withoutassertinganAPIminchoicesrule.",
            "errors": [
              {
                "code": null,
                "condition": "Neveljavna obvezna polja, predstavitev gradiva ali vrednost parametra",
                "http_status": 400,
                "recovery": "Pred novo zahtevo za ustvarjanje popravite navedena polja.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "mode": "exact retained published method"
            },
            "material_combinations": [
              {
                "mode": "noul",
                "required": [
                  "state",
                  "questions.<id>.type=noul"
                ]
              },
              {
                "mode": "choice",
                "required": [
                  "state",
                  "questions.<id>.type=choice",
                  "criteria object"
                ]
              },
              {
                "mode": "score",
                "required": [
                  "state",
                  "questions.<id>.type=score",
                  "nonemptycriteriaarray"
                ]
              }
            ],
            "operation_modes": [
              "noul",
              "choice",
              "score"
            ],
            "outputs": {
              "all_results": "Ohranite vsak odgovor z njegovim podanim ID-jem vprašanja, verjetnostjo in legendo; formula zaupanja z n zahteva n>1, ne da bi določala pravilo API o najmanjšem številu izbir.",
              "family": "structured",
              "fields": [
                {
                  "description": null,
                  "name": "answers.<id>.type",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "answers.<id>.noul",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "answers.<id>.choice",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "answers.<id>.score",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "answers.<id>.confidence",
                  "type": "number"
                },
                {
                  "description": null,
                  "name": "answers.<id>.probabilities",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "answers.<id>.legend",
                  "type": "object"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "jev-latest"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "state",
                "required": true,
                "type": "string|object|array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_properties": 1,
                "name": "questions",
                "required": true,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "noul",
                  "choice",
                  "score"
                ],
                "enum_known": true,
                "name": "questions.<id>.type",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "questions.<id>.instructions",
                "required": false,
                "type": "string|object|array|null"
              },
              {
                "availability": "source_interface",
                "conditions": "noul: neobvezna opisa za true/false, ki lahko vsebujeta null; choice: objekt meril; score: neprazno polje meril",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "questions.<id>.criteria",
                "required": false,
                "type": "object|array|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  null
                ],
                "enum_known": true,
                "name": "stream",
                "required": false,
                "type": "boolean|null"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "stream=true",
              "duplicateandcase-variedcanonicalkeys"
            ]
          },
          "hints": [
            "Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve."
          ],
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": [
              "model",
              "state",
              "questions"
            ]
          },
          "lifecycle": {
            "mode": "exact retained published method"
          },
          "method": {
            "http": "POST",
            "path": "/v1/systemone"
          },
          "operation_modes": [
            "systemone"
          ],
          "output": {
            "family": [
              "structured"
            ],
            "format": "structured decisions JSON",
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": 64000,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 customer message}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"jev-latest\", \"state\": \"\", \"questions\": {\"is_urgent\": {\"type\": \"noul\", \"instructions\": \"Does the supplied customer message express urgency?\"}}}')\nf=Path(os.environ[\"AILOOT_TEXT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 source material\")\ntext=f.read_text(encoding=\"utf-8\")\nif not text.strip():raise SystemExit(\"Source material must contain text\")\np[\"state\"]=text\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/systemone \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"result.json\").read_text()),ensure_ascii=False,indent=2))\nPY_RESULT\n",
            "label": "Classify your actual customer message",
            "language": "bash"
          }
        ],
        "family": "systemone",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "systemone",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": 0.084,
        "input": [
          "text"
        ],
        "label": "System One",
        "max_out": 0,
        "max_tool_calls": null,
        "out": 0,
        "output": [
          "structured"
        ],
        "path": "/v1/systemone",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.084,
                "amount_unit": "usd_per_million_tokens",
                "key": "in",
                "label": "Input",
                "side": "in"
              },
              {
                "amount": 0,
                "amount_unit": "usd_per_million_tokens",
                "key": "out",
                "label": "Output",
                "side": "out"
              }
            ]
          }
        ],
        "request_model_id": "jev-latest",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "token",
        "units": []
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "jev-latest",
        "request_model_id": "jev-latest",
        "route_label": "Core"
      }
    ],
    "name": "jev-latest",
    "price": {
      "in": 0.084,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "sort_in": 0.084,
      "sort_out": 0,
      "varies": false
    },
    "short": "Model za odločanje družbe TypeSafe: ne piše besedila, temveč odgovarja na tipizirana vprašanja o besedilu ali JSON — izbiro možnosti, oceno na lestvici ali »da/ne« z verjetnostmi. Primeren je za usmerjanje, razvrščanje zahtev, moderiranje in točkovanje; vsa vprašanja ene zahteve se ocenijo vzporedno."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Model za odločanje družbe TypeSafe: ne piše besedila, temveč odgovarja na tipizirana vprašanja o besedilu ali JSON — izbiro možnosti, oceno na lestvici ali »da/ne« z verjetnostmi. Primeren je za usmerjanje, razvrščanje zahtev, moderiranje in točkovanje; vsa vprašanja ene zahteve se ocenijo vzporedno.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "d1c92d72ed81eb8ac6a1c0c83373296a8f43a3d89485f6242ba3a882c99ee559",
    "renderer_sha256": "dcba2271c18b0f9570a8b166e8d1e3166f121e096a58609c3a46da31562a1bf2"
  },
  "sourceRevision": "00c9d99b4f7f3ec62e42f2b726b73fe0fd18b684b470f755e2c05eaafcd79464"
}
