{
  "aboutHtml": "<p>Jev er TypeSafes flaggskipmodell og den første modellen i den nye klassen <strong>System One</strong>. Den skriver ikke tekst, men tar raske beslutninger som et program kan bruke direkte: du sender inn en <strong>tilstand</strong> (<code>state</code>) som tekst eller JSON og et sett med <strong>spørsmål</strong>, og får typede verdier med kalibrerte sannsynligheter tilbake.</p><p>Språkmodeller skriver ord for mennesker, mens Jev ifølge TypeSafe ligger nærmere kode: svaret kommer direkte i formen koden trenger, med høy hastighet og ingen verdier utenfor de angitte alternativene. Modellen er laget for å gi stabile svar ved gjentatte forespørsler.</p><h4>Hvordan System One skiller seg fra en språkmodell</h4><ul><li><strong>Genererer ikke.</strong> Jev skriver ikke svar til brukeren, skriver ikke kode og forklarer ikke resonneringsforløpet. Du angir mulige svar gjennom én av tre spørsmålstyper.</li><li><strong>Trent på kalibrerte beslutninger.</strong> TypeSafe trener modellen med RLCD (Reinforcement Learning for Calibrated Decisions): sannsynlighetene tilpasses faktiske utfall og gjenspeiler usikkerhet. Blant mange svar med en sannsynlighet på 0,8 bør omtrent 80% være riktige. Kalibrering er en egenskap ved et stort utvalg, ikke en garanti for at et enkelt svar er riktig.</li><li><strong>Et annet treningsmål.</strong> Chatmodeller trenes på å tilfredsstille mennesker (RLHF), noe TypeSafe mener fremmer overdrevent medhold og feil som uttrykkes med sikkerhet. Diogo Almeida, en av medforfatterne bak RLHF, er medgründer av TypeSafe.</li></ul><p>Navnet viser til «System 1» i Daniel Kahnemans bok «Tenke, fort og langsomt»: raske, intuitive vurderinger i motsetning til langsom, gjennomtenkt tenkning i «System 2». Jev er laget for raske, avgrensede vurderinger.</p><h4>Tre spørsmålstyper</h4><p>Et spørsmål er én vurdering av tilstanden, og svaret er en verdi som koden sammenligner med en terskel, sorterer eller sender videre.</p><ol><li><strong>Choice — valg av alternativ.</strong> Avdeling for en henvendelse, produktkategori eller språket i et kodeutsnitt. Alternativene er en ordbok med «alternativ → beskrivelse», opptil 255 oppføringer. Svaret inneholder valgt <code>choice</code>, <code>probabilities</code> for alle alternativene (med sum 1) og sikkerhetsverdien <code>confidence</code>. Hvis listen ikke nødvendigvis dekker alle tilfeller, legg til «annet» eller «ingen av alternativene».</li><li><strong>Score — vurdering på en skala.</strong> Plassering på en ordnet skala som du beskriver: feilens alvorlighetsgrad, kundens irritasjon eller ferdighetsnivå. Fra 2 til 10 nivåer, fra lavest til høyest; modellen vurderer hvert nivå separat uten å se nummeret eller nabonivåene. Svaret inneholder <code>score</code> (summen av nivånumrene multiplisert med sannsynlighetene deres, så verdien kan ligge mellom nivåene), <code>legend</code> med nivåbeskrivelser, <code>probabilities</code> og <code>confidence</code>.</li><li><strong>Noul — ja eller nei.</strong> Om en påstand er riktig. Svaret <code>noul</code> er sannsynligheten for «ja» fra 0 til 1: nær 1 er et sikkert «ja», nær 0 et sikkert «nei», og nær 0,5 er modellen usikker. Det finnes ingen separat <code>confidence</code>: ett tall beskriver svaret fullt ut. Det valgfrie <code>criteria</code> presiserer hva som skal regnes som «ja» og «nei».</li></ol><p>Slik velger du: kjente alternativer uten rekkefølge — choice; trinn på et spekter — score; et rent «ja/nei» der selve sannsynligheten er viktig — noul. Noul 0,5 betyr like sjanser for «ja» og «nei», ikke et «middels nivå»: graden måles med score. Av to egnede typer velger du den koden handler direkte på: choice for forgreninger, score for en terskel og noul for <code>if</code>.</p><p>Typene kan blandes i én forespørsel. Svaret er alltid begrenset til alternativene dine og er uavhengig av andre spørsmål: spørsmål kan legges til eller fjernes uten at de øvrige svarene endres.</p><h4>Tilstand</h4><p>Tilstanden er det modellen vurderer: en kundemelding, et dokumentutsnitt, en databaseoppføring eller tilstanden til programmet ditt.</p><ul><li><strong>Streng</strong> — når det er én tekst: en melding, artikkel eller et utdrag.</li><li><strong>Objekt</strong> — navngitte felt, relaterte oppføringer eller programtilstand. TypeSafe anbefaler objekter for de fleste forespørsler: hver del har et tydelig navn.</li><li><strong>Array</strong> — en sekvens av meldinger eller oppføringer.</li></ul><p>Klargjør tilstanden som materiale for eksperter: legg korrespondanse, bestilling og returregler sammen hvis beslutningen krever at de sammenlignes. Hold innholdet i tilstanden og vurderingene i spørsmålene. Hvis et spørsmål gjelder én del av tilstanden, oppgi stien i spørsmålet med backticks, for eksempel <code>ticket.messages[0].text</code>.</p><h4>Hvordan spørsmål formuleres</h4><ul><li><strong>Én rask vurdering per spørsmål.</strong> Et godt spørsmål kan en kyndig person med riktig kontekst svare på på ett sekund: «Uttrykker meldingen at det haster?». «Analyser meldingen og bestem hva som skal gjøres» krever allerede langsom resonnering og må deles i enkle spørsmål.</li><li><strong>Hele spørsmålet i <code>instructions</code>.</strong> Spørsmålsnøkkelen, for eksempel <code>refund_requested</code>, brukes bare av koden din og sendes ikke til modellen.</li><li><strong>Alle spørsmål om samme tilstand i én forespørsel.</strong> Modellen vurderer dem parallelt: ifølge TypeSafe øker ekstra spørsmål svartiden svært lite og koster bare sine egne tokener. Et spørsmål «for sikkerhets skyld» koster nesten ingenting; koden bestemmer selv hvilke svar som trengs.</li><li><strong>Krevende vurderinger deles opp.</strong> Fremfor «vurder søknaden fra oppstartsbedriften», spør separat om markedsstørrelse, teknisk gjennomførbarhet og forskjeller fra konkurrentene, og beregn sluttresultatet i kode med vekter. Når prioriteringene endres, endrer du vektene, ikke spørsmålet.</li><li><strong>Avhengige spørsmål i en ny forespørsel.</strong> Svarene i én forespørsel gir ikke hverandre kontekst. En ny forespørsel trengs bare dersom den ikke kan bygges uten det første svaret: data må lastes inn, eller alternativer til neste spørsmål velges.</li><li><strong>Lange spørsmål som objekter.</strong> <code>instructions</code> og <code>criteria</code> er vanligvis strenger, men kan være objekter eller arrays: spørsmålet i ett felt og data i de andre. Dette er praktisk for å sammenligne en CV med databaseoppføringer i ett spørsmål.</li></ul><h4>Sikkerhet</h4><p>For choice og score viser <code>confidence</code> fra 0 til 1 hvor konsentrert sannsynligheten er om ett svar: 1 betyr at alt ligger på ett alternativ, og 0 at den er likt fordelt mellom alle. For score reduserer et nabonivå sikkerheten mindre enn et fjernt nivå. For noul ligger sikkerheten i selve verdien: jo lenger fra 0,5, desto sikrere er svaret.</p><p>TypeSafe anbefaler tre områder:</p><ol><li><strong>Høy sikkerhet</strong> — handle automatisk.</li><li><strong>Middels</strong> — handle forsiktig, for eksempel ved å be brukeren bekrefte.</li><li><strong>Lav</strong> — send saken til et menneske, presiser forespørselen eller bruk en reservevei, for eksempel en kraftigere modell med resonnering.</li></ol><p>Jo dyrere en feil er, desto strengere terskel: for irreversible handlinger bør den være høyere enn for lesing. Svaret sier hva som skal velges, og sikkerheten om det bør handles. Tilpass tersklene til egne data ved å sammenligne sikkerhet med nøyaktighet.</p><h4>Hvordan et system rundt Jev bygges</h4><p>Jev er laget for programmer der koden styrer prosessen og modellen besvarer avgrensede spørsmål om mening, fremfor agenter som velger neste trinn selv og kan komme på avveie i hver runde. TypeSafes åtte designtrinn:</p><ol><li>Gjør alt som kan gjøres i kode, med kode — pålitelig og rimelig.</li><li>Ta bare med det de aktuelle spørsmålene trenger, i tilstanden; hent nye fakta fra din egen kunnskapsbase, ikke fra modellens minne.</li><li>Struktur i tilstanden: nestet JSON og en sti til riktig felt med backticks i spørsmålet hvis det gir mindre tvetydighet.</li><li>De mest avgrensede og konkrete spørsmålene er ifølge TypeSafe kanskje hovedregelen: et bredt spørsmål skjuler flere vurderinger bak ett svar.</li><li>Struktur i spørsmålene: selve spørsmålet er kort; forklaringer, eksempler og verdier fra databasen legges i nabofelt i <code>instructions</code>- eller <code>criteria</code>-objektet, ikke i én lang streng.</li><li>Mange uavhengige spørsmål om samme tilstand i én forespørsel — mer nytte per dollar.</li><li>Koden kombinerer svarene: med regler, en vektet sum eller som egenskaper for en klassisk maskinlæringsmodell.</li><li>Forgrening etter sikkerhet: usikre tilfeller sendes til et menneske eller en modell med resonnering.</li></ol><p>Jev er ikke en chatmodell eller en modell for kodefullføring og kan ikke erstatte en språkmodell i en programmeringsagent. Agenten kan derimot skrive kode for deg som kaller Jev der det trengs et raskt, kalibrert svar.</p><h4>Bruksområder</h4><ul><li><strong>Bakgrunnsautomatisering</strong> — beslutninger som kjøres en million ganger uten et menneske til stede.</li><li><strong>Sanntid</strong> — ifølge TypeSafe behandles de fleste forespørsler på omtrent 100 ms: raskt nok for løpende behandling og grensesnitt.</li><li><strong>Store datamengder</strong> — søk i svært store korpus, annotering av agentlogger og egenskaper til prognoser.</li><li><strong>Kontroll av andre modeller</strong> — forespørsler, datauttrekk, resonnering og verktøykall: omgåelse av begrensninger, siteringsfeil og oppdiktet innhold.</li><li><strong>Søk og rangering</strong> — relevans for et par av søkespørsmål og kandidat, rerangering og utvalg av kontekst.</li><li><strong>Forgrening etter hensikt</strong> — hva brukeren ønsker, og hvilken behandling som trengs: enkel logikk, en spesialisert modell eller et menneske; tema, vanskelighetsgrad og risiko avgjør hvilken språkmodell forespørselen sendes til.</li><li><strong>Beskyttelseskontroller</strong> — språkmodellens inndata, utdata og verktøykall: innskutte instruksjoner, regelbrudd og lekkasje av personopplysninger.</li><li><strong>Kundestøtte</strong> — henvendelsens tema og hensikt, hast, irritasjon, frafallsrisiko, refusjonsønske og kø.</li><li><strong>Moderering</strong> — etter plattformens regler: toksisitet, trakassering, spam, svindel, farlige råd og personopplysninger; ut fra alvorlighetsgrad og sikkerhet velges gjennomslipp, advarsel, kontroll eller blokkering.</li><li><strong>Bransjer</strong> — forsikringssaker, økonomiske undersøkelser og KYC, avtaler og reklame, produktkort, rekruttering, potensielle kunder, spill, risiko, etterspørselsprognoser, kunnskapsgrafer, vitenskapelige oversikter og semantiske kodekontroller i CI.</li></ul><h4>Egenskaper</h4><ul><li><strong><code>jev-latest</code></strong> — alias for den siste stabile versjonen, nå Jev 1.13; versjonen som svarte, vises i <code>model</code>, for eksempel <code>jev-1.13.0</code>. Når en ny versjon kommer, peker aliaset på den, og svarene kan endres uten endringer fra din side; følg med på dette feltet hvis tersklene er tilpasset en versjon.</li><li><strong>Kontekst</strong> — 64K tokener per forespørsel: tilstanden og alle spørsmål samlet; tilstanden sammen med det lengste spørsmålet kan ha opptil 32K. Modellen leser tilstanden én gang og vurderer alle spørsmål mot den parallelt.</li><li><strong>Inndata</strong> — bare tekst: en streng, et JSON-objekt eller en array av tekster. Bilder, lyd og video støttes foreløpig ikke; gjør dem om til tekst først.</li><li><strong>Språk</strong> — hovedspråket i treningen er engelsk, og nøyaktigheten er nå høyest på dette språket. Modellen tar imot andre språk, inkludert kinesisk, japansk og koreansk, men nøyaktigheten er lavere; kontroller dette med egne data.</li><li><strong>Priser og fakturering i Ailoot API</strong> — vilkårene avhenger av den valgte metoden og er oppgitt på kortet for denne metoden.</li><li><strong>Tilpasning</strong> — Jev finjusteres ikke på kundedata: eget materiale legges i <code>state</code>, og fagområdets regler i <code>instructions</code> og <code>criteria</code>.</li><li><strong>Data</strong> — TypeSafe opplyser at Jev ikke trenes på kunders forespørsler og svar.</li></ul><h4>Kjente svakheter i Jev 1.13</h4><p>TypeSafe oppgir svakhetene i den gjeldende versjonen åpent og lover å rette mye i senere versjoner. Modellen er rask, kalibrert og god til vurderinger basert på sunn fornuft, men:</p><ol><li><strong>Leser bokstavelig.</strong> Svarer på spørsmålet som er skrevet, ikke det som er underforstått: forbehold, negasjoner og implisitte vilkår tolkes bokstavelig. Skriv det nøyaktige vilkåret og grensetilfellene i <code>criteria</code>; del nødvendig tolkning i to bokstavelige spørsmål.</li><li><strong>Ingen kalkulator.</strong> Telling av tegn, gjentakelser og listeelementer er upålitelig, og feilen øker med omfanget; tell i kode og bruk ett spørsmål per kandidat. Modellen forstår farger i hex eller RGB dårligere enn fargenavn. <code>score</code> egner seg for en terskel, men ikke et nøyaktig tall mellom nivåene.</li><li><strong>Datoer og tid.</strong> Hvilken dato som er først, avstanden mellom datoer og om en dato faller innenfor en periode, er upålitelig, særlig med blandede formater og relative datoer. Hent datodeler med choice (med alternativet «ikke angitt»), og sammenlign i kode.</li><li><strong>Indirekte spørsmål.</strong> Dobbel negasjon og spørsmål om en egenskap ved en egenskap reduserer nøyaktigheten. Skriv direkte og navngi delene av tilstanden.</li><li><strong>Overflødig innhold i tilstanden.</strong> Uvedkommende tekst reduserer nøyaktigheten. Filtrer i kode, eller sil ut det irrelevante med noul-spørsmål hvis filtrering ikke er mulig.</li><li><strong>Fiendtlig tekst.</strong> Modellen forventer som standard ikke feller i tilstanden: en innskutt instruksjon eller tekst som argumenterer om sin egen klassifisering, kan påvirke svaret. Skriv presise kriterier og kontroller grensetilfeller før oppstart.</li><li><strong>Motsetninger.</strong> Hvis <code>instructions</code> og <code>criteria</code> ber om forskjellige ting, for eksempel hvis «ja» i noul beskrives som «nei», faller nøyaktigheten. Kriteriene er en fortsettelse av spørsmålet.</li><li><strong>Alternativrekkefølge.</strong> Modellen tenderer noen ganger mot det første choice-alternativet. Endre rekkefølgen og kontroller at svaret ikke endres.</li><li><strong>Generering.</strong> Jev er ikke trent til å skrive tekst. For datauttrekk finner du kandidater med et regulært uttrykk eller en generativ modell og lar Jev velge den riktige med choice.</li></ol>",
  "aboutText": "Jev er TypeSafes flaggskipmodell og den første modellen i den nye klassen **System One**. Den skriver ikke tekst, men tar raske beslutninger som et program kan bruke direkte: du sender inn en **tilstand** (`state`) som tekst eller JSON og et sett med **spørsmål**, og får typede verdier med kalibrerte sannsynligheter tilbake.\n\nSpråkmodeller skriver ord for mennesker, mens Jev ifølge TypeSafe ligger nærmere kode: svaret kommer direkte i formen koden trenger, med høy hastighet og ingen verdier utenfor de angitte alternativene. Modellen er laget for å gi stabile svar ved gjentatte forespørsler.\n\n### Hvordan System One skiller seg fra en språkmodell\n\n- **Genererer ikke.** Jev skriver ikke svar til brukeren, skriver ikke kode og forklarer ikke resonneringsforløpet. Du angir mulige svar gjennom én av tre spørsmålstyper.\n- **Trent på kalibrerte beslutninger.** TypeSafe trener modellen med RLCD (Reinforcement Learning for Calibrated Decisions): sannsynlighetene tilpasses faktiske utfall og gjenspeiler usikkerhet. Blant mange svar med en sannsynlighet på 0,8 bør omtrent 80% være riktige. Kalibrering er en egenskap ved et stort utvalg, ikke en garanti for at et enkelt svar er riktig.\n- **Et annet treningsmål.** Chatmodeller trenes på å tilfredsstille mennesker (RLHF), noe TypeSafe mener fremmer overdrevent medhold og feil som uttrykkes med sikkerhet. Diogo Almeida, en av medforfatterne bak RLHF, er medgründer av TypeSafe.\n\nNavnet viser til «System 1» i Daniel Kahnemans bok «Tenke, fort og langsomt»: raske, intuitive vurderinger i motsetning til langsom, gjennomtenkt tenkning i «System 2». Jev er laget for raske, avgrensede vurderinger.\n\n### Tre spørsmålstyper\n\nEt spørsmål er én vurdering av tilstanden, og svaret er en verdi som koden sammenligner med en terskel, sorterer eller sender videre.\n\n1. **Choice — valg av alternativ.** Avdeling for en henvendelse, produktkategori eller språket i et kodeutsnitt. Alternativene er en ordbok med «alternativ → beskrivelse», opptil 255 oppføringer. Svaret inneholder valgt `choice`, `probabilities` for alle alternativene (med sum 1) og sikkerhetsverdien `confidence`. Hvis listen ikke nødvendigvis dekker alle tilfeller, legg til «annet» eller «ingen av alternativene».\n2. **Score — vurdering på en skala.** Plassering på en ordnet skala som du beskriver: feilens alvorlighetsgrad, kundens irritasjon eller ferdighetsnivå. Fra 2 til 10 nivåer, fra lavest til høyest; modellen vurderer hvert nivå separat uten å se nummeret eller nabonivåene. Svaret inneholder `score` (summen av nivånumrene multiplisert med sannsynlighetene deres, så verdien kan ligge mellom nivåene), `legend` med nivåbeskrivelser, `probabilities` og `confidence`.\n3. **Noul — ja eller nei.** Om en påstand er riktig. Svaret `noul` er sannsynligheten for «ja» fra 0 til 1: nær 1 er et sikkert «ja», nær 0 et sikkert «nei», og nær 0,5 er modellen usikker. Det finnes ingen separat `confidence`: ett tall beskriver svaret fullt ut. Det valgfrie `criteria` presiserer hva som skal regnes som «ja» og «nei».\n\nSlik velger du: kjente alternativer uten rekkefølge — choice; trinn på et spekter — score; et rent «ja/nei» der selve sannsynligheten er viktig — noul. Noul 0,5 betyr like sjanser for «ja» og «nei», ikke et «middels nivå»: graden måles med score. Av to egnede typer velger du den koden handler direkte på: choice for forgreninger, score for en terskel og noul for `if`.\n\nTypene kan blandes i én forespørsel. Svaret er alltid begrenset til alternativene dine og er uavhengig av andre spørsmål: spørsmål kan legges til eller fjernes uten at de øvrige svarene endres.\n\n### Tilstand\n\nTilstanden er det modellen vurderer: en kundemelding, et dokumentutsnitt, en databaseoppføring eller tilstanden til programmet ditt.\n\n- **Streng** — når det er én tekst: en melding, artikkel eller et utdrag.\n- **Objekt** — navngitte felt, relaterte oppføringer eller programtilstand. TypeSafe anbefaler objekter for de fleste forespørsler: hver del har et tydelig navn.\n- **Array** — en sekvens av meldinger eller oppføringer.\n\nKlargjør tilstanden som materiale for eksperter: legg korrespondanse, bestilling og returregler sammen hvis beslutningen krever at de sammenlignes. Hold innholdet i tilstanden og vurderingene i spørsmålene. Hvis et spørsmål gjelder én del av tilstanden, oppgi stien i spørsmålet med backticks, for eksempel `ticket.messages[0].text`.\n\n### Hvordan spørsmål formuleres\n\n- **Én rask vurdering per spørsmål.** Et godt spørsmål kan en kyndig person med riktig kontekst svare på på ett sekund: «Uttrykker meldingen at det haster?». «Analyser meldingen og bestem hva som skal gjøres» krever allerede langsom resonnering og må deles i enkle spørsmål.\n- **Hele spørsmålet i `instructions`.** Spørsmålsnøkkelen, for eksempel `refund_requested`, brukes bare av koden din og sendes ikke til modellen.\n- **Alle spørsmål om samme tilstand i én forespørsel.** Modellen vurderer dem parallelt: ifølge TypeSafe øker ekstra spørsmål svartiden svært lite og koster bare sine egne tokener. Et spørsmål «for sikkerhets skyld» koster nesten ingenting; koden bestemmer selv hvilke svar som trengs.\n- **Krevende vurderinger deles opp.** Fremfor «vurder søknaden fra oppstartsbedriften», spør separat om markedsstørrelse, teknisk gjennomførbarhet og forskjeller fra konkurrentene, og beregn sluttresultatet i kode med vekter. Når prioriteringene endres, endrer du vektene, ikke spørsmålet.\n- **Avhengige spørsmål i en ny forespørsel.** Svarene i én forespørsel gir ikke hverandre kontekst. En ny forespørsel trengs bare dersom den ikke kan bygges uten det første svaret: data må lastes inn, eller alternativer til neste spørsmål velges.\n- **Lange spørsmål som objekter.** `instructions` og `criteria` er vanligvis strenger, men kan være objekter eller arrays: spørsmålet i ett felt og data i de andre. Dette er praktisk for å sammenligne en CV med databaseoppføringer i ett spørsmål.\n\n### Sikkerhet\n\nFor choice og score viser `confidence` fra 0 til 1 hvor konsentrert sannsynligheten er om ett svar: 1 betyr at alt ligger på ett alternativ, og 0 at den er likt fordelt mellom alle. For score reduserer et nabonivå sikkerheten mindre enn et fjernt nivå. For noul ligger sikkerheten i selve verdien: jo lenger fra 0,5, desto sikrere er svaret.\n\nTypeSafe anbefaler tre områder:\n\n1. **Høy sikkerhet** — handle automatisk.\n2. **Middels** — handle forsiktig, for eksempel ved å be brukeren bekrefte.\n3. **Lav** — send saken til et menneske, presiser forespørselen eller bruk en reservevei, for eksempel en kraftigere modell med resonnering.\n\nJo dyrere en feil er, desto strengere terskel: for irreversible handlinger bør den være høyere enn for lesing. Svaret sier hva som skal velges, og sikkerheten om det bør handles. Tilpass tersklene til egne data ved å sammenligne sikkerhet med nøyaktighet.\n\n### Hvordan et system rundt Jev bygges\n\nJev er laget for programmer der koden styrer prosessen og modellen besvarer avgrensede spørsmål om mening, fremfor agenter som velger neste trinn selv og kan komme på avveie i hver runde. TypeSafes åtte designtrinn:\n\n1. Gjør alt som kan gjøres i kode, med kode — pålitelig og rimelig.\n2. Ta bare med det de aktuelle spørsmålene trenger, i tilstanden; hent nye fakta fra din egen kunnskapsbase, ikke fra modellens minne.\n3. Struktur i tilstanden: nestet JSON og en sti til riktig felt med backticks i spørsmålet hvis det gir mindre tvetydighet.\n4. De mest avgrensede og konkrete spørsmålene er ifølge TypeSafe kanskje hovedregelen: et bredt spørsmål skjuler flere vurderinger bak ett svar.\n5. Struktur i spørsmålene: selve spørsmålet er kort; forklaringer, eksempler og verdier fra databasen legges i nabofelt i `instructions`- eller `criteria`-objektet, ikke i én lang streng.\n6. Mange uavhengige spørsmål om samme tilstand i én forespørsel — mer nytte per dollar.\n7. Koden kombinerer svarene: med regler, en vektet sum eller som egenskaper for en klassisk maskinlæringsmodell.\n8. Forgrening etter sikkerhet: usikre tilfeller sendes til et menneske eller en modell med resonnering.\n\nJev er ikke en chatmodell eller en modell for kodefullføring og kan ikke erstatte en språkmodell i en programmeringsagent. Agenten kan derimot skrive kode for deg som kaller Jev der det trengs et raskt, kalibrert svar.\n\n### Bruksområder\n\n- **Bakgrunnsautomatisering** — beslutninger som kjøres en million ganger uten et menneske til stede.\n- **Sanntid** — ifølge TypeSafe behandles de fleste forespørsler på omtrent 100 ms: raskt nok for løpende behandling og grensesnitt.\n- **Store datamengder** — søk i svært store korpus, annotering av agentlogger og egenskaper til prognoser.\n- **Kontroll av andre modeller** — forespørsler, datauttrekk, resonnering og verktøykall: omgåelse av begrensninger, siteringsfeil og oppdiktet innhold.\n- **Søk og rangering** — relevans for et par av søkespørsmål og kandidat, rerangering og utvalg av kontekst.\n- **Forgrening etter hensikt** — hva brukeren ønsker, og hvilken behandling som trengs: enkel logikk, en spesialisert modell eller et menneske; tema, vanskelighetsgrad og risiko avgjør hvilken språkmodell forespørselen sendes til.\n- **Beskyttelseskontroller** — språkmodellens inndata, utdata og verktøykall: innskutte instruksjoner, regelbrudd og lekkasje av personopplysninger.\n- **Kundestøtte** — henvendelsens tema og hensikt, hast, irritasjon, frafallsrisiko, refusjonsønske og kø.\n- **Moderering** — etter plattformens regler: toksisitet, trakassering, spam, svindel, farlige råd og personopplysninger; ut fra alvorlighetsgrad og sikkerhet velges gjennomslipp, advarsel, kontroll eller blokkering.\n- **Bransjer** — forsikringssaker, økonomiske undersøkelser og KYC, avtaler og reklame, produktkort, rekruttering, potensielle kunder, spill, risiko, etterspørselsprognoser, kunnskapsgrafer, vitenskapelige oversikter og semantiske kodekontroller i CI.\n\n### Egenskaper\n\n- **`jev-latest`** — alias for den siste stabile versjonen, nå Jev 1.13; versjonen som svarte, vises i `model`, for eksempel `jev-1.13.0`. Når en ny versjon kommer, peker aliaset på den, og svarene kan endres uten endringer fra din side; følg med på dette feltet hvis tersklene er tilpasset en versjon.\n- **Kontekst** — 64K tokener per forespørsel: tilstanden og alle spørsmål samlet; tilstanden sammen med det lengste spørsmålet kan ha opptil 32K. Modellen leser tilstanden én gang og vurderer alle spørsmål mot den parallelt.\n- **Inndata** — bare tekst: en streng, et JSON-objekt eller en array av tekster. Bilder, lyd og video støttes foreløpig ikke; gjør dem om til tekst først.\n- **Språk** — hovedspråket i treningen er engelsk, og nøyaktigheten er nå høyest på dette språket. Modellen tar imot andre språk, inkludert kinesisk, japansk og koreansk, men nøyaktigheten er lavere; kontroller dette med egne data.\n- **Priser og fakturering i Ailoot API** — vilkårene avhenger av den valgte metoden og er oppgitt på kortet for denne metoden.\n- **Tilpasning** — Jev finjusteres ikke på kundedata: eget materiale legges i `state`, og fagområdets regler i `instructions` og `criteria`.\n- **Data** — TypeSafe opplyser at Jev ikke trenes på kunders forespørsler og svar.\n\n### Kjente svakheter i Jev 1.13\n\nTypeSafe oppgir svakhetene i den gjeldende versjonen åpent og lover å rette mye i senere versjoner. Modellen er rask, kalibrert og god til vurderinger basert på sunn fornuft, men:\n\n1. **Leser bokstavelig.** Svarer på spørsmålet som er skrevet, ikke det som er underforstått: forbehold, negasjoner og implisitte vilkår tolkes bokstavelig. Skriv det nøyaktige vilkåret og grensetilfellene i `criteria`; del nødvendig tolkning i to bokstavelige spørsmål.\n2. **Ingen kalkulator.** Telling av tegn, gjentakelser og listeelementer er upålitelig, og feilen øker med omfanget; tell i kode og bruk ett spørsmål per kandidat. Modellen forstår farger i hex eller RGB dårligere enn fargenavn. `score` egner seg for en terskel, men ikke et nøyaktig tall mellom nivåene.\n3. **Datoer og tid.** Hvilken dato som er først, avstanden mellom datoer og om en dato faller innenfor en periode, er upålitelig, særlig med blandede formater og relative datoer. Hent datodeler med choice (med alternativet «ikke angitt»), og sammenlign i kode.\n4. **Indirekte spørsmål.** Dobbel negasjon og spørsmål om en egenskap ved en egenskap reduserer nøyaktigheten. Skriv direkte og navngi delene av tilstanden.\n5. **Overflødig innhold i tilstanden.** Uvedkommende tekst reduserer nøyaktigheten. Filtrer i kode, eller sil ut det irrelevante med noul-spørsmål hvis filtrering ikke er mulig.\n6. **Fiendtlig tekst.** Modellen forventer som standard ikke feller i tilstanden: en innskutt instruksjon eller tekst som argumenterer om sin egen klassifisering, kan påvirke svaret. Skriv presise kriterier og kontroller grensetilfeller før oppstart.\n7. **Motsetninger.** Hvis `instructions` og `criteria` ber om forskjellige ting, for eksempel hvis «ja» i noul beskrives som «nei», faller nøyaktigheten. Kriteriene er en fortsettelse av spørsmålet.\n8. **Alternativrekkefølge.** Modellen tenderer noen ganger mot det første choice-alternativet. Endre rekkefølgen og kontroller at svaret ikke endres.\n9. **Generering.** Jev er ikke trent til å skrive tekst. For datauttrekk finner du kandidater med et regulært uttrykk eller en generativ modell og lar Jev velge den riktige med choice.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "c347f9f5e9b17bc3b637bdb5ebd8244d7809cb5ed3c5ea56edf1cb11afb91f39",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "nb",
  "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=\"Lukk\">×</button></div><div class=\"idline\"><span>TypeSafe /</span><code>jev-latest</code><button type=\"button\" id=\"copy-id\">Kopier ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Seksjoner i modellkortet\"><button type=\"button\" data-card-jump=\"overview\">Start</button><button type=\"button\" data-card-jump=\"methods\">Inndata &amp; metoder</button><button type=\"button\" data-card-jump=\"pricing\">Priser</button><button type=\"button\" data-card-jump=\"examples\">Eksempler</button><button type=\"button\" data-card-jump=\"results\">Resultater</button><button type=\"button\" data-card-jump=\"aliases\">Aliaser</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-metoder\"><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\">Start</h3><p class=\"mdesc-full\">En beslutningsmodell fra TypeSafe: den skriver ikke tekst, men svarer på typede spørsmål om tekst eller JSON ved å velge et alternativ, gi en skår på en skala eller svare «ja/nei» med sannsynligheter. Den passer for ruting, sortering av henvendelser, moderering og skåring; alle spørsmål i én forespørsel vurderes parallelt.</p><dl class=\"card-io\" data-card-io><div><dt>Godkjente inndata</dt><dd>Tekst</dd></div><div><dt>Resultater</dt><dd>structured</dd></div></dl><details class=\"card-about\"><summary>Om modellen</summary><p class=\"note-s\" data-model-method-boundary>Denne beskrivelsen dekker modellens funksjoner. Tilgjengelige inndata, utdata og alternativer i Ailoot er oppført nedenfor for den valgte metoden.</p><div class=\"mabout\" id=\"m-about\"><p>Jev er TypeSafes flaggskipmodell og den første modellen i den nye klassen <strong>System One</strong>. Den skriver ikke tekst, men tar raske beslutninger som et program kan bruke direkte: du sender inn en <strong>tilstand</strong> (<code>state</code>) som tekst eller JSON og et sett med <strong>spørsmål</strong>, og får typede verdier med kalibrerte sannsynligheter tilbake.</p><p>Språkmodeller skriver ord for mennesker, mens Jev ifølge TypeSafe ligger nærmere kode: svaret kommer direkte i formen koden trenger, med høy hastighet og ingen verdier utenfor de angitte alternativene. Modellen er laget for å gi stabile svar ved gjentatte forespørsler.</p><h4>Hvordan System One skiller seg fra en språkmodell</h4><ul><li><strong>Genererer ikke.</strong> Jev skriver ikke svar til brukeren, skriver ikke kode og forklarer ikke resonneringsforløpet. Du angir mulige svar gjennom én av tre spørsmålstyper.</li><li><strong>Trent på kalibrerte beslutninger.</strong> TypeSafe trener modellen med RLCD (Reinforcement Learning for Calibrated Decisions): sannsynlighetene tilpasses faktiske utfall og gjenspeiler usikkerhet. Blant mange svar med en sannsynlighet på 0,8 bør omtrent 80% være riktige. Kalibrering er en egenskap ved et stort utvalg, ikke en garanti for at et enkelt svar er riktig.</li><li><strong>Et annet treningsmål.</strong> Chatmodeller trenes på å tilfredsstille mennesker (RLHF), noe TypeSafe mener fremmer overdrevent medhold og feil som uttrykkes med sikkerhet. Diogo Almeida, en av medforfatterne bak RLHF, er medgründer av TypeSafe.</li></ul><p>Navnet viser til «System 1» i Daniel Kahnemans bok «Tenke, fort og langsomt»: raske, intuitive vurderinger i motsetning til langsom, gjennomtenkt tenkning i «System 2». Jev er laget for raske, avgrensede vurderinger.</p><h4>Tre spørsmålstyper</h4><p>Et spørsmål er én vurdering av tilstanden, og svaret er en verdi som koden sammenligner med en terskel, sorterer eller sender videre.</p><ol><li><strong>Choice — valg av alternativ.</strong> Avdeling for en henvendelse, produktkategori eller språket i et kodeutsnitt. Alternativene er en ordbok med «alternativ → beskrivelse», opptil 255 oppføringer. Svaret inneholder valgt <code>choice</code>, <code>probabilities</code> for alle alternativene (med sum 1) og sikkerhetsverdien <code>confidence</code>. Hvis listen ikke nødvendigvis dekker alle tilfeller, legg til «annet» eller «ingen av alternativene».</li><li><strong>Score — vurdering på en skala.</strong> Plassering på en ordnet skala som du beskriver: feilens alvorlighetsgrad, kundens irritasjon eller ferdighetsnivå. Fra 2 til 10 nivåer, fra lavest til høyest; modellen vurderer hvert nivå separat uten å se nummeret eller nabonivåene. Svaret inneholder <code>score</code> (summen av nivånumrene multiplisert med sannsynlighetene deres, så verdien kan ligge mellom nivåene), <code>legend</code> med nivåbeskrivelser, <code>probabilities</code> og <code>confidence</code>.</li><li><strong>Noul — ja eller nei.</strong> Om en påstand er riktig. Svaret <code>noul</code> er sannsynligheten for «ja» fra 0 til 1: nær 1 er et sikkert «ja», nær 0 et sikkert «nei», og nær 0,5 er modellen usikker. Det finnes ingen separat <code>confidence</code>: ett tall beskriver svaret fullt ut. Det valgfrie <code>criteria</code> presiserer hva som skal regnes som «ja» og «nei».</li></ol><p>Slik velger du: kjente alternativer uten rekkefølge — choice; trinn på et spekter — score; et rent «ja/nei» der selve sannsynligheten er viktig — noul. Noul 0,5 betyr like sjanser for «ja» og «nei», ikke et «middels nivå»: graden måles med score. Av to egnede typer velger du den koden handler direkte på: choice for forgreninger, score for en terskel og noul for <code>if</code>.</p><p>Typene kan blandes i én forespørsel. Svaret er alltid begrenset til alternativene dine og er uavhengig av andre spørsmål: spørsmål kan legges til eller fjernes uten at de øvrige svarene endres.</p><h4>Tilstand</h4><p>Tilstanden er det modellen vurderer: en kundemelding, et dokumentutsnitt, en databaseoppføring eller tilstanden til programmet ditt.</p><ul><li><strong>Streng</strong> — når det er én tekst: en melding, artikkel eller et utdrag.</li><li><strong>Objekt</strong> — navngitte felt, relaterte oppføringer eller programtilstand. TypeSafe anbefaler objekter for de fleste forespørsler: hver del har et tydelig navn.</li><li><strong>Array</strong> — en sekvens av meldinger eller oppføringer.</li></ul><p>Klargjør tilstanden som materiale for eksperter: legg korrespondanse, bestilling og returregler sammen hvis beslutningen krever at de sammenlignes. Hold innholdet i tilstanden og vurderingene i spørsmålene. Hvis et spørsmål gjelder én del av tilstanden, oppgi stien i spørsmålet med backticks, for eksempel <code>ticket.messages[0].text</code>.</p><h4>Hvordan spørsmål formuleres</h4><ul><li><strong>Én rask vurdering per spørsmål.</strong> Et godt spørsmål kan en kyndig person med riktig kontekst svare på på ett sekund: «Uttrykker meldingen at det haster?». «Analyser meldingen og bestem hva som skal gjøres» krever allerede langsom resonnering og må deles i enkle spørsmål.</li><li><strong>Hele spørsmålet i <code>instructions</code>.</strong> Spørsmålsnøkkelen, for eksempel <code>refund_requested</code>, brukes bare av koden din og sendes ikke til modellen.</li><li><strong>Alle spørsmål om samme tilstand i én forespørsel.</strong> Modellen vurderer dem parallelt: ifølge TypeSafe øker ekstra spørsmål svartiden svært lite og koster bare sine egne tokener. Et spørsmål «for sikkerhets skyld» koster nesten ingenting; koden bestemmer selv hvilke svar som trengs.</li><li><strong>Krevende vurderinger deles opp.</strong> Fremfor «vurder søknaden fra oppstartsbedriften», spør separat om markedsstørrelse, teknisk gjennomførbarhet og forskjeller fra konkurrentene, og beregn sluttresultatet i kode med vekter. Når prioriteringene endres, endrer du vektene, ikke spørsmålet.</li><li><strong>Avhengige spørsmål i en ny forespørsel.</strong> Svarene i én forespørsel gir ikke hverandre kontekst. En ny forespørsel trengs bare dersom den ikke kan bygges uten det første svaret: data må lastes inn, eller alternativer til neste spørsmål velges.</li><li><strong>Lange spørsmål som objekter.</strong> <code>instructions</code> og <code>criteria</code> er vanligvis strenger, men kan være objekter eller arrays: spørsmålet i ett felt og data i de andre. Dette er praktisk for å sammenligne en CV med databaseoppføringer i ett spørsmål.</li></ul><h4>Sikkerhet</h4><p>For choice og score viser <code>confidence</code> fra 0 til 1 hvor konsentrert sannsynligheten er om ett svar: 1 betyr at alt ligger på ett alternativ, og 0 at den er likt fordelt mellom alle. For score reduserer et nabonivå sikkerheten mindre enn et fjernt nivå. For noul ligger sikkerheten i selve verdien: jo lenger fra 0,5, desto sikrere er svaret.</p><p>TypeSafe anbefaler tre områder:</p><ol><li><strong>Høy sikkerhet</strong> — handle automatisk.</li><li><strong>Middels</strong> — handle forsiktig, for eksempel ved å be brukeren bekrefte.</li><li><strong>Lav</strong> — send saken til et menneske, presiser forespørselen eller bruk en reservevei, for eksempel en kraftigere modell med resonnering.</li></ol><p>Jo dyrere en feil er, desto strengere terskel: for irreversible handlinger bør den være høyere enn for lesing. Svaret sier hva som skal velges, og sikkerheten om det bør handles. Tilpass tersklene til egne data ved å sammenligne sikkerhet med nøyaktighet.</p><h4>Hvordan et system rundt Jev bygges</h4><p>Jev er laget for programmer der koden styrer prosessen og modellen besvarer avgrensede spørsmål om mening, fremfor agenter som velger neste trinn selv og kan komme på avveie i hver runde. TypeSafes åtte designtrinn:</p><ol><li>Gjør alt som kan gjøres i kode, med kode — pålitelig og rimelig.</li><li>Ta bare med det de aktuelle spørsmålene trenger, i tilstanden; hent nye fakta fra din egen kunnskapsbase, ikke fra modellens minne.</li><li>Struktur i tilstanden: nestet JSON og en sti til riktig felt med backticks i spørsmålet hvis det gir mindre tvetydighet.</li><li>De mest avgrensede og konkrete spørsmålene er ifølge TypeSafe kanskje hovedregelen: et bredt spørsmål skjuler flere vurderinger bak ett svar.</li><li>Struktur i spørsmålene: selve spørsmålet er kort; forklaringer, eksempler og verdier fra databasen legges i nabofelt i <code>instructions</code>- eller <code>criteria</code>-objektet, ikke i én lang streng.</li><li>Mange uavhengige spørsmål om samme tilstand i én forespørsel — mer nytte per dollar.</li><li>Koden kombinerer svarene: med regler, en vektet sum eller som egenskaper for en klassisk maskinlæringsmodell.</li><li>Forgrening etter sikkerhet: usikre tilfeller sendes til et menneske eller en modell med resonnering.</li></ol><p>Jev er ikke en chatmodell eller en modell for kodefullføring og kan ikke erstatte en språkmodell i en programmeringsagent. Agenten kan derimot skrive kode for deg som kaller Jev der det trengs et raskt, kalibrert svar.</p><h4>Bruksområder</h4><ul><li><strong>Bakgrunnsautomatisering</strong> — beslutninger som kjøres en million ganger uten et menneske til stede.</li><li><strong>Sanntid</strong> — ifølge TypeSafe behandles de fleste forespørsler på omtrent 100 ms: raskt nok for løpende behandling og grensesnitt.</li><li><strong>Store datamengder</strong> — søk i svært store korpus, annotering av agentlogger og egenskaper til prognoser.</li><li><strong>Kontroll av andre modeller</strong> — forespørsler, datauttrekk, resonnering og verktøykall: omgåelse av begrensninger, siteringsfeil og oppdiktet innhold.</li><li><strong>Søk og rangering</strong> — relevans for et par av søkespørsmål og kandidat, rerangering og utvalg av kontekst.</li><li><strong>Forgrening etter hensikt</strong> — hva brukeren ønsker, og hvilken behandling som trengs: enkel logikk, en spesialisert modell eller et menneske; tema, vanskelighetsgrad og risiko avgjør hvilken språkmodell forespørselen sendes til.</li><li><strong>Beskyttelseskontroller</strong> — språkmodellens inndata, utdata og verktøykall: innskutte instruksjoner, regelbrudd og lekkasje av personopplysninger.</li><li><strong>Kundestøtte</strong> — henvendelsens tema og hensikt, hast, irritasjon, frafallsrisiko, refusjonsønske og kø.</li><li><strong>Moderering</strong> — etter plattformens regler: toksisitet, trakassering, spam, svindel, farlige råd og personopplysninger; ut fra alvorlighetsgrad og sikkerhet velges gjennomslipp, advarsel, kontroll eller blokkering.</li><li><strong>Bransjer</strong> — forsikringssaker, økonomiske undersøkelser og KYC, avtaler og reklame, produktkort, rekruttering, potensielle kunder, spill, risiko, etterspørselsprognoser, kunnskapsgrafer, vitenskapelige oversikter og semantiske kodekontroller i CI.</li></ul><h4>Egenskaper</h4><ul><li><strong><code>jev-latest</code></strong> — alias for den siste stabile versjonen, nå Jev 1.13; versjonen som svarte, vises i <code>model</code>, for eksempel <code>jev-1.13.0</code>. Når en ny versjon kommer, peker aliaset på den, og svarene kan endres uten endringer fra din side; følg med på dette feltet hvis tersklene er tilpasset en versjon.</li><li><strong>Kontekst</strong> — 64K tokener per forespørsel: tilstanden og alle spørsmål samlet; tilstanden sammen med det lengste spørsmålet kan ha opptil 32K. Modellen leser tilstanden én gang og vurderer alle spørsmål mot den parallelt.</li><li><strong>Inndata</strong> — bare tekst: en streng, et JSON-objekt eller en array av tekster. Bilder, lyd og video støttes foreløpig ikke; gjør dem om til tekst først.</li><li><strong>Språk</strong> — hovedspråket i treningen er engelsk, og nøyaktigheten er nå høyest på dette språket. Modellen tar imot andre språk, inkludert kinesisk, japansk og koreansk, men nøyaktigheten er lavere; kontroller dette med egne data.</li><li><strong>Priser og fakturering i Ailoot API</strong> — vilkårene avhenger av den valgte metoden og er oppgitt på kortet for denne metoden.</li><li><strong>Tilpasning</strong> — Jev finjusteres ikke på kundedata: eget materiale legges i <code>state</code>, og fagområdets regler i <code>instructions</code> og <code>criteria</code>.</li><li><strong>Data</strong> — TypeSafe opplyser at Jev ikke trenes på kunders forespørsler og svar.</li></ul><h4>Kjente svakheter i Jev 1.13</h4><p>TypeSafe oppgir svakhetene i den gjeldende versjonen åpent og lover å rette mye i senere versjoner. Modellen er rask, kalibrert og god til vurderinger basert på sunn fornuft, men:</p><ol><li><strong>Leser bokstavelig.</strong> Svarer på spørsmålet som er skrevet, ikke det som er underforstått: forbehold, negasjoner og implisitte vilkår tolkes bokstavelig. Skriv det nøyaktige vilkåret og grensetilfellene i <code>criteria</code>; del nødvendig tolkning i to bokstavelige spørsmål.</li><li><strong>Ingen kalkulator.</strong> Telling av tegn, gjentakelser og listeelementer er upålitelig, og feilen øker med omfanget; tell i kode og bruk ett spørsmål per kandidat. Modellen forstår farger i hex eller RGB dårligere enn fargenavn. <code>score</code> egner seg for en terskel, men ikke et nøyaktig tall mellom nivåene.</li><li><strong>Datoer og tid.</strong> Hvilken dato som er først, avstanden mellom datoer og om en dato faller innenfor en periode, er upålitelig, særlig med blandede formater og relative datoer. Hent datodeler med choice (med alternativet «ikke angitt»), og sammenlign i kode.</li><li><strong>Indirekte spørsmål.</strong> Dobbel negasjon og spørsmål om en egenskap ved en egenskap reduserer nøyaktigheten. Skriv direkte og navngi delene av tilstanden.</li><li><strong>Overflødig innhold i tilstanden.</strong> Uvedkommende tekst reduserer nøyaktigheten. Filtrer i kode, eller sil ut det irrelevante med noul-spørsmål hvis filtrering ikke er mulig.</li><li><strong>Fiendtlig tekst.</strong> Modellen forventer som standard ikke feller i tilstanden: en innskutt instruksjon eller tekst som argumenterer om sin egen klassifisering, kan påvirke svaret. Skriv presise kriterier og kontroller grensetilfeller før oppstart.</li><li><strong>Motsetninger.</strong> Hvis <code>instructions</code> og <code>criteria</code> ber om forskjellige ting, for eksempel hvis «ja» i noul beskrives som «nei», faller nøyaktigheten. Kriteriene er en fortsettelse av spørsmålet.</li><li><strong>Alternativrekkefølge.</strong> Modellen tenderer noen ganger mot det første choice-alternativet. Endre rekkefølgen og kontroller at svaret ikke endres.</li><li><strong>Generering.</strong> Jev er ikke trent til å skrive tekst. For datauttrekk finner du kandidater med et regulært uttrykk eller en generativ modell og lar Jev velge den riktige med choice.</li></ol></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Tilgjengelig i Ailoot · inndata &amp; metoder</h3><details class=\"card-method\" open><summary><b>Ailoot · System One</b> <code>POST /v1/systemone</code></summary><dl class=\"method-capabilities\"><div><dt>Inndatatyper</dt><dd><code>text</code></dd></div><div><dt>Utdatatyper</dt><dd><code>structured</code></dd></div><div><dt>Kontekst</dt><dd>64 000 tokens</dd></div><div><dt>Utdataformat</dt><dd>json</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Felt</th><th>Type</th><th>Krav</th><th>Verdier &amp; grenser</th><th>Standard</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Påkrevd</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</span><div>jev-latest</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">state</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string|object|array</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Påkrevd</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">questions</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>object</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Påkrevd</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</span><div>Minste antall objektfelter: 1</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">questions.&lt;id&gt;.type</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Påkrevd</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</span><div>noul, choice, score</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">questions.&lt;id&gt;.instructions</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>string|object|array|null</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valgfritt</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</span></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">questions.&lt;id&gt;.criteria</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>object|array|null</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valgfritt</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</span><div>Vilkår: noul: valgfrie beskrivelser for true/false som tillater null; choice: kriterieobjekt; score: kriteriematrise som må ha innhold</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span><code>boolean|null</code></td><td data-cell-label=\"Krav\"><span class=\"card-cell-label\">Krav</span>Valgfritt</td><td data-cell-label=\"Verdier &amp; grenser\"><span class=\"card-cell-label\">Verdier &amp; grenser</span><div>false, null</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinasjoner av inngående materialer</summary><p class=\"note-s\"><b>noul</b> · Påkrevd: state, questions.&lt;id&gt;.type=noul</p><p class=\"note-s\"><b>choice</b> · Påkrevd: state, questions.&lt;id&gt;.type=choice, criteria object</p><p class=\"note-s\"><b>score</b> · Påkrevd: state, questions.&lt;id&gt;.type=score, nonemptycriteriaarray</p></details><details class=\"note-s\" data-method-contract><summary>Metodeparametere og livssyklus</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Avtale</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=\"Avtale\"><span class=\"card-cell-label\">Avtale</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=\"Avtale\"><span class=\"card-cell-label\">Avtale</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=\"Avtale\"><span class=\"card-cell-label\">Avtale</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=\"Avtale\"><span class=\"card-cell-label\">Avtale</span>application/json</td></tr></tbody></table></div><p>Livssyklus: <code>exact retained published method</code></p><p class=\"note-s\">Metodestrukturer og ID-er er eksakte; leverandørens evne er adskilt fra godkjenning av forespørselen.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Priser</h3><h4>Satser for Ailoot-metoder</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>Inndata</dt><dd>≈0,000084 USD <em>/ 1K</em></dd></div><div><dt>Utdata</dt><dd>0,00 USD <em>/ 1K</em></dd></div></dl></section><p class=\"note-s\">Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. <a href=\"/docs/nb/billing/reserve/\">Slik fungerer reservasjon og oppgjør →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Eksempelforespørsler</h3><h4>Ailoot · System One</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kodevarianter\"><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\">Klassifiseringseksempel</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopier kode\"><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\">Motta og lagre resultater</h3><h4>Ailoot · System One</h4><p class=\"note-s\">json</p><div class=\"card-result-process\" data-all-results><h5>Behold alle ferdige resultater</h5><p class=\"note-s\">Behold alle fullstendige returnerte svar, filer og innholdsdeler.</p><p class=\"note-s\">Behold hvert svar med den oppgitte spørsmåls-ID-en, sannsynligheten og tegnforklaringen; konfidensformelen som bruker n, krever n&gt;1 uten at dette innebærer en regel om minste antall svaralternativer i API-et.</p></div><details class=\"card-about\" data-output-fields><summary>Svarfelter</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Felt</th><th>Type</th></tr></thead><tbody><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">answers.&lt;id&gt;.type</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">answers.&lt;id&gt;.noul</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>number</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">answers.&lt;id&gt;.choice</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>string</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">answers.&lt;id&gt;.score</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>number</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">answers.&lt;id&gt;.confidence</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>number</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">answers.&lt;id&gt;.probabilities</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>object</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">answers.&lt;id&gt;.legend</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>object</td></tr><tr><th data-cell-label=\"Felt\" scope=\"row\"><span class=\"card-cell-label\">Felt</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Type\" data-field-type><span class=\"card-cell-label\">Type</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Feil og neste trinn</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Svar</th><th>Vilkår</th><th>Neste trinn</th></tr></thead><tbody><tr><th data-cell-label=\"Svar\" scope=\"row\"><span class=\"card-cell-label\">Svar</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Vilkår\"><span class=\"card-cell-label\">Vilkår</span>Ugyldige påkrevde felter, materialrepresentasjon eller parameterverdi</td><td data-cell-label=\"Neste trinn\"><span class=\"card-cell-label\">Neste trinn</span>Korriger de angitte feltene før en ny opprettelsesforespørsel.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliaser</h3><h4>Modellaliaser</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>Aliaser for metodestier</h4><p class=\"note-s\">Bruk metodestiene som vises ovenfor.</p><h4>Tilknyttede anroper-ID-er</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": "Ugyldige påkrevde felter, materialrepresentasjon eller parameterverdi",
                "http_status": 400,
                "recovery": "Korriger de angitte feltene før en ny opprettelsesforespørsel.",
                "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": "Behold hvert svar med den oppgitte spørsmåls-ID-en, sannsynligheten og tegnforklaringen; konfidensformelen som bruker n, krever n>1 uten at dette innebærer en regel om minste antall svaralternativer i API-et.",
              "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: valgfrie beskrivelser for true/false som tillater null; choice: kriterieobjekt; score: kriteriematrise som må ha innhold",
                "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": [
            "Metodestrukturer og ID-er er eksakte; leverandørens evne er adskilt fra godkjenning av forespørselen."
          ],
          "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": "359f9d8e2418c668760ec4616fd74bccdf0923a2116e1f1c361650310b724825",
    "input_html_sha256": "23efdf4b62da7c5493a24e0e792bc0274f77dd5699d776d07519a25c4b9ad906",
    "private_audit_sha256": "ec3bd4521f5c118c8cf7f5a67bc45976729fdd3d45a2a7b27a9db976729db498",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/nb/jev-latest/",
    "description": "En beslutningsmodell fra TypeSafe: den skriver ikke tekst, men svarer på typede spørsmål om tekst eller JSON ved å velge et alternativ, gi en skår på en skala eller svare «ja/nei» med sannsynligheter. Den passer for ruting, sortering av henvendelser, moderering og skåring; alle spørsmål i én forespørsel vurderes parallelt.",
    "locale": "nb",
    "md_url": "https://ailoot.ai/models/nb/jev-latest/index.md",
    "title": "jev-latest — Ailoot",
    "url": "https://ailoot.ai/models/nb/jev-latest/"
  },
  "rawModel": {
    "about": "Jev er TypeSafes flaggskipmodell og den første modellen i den nye klassen **System One**. Den skriver ikke tekst, men tar raske beslutninger som et program kan bruke direkte: du sender inn en **tilstand** (`state`) som tekst eller JSON og et sett med **spørsmål**, og får typede verdier med kalibrerte sannsynligheter tilbake.\n\nSpråkmodeller skriver ord for mennesker, mens Jev ifølge TypeSafe ligger nærmere kode: svaret kommer direkte i formen koden trenger, med høy hastighet og ingen verdier utenfor de angitte alternativene. Modellen er laget for å gi stabile svar ved gjentatte forespørsler.\n\n### Hvordan System One skiller seg fra en språkmodell\n\n- **Genererer ikke.** Jev skriver ikke svar til brukeren, skriver ikke kode og forklarer ikke resonneringsforløpet. Du angir mulige svar gjennom én av tre spørsmålstyper.\n- **Trent på kalibrerte beslutninger.** TypeSafe trener modellen med RLCD (Reinforcement Learning for Calibrated Decisions): sannsynlighetene tilpasses faktiske utfall og gjenspeiler usikkerhet. Blant mange svar med en sannsynlighet på 0,8 bør omtrent 80% være riktige. Kalibrering er en egenskap ved et stort utvalg, ikke en garanti for at et enkelt svar er riktig.\n- **Et annet treningsmål.** Chatmodeller trenes på å tilfredsstille mennesker (RLHF), noe TypeSafe mener fremmer overdrevent medhold og feil som uttrykkes med sikkerhet. Diogo Almeida, en av medforfatterne bak RLHF, er medgründer av TypeSafe.\n\nNavnet viser til «System 1» i Daniel Kahnemans bok «Tenke, fort og langsomt»: raske, intuitive vurderinger i motsetning til langsom, gjennomtenkt tenkning i «System 2». Jev er laget for raske, avgrensede vurderinger.\n\n### Tre spørsmålstyper\n\nEt spørsmål er én vurdering av tilstanden, og svaret er en verdi som koden sammenligner med en terskel, sorterer eller sender videre.\n\n1. **Choice — valg av alternativ.** Avdeling for en henvendelse, produktkategori eller språket i et kodeutsnitt. Alternativene er en ordbok med «alternativ → beskrivelse», opptil 255 oppføringer. Svaret inneholder valgt `choice`, `probabilities` for alle alternativene (med sum 1) og sikkerhetsverdien `confidence`. Hvis listen ikke nødvendigvis dekker alle tilfeller, legg til «annet» eller «ingen av alternativene».\n2. **Score — vurdering på en skala.** Plassering på en ordnet skala som du beskriver: feilens alvorlighetsgrad, kundens irritasjon eller ferdighetsnivå. Fra 2 til 10 nivåer, fra lavest til høyest; modellen vurderer hvert nivå separat uten å se nummeret eller nabonivåene. Svaret inneholder `score` (summen av nivånumrene multiplisert med sannsynlighetene deres, så verdien kan ligge mellom nivåene), `legend` med nivåbeskrivelser, `probabilities` og `confidence`.\n3. **Noul — ja eller nei.** Om en påstand er riktig. Svaret `noul` er sannsynligheten for «ja» fra 0 til 1: nær 1 er et sikkert «ja», nær 0 et sikkert «nei», og nær 0,5 er modellen usikker. Det finnes ingen separat `confidence`: ett tall beskriver svaret fullt ut. Det valgfrie `criteria` presiserer hva som skal regnes som «ja» og «nei».\n\nSlik velger du: kjente alternativer uten rekkefølge — choice; trinn på et spekter — score; et rent «ja/nei» der selve sannsynligheten er viktig — noul. Noul 0,5 betyr like sjanser for «ja» og «nei», ikke et «middels nivå»: graden måles med score. Av to egnede typer velger du den koden handler direkte på: choice for forgreninger, score for en terskel og noul for `if`.\n\nTypene kan blandes i én forespørsel. Svaret er alltid begrenset til alternativene dine og er uavhengig av andre spørsmål: spørsmål kan legges til eller fjernes uten at de øvrige svarene endres.\n\n### Tilstand\n\nTilstanden er det modellen vurderer: en kundemelding, et dokumentutsnitt, en databaseoppføring eller tilstanden til programmet ditt.\n\n- **Streng** — når det er én tekst: en melding, artikkel eller et utdrag.\n- **Objekt** — navngitte felt, relaterte oppføringer eller programtilstand. TypeSafe anbefaler objekter for de fleste forespørsler: hver del har et tydelig navn.\n- **Array** — en sekvens av meldinger eller oppføringer.\n\nKlargjør tilstanden som materiale for eksperter: legg korrespondanse, bestilling og returregler sammen hvis beslutningen krever at de sammenlignes. Hold innholdet i tilstanden og vurderingene i spørsmålene. Hvis et spørsmål gjelder én del av tilstanden, oppgi stien i spørsmålet med backticks, for eksempel `ticket.messages[0].text`.\n\n### Hvordan spørsmål formuleres\n\n- **Én rask vurdering per spørsmål.** Et godt spørsmål kan en kyndig person med riktig kontekst svare på på ett sekund: «Uttrykker meldingen at det haster?». «Analyser meldingen og bestem hva som skal gjøres» krever allerede langsom resonnering og må deles i enkle spørsmål.\n- **Hele spørsmålet i `instructions`.** Spørsmålsnøkkelen, for eksempel `refund_requested`, brukes bare av koden din og sendes ikke til modellen.\n- **Alle spørsmål om samme tilstand i én forespørsel.** Modellen vurderer dem parallelt: ifølge TypeSafe øker ekstra spørsmål svartiden svært lite og koster bare sine egne tokener. Et spørsmål «for sikkerhets skyld» koster nesten ingenting; koden bestemmer selv hvilke svar som trengs.\n- **Krevende vurderinger deles opp.** Fremfor «vurder søknaden fra oppstartsbedriften», spør separat om markedsstørrelse, teknisk gjennomførbarhet og forskjeller fra konkurrentene, og beregn sluttresultatet i kode med vekter. Når prioriteringene endres, endrer du vektene, ikke spørsmålet.\n- **Avhengige spørsmål i en ny forespørsel.** Svarene i én forespørsel gir ikke hverandre kontekst. En ny forespørsel trengs bare dersom den ikke kan bygges uten det første svaret: data må lastes inn, eller alternativer til neste spørsmål velges.\n- **Lange spørsmål som objekter.** `instructions` og `criteria` er vanligvis strenger, men kan være objekter eller arrays: spørsmålet i ett felt og data i de andre. Dette er praktisk for å sammenligne en CV med databaseoppføringer i ett spørsmål.\n\n### Sikkerhet\n\nFor choice og score viser `confidence` fra 0 til 1 hvor konsentrert sannsynligheten er om ett svar: 1 betyr at alt ligger på ett alternativ, og 0 at den er likt fordelt mellom alle. For score reduserer et nabonivå sikkerheten mindre enn et fjernt nivå. For noul ligger sikkerheten i selve verdien: jo lenger fra 0,5, desto sikrere er svaret.\n\nTypeSafe anbefaler tre områder:\n\n1. **Høy sikkerhet** — handle automatisk.\n2. **Middels** — handle forsiktig, for eksempel ved å be brukeren bekrefte.\n3. **Lav** — send saken til et menneske, presiser forespørselen eller bruk en reservevei, for eksempel en kraftigere modell med resonnering.\n\nJo dyrere en feil er, desto strengere terskel: for irreversible handlinger bør den være høyere enn for lesing. Svaret sier hva som skal velges, og sikkerheten om det bør handles. Tilpass tersklene til egne data ved å sammenligne sikkerhet med nøyaktighet.\n\n### Hvordan et system rundt Jev bygges\n\nJev er laget for programmer der koden styrer prosessen og modellen besvarer avgrensede spørsmål om mening, fremfor agenter som velger neste trinn selv og kan komme på avveie i hver runde. TypeSafes åtte designtrinn:\n\n1. Gjør alt som kan gjøres i kode, med kode — pålitelig og rimelig.\n2. Ta bare med det de aktuelle spørsmålene trenger, i tilstanden; hent nye fakta fra din egen kunnskapsbase, ikke fra modellens minne.\n3. Struktur i tilstanden: nestet JSON og en sti til riktig felt med backticks i spørsmålet hvis det gir mindre tvetydighet.\n4. De mest avgrensede og konkrete spørsmålene er ifølge TypeSafe kanskje hovedregelen: et bredt spørsmål skjuler flere vurderinger bak ett svar.\n5. Struktur i spørsmålene: selve spørsmålet er kort; forklaringer, eksempler og verdier fra databasen legges i nabofelt i `instructions`- eller `criteria`-objektet, ikke i én lang streng.\n6. Mange uavhengige spørsmål om samme tilstand i én forespørsel — mer nytte per dollar.\n7. Koden kombinerer svarene: med regler, en vektet sum eller som egenskaper for en klassisk maskinlæringsmodell.\n8. Forgrening etter sikkerhet: usikre tilfeller sendes til et menneske eller en modell med resonnering.\n\nJev er ikke en chatmodell eller en modell for kodefullføring og kan ikke erstatte en språkmodell i en programmeringsagent. Agenten kan derimot skrive kode for deg som kaller Jev der det trengs et raskt, kalibrert svar.\n\n### Bruksområder\n\n- **Bakgrunnsautomatisering** — beslutninger som kjøres en million ganger uten et menneske til stede.\n- **Sanntid** — ifølge TypeSafe behandles de fleste forespørsler på omtrent 100 ms: raskt nok for løpende behandling og grensesnitt.\n- **Store datamengder** — søk i svært store korpus, annotering av agentlogger og egenskaper til prognoser.\n- **Kontroll av andre modeller** — forespørsler, datauttrekk, resonnering og verktøykall: omgåelse av begrensninger, siteringsfeil og oppdiktet innhold.\n- **Søk og rangering** — relevans for et par av søkespørsmål og kandidat, rerangering og utvalg av kontekst.\n- **Forgrening etter hensikt** — hva brukeren ønsker, og hvilken behandling som trengs: enkel logikk, en spesialisert modell eller et menneske; tema, vanskelighetsgrad og risiko avgjør hvilken språkmodell forespørselen sendes til.\n- **Beskyttelseskontroller** — språkmodellens inndata, utdata og verktøykall: innskutte instruksjoner, regelbrudd og lekkasje av personopplysninger.\n- **Kundestøtte** — henvendelsens tema og hensikt, hast, irritasjon, frafallsrisiko, refusjonsønske og kø.\n- **Moderering** — etter plattformens regler: toksisitet, trakassering, spam, svindel, farlige råd og personopplysninger; ut fra alvorlighetsgrad og sikkerhet velges gjennomslipp, advarsel, kontroll eller blokkering.\n- **Bransjer** — forsikringssaker, økonomiske undersøkelser og KYC, avtaler og reklame, produktkort, rekruttering, potensielle kunder, spill, risiko, etterspørselsprognoser, kunnskapsgrafer, vitenskapelige oversikter og semantiske kodekontroller i CI.\n\n### Egenskaper\n\n- **`jev-latest`** — alias for den siste stabile versjonen, nå Jev 1.13; versjonen som svarte, vises i `model`, for eksempel `jev-1.13.0`. Når en ny versjon kommer, peker aliaset på den, og svarene kan endres uten endringer fra din side; følg med på dette feltet hvis tersklene er tilpasset en versjon.\n- **Kontekst** — 64K tokener per forespørsel: tilstanden og alle spørsmål samlet; tilstanden sammen med det lengste spørsmålet kan ha opptil 32K. Modellen leser tilstanden én gang og vurderer alle spørsmål mot den parallelt.\n- **Inndata** — bare tekst: en streng, et JSON-objekt eller en array av tekster. Bilder, lyd og video støttes foreløpig ikke; gjør dem om til tekst først.\n- **Språk** — hovedspråket i treningen er engelsk, og nøyaktigheten er nå høyest på dette språket. Modellen tar imot andre språk, inkludert kinesisk, japansk og koreansk, men nøyaktigheten er lavere; kontroller dette med egne data.\n- **Priser og fakturering i Ailoot API** — vilkårene avhenger av den valgte metoden og er oppgitt på kortet for denne metoden.\n- **Tilpasning** — Jev finjusteres ikke på kundedata: eget materiale legges i `state`, og fagområdets regler i `instructions` og `criteria`.\n- **Data** — TypeSafe opplyser at Jev ikke trenes på kunders forespørsler og svar.\n\n### Kjente svakheter i Jev 1.13\n\nTypeSafe oppgir svakhetene i den gjeldende versjonen åpent og lover å rette mye i senere versjoner. Modellen er rask, kalibrert og god til vurderinger basert på sunn fornuft, men:\n\n1. **Leser bokstavelig.** Svarer på spørsmålet som er skrevet, ikke det som er underforstått: forbehold, negasjoner og implisitte vilkår tolkes bokstavelig. Skriv det nøyaktige vilkåret og grensetilfellene i `criteria`; del nødvendig tolkning i to bokstavelige spørsmål.\n2. **Ingen kalkulator.** Telling av tegn, gjentakelser og listeelementer er upålitelig, og feilen øker med omfanget; tell i kode og bruk ett spørsmål per kandidat. Modellen forstår farger i hex eller RGB dårligere enn fargenavn. `score` egner seg for en terskel, men ikke et nøyaktig tall mellom nivåene.\n3. **Datoer og tid.** Hvilken dato som er først, avstanden mellom datoer og om en dato faller innenfor en periode, er upålitelig, særlig med blandede formater og relative datoer. Hent datodeler med choice (med alternativet «ikke angitt»), og sammenlign i kode.\n4. **Indirekte spørsmål.** Dobbel negasjon og spørsmål om en egenskap ved en egenskap reduserer nøyaktigheten. Skriv direkte og navngi delene av tilstanden.\n5. **Overflødig innhold i tilstanden.** Uvedkommende tekst reduserer nøyaktigheten. Filtrer i kode, eller sil ut det irrelevante med noul-spørsmål hvis filtrering ikke er mulig.\n6. **Fiendtlig tekst.** Modellen forventer som standard ikke feller i tilstanden: en innskutt instruksjon eller tekst som argumenterer om sin egen klassifisering, kan påvirke svaret. Skriv presise kriterier og kontroller grensetilfeller før oppstart.\n7. **Motsetninger.** Hvis `instructions` og `criteria` ber om forskjellige ting, for eksempel hvis «ja» i noul beskrives som «nei», faller nøyaktigheten. Kriteriene er en fortsettelse av spørsmålet.\n8. **Alternativrekkefølge.** Modellen tenderer noen ganger mot det første choice-alternativet. Endre rekkefølgen og kontroller at svaret ikke endres.\n9. **Generering.** Jev er ikke trent til å skrive tekst. For datauttrekk finner du kandidater med et regulært uttrykk eller en generativ modell og lar Jev velge den riktige med 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": "Ugyldige påkrevde felter, materialrepresentasjon eller parameterverdi",
                "http_status": 400,
                "recovery": "Korriger de angitte feltene før en ny opprettelsesforespørsel.",
                "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": "Behold hvert svar med den oppgitte spørsmåls-ID-en, sannsynligheten og tegnforklaringen; konfidensformelen som bruker n, krever n>1 uten at dette innebærer en regel om minste antall svaralternativer i API-et.",
              "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: valgfrie beskrivelser for true/false som tillater null; choice: kriterieobjekt; score: kriteriematrise som må ha innhold",
                "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": [
            "Metodestrukturer og ID-er er eksakte; leverandørens evne er adskilt fra godkjenning av forespørselen."
          ],
          "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": "En beslutningsmodell fra TypeSafe: den skriver ikke tekst, men svarer på typede spørsmål om tekst eller JSON ved å velge et alternativ, gi en skår på en skala eller svare «ja/nei» med sannsynligheter. Den passer for ruting, sortering av henvendelser, moderering og skåring; alle spørsmål i én forespørsel vurderes parallelt."
  },
  "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": "En beslutningsmodell fra TypeSafe: den skriver ikke tekst, men svarer på typede spørsmål om tekst eller JSON ved å velge et alternativ, gi en skår på en skala eller svare «ja/nei» med sannsynligheter. Den passer for ruting, sortering av henvendelser, moderering og skåring; alle spørsmål i én forespørsel vurderes parallelt.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "498a54fbdd76a6a236603636447173c2caf759a7c899fc3a1a63a8d352035220",
    "renderer_sha256": "c8cb5a92c10b47373d294dee7465d66796cd4710c6626fd81459dc0625fc6d26"
  },
  "sourceRevision": "69d95a351fcff3810bf4bb412ee35b01c341b4db60a7d18a19ea86c890bd5b3e"
}
