{
  "aboutHtml": "<p>Jev ist das Flaggschiffmodell von TypeSafe und das erste Modell der neuen Klasse <strong>System One</strong>. Es schreibt keinen Text, sondern trifft schnell Entscheidungen, die ein Programm direkt nutzen kann: Sie übermitteln einen <strong>Zustand</strong> (<code>state</code>) – Text oder JSON – und einen Satz von <strong>Fragen</strong> und erhalten typisierte Werte mit kalibrierten Wahrscheinlichkeiten.</p><p>Sprachmodelle schreiben Wörter für Menschen; Jev ist laut TypeSafe näher an Code: Die Antwort hat sofort die vom Code benötigte Form, kommt schnell und enthält keinen Wert ausserhalb der vorgegebenen Optionen. Das Modell soll bei wiederholten Anfragen stabile Antworten liefern.</p><h4>Wie sich System One von einem Sprachmodell unterscheidet</h4><ul><li><strong>Keine Generierung.</strong> Jev schreibt weder Nutzerantworten noch Code und erklärt keinen Denkverlauf. Sie geben die möglichen Antworten durch einen von drei Fragetypen vor.</li><li><strong>Auf kalibrierte Entscheidungen trainiert.</strong> TypeSafe trainiert das Modell mit RLCD (Reinforcement Learning for Calibrated Decisions): Wahrscheinlichkeiten werden an tatsächliche Ergebnisse angepasst und spiegeln Unsicherheit wider. Unter vielen Antworten mit einer Wahrscheinlichkeit von 0,8 sollten etwa 80% korrekt sein. Kalibrierung ist eine Eigenschaft einer grossen Stichprobe und garantiert nicht die Richtigkeit einer einzelnen Antwort.</li><li><strong>Ein anderes Trainingsziel.</strong> Chatmodelle werden darauf trainiert, Menschen zu gefallen (RLHF); laut TypeSafe fördert dies Gefälligkeit und selbstsicher klingende Fehler. Einer der Mitautoren von RLHF, Diogo Almeida, ist Mitgründer von TypeSafe.</li></ul><p>Der Name verweist auf «System 1» aus Daniel Kahnemans Buch «Schnelles Denken, langsames Denken»: schnelle intuitive Urteile gegenüber langsamem, überlegtem Denken von «System 2». Jev wurde für schnelle, eng begrenzte Urteile entwickelt.</p><h4>Drei Fragetypen</h4><p>Eine Frage ist ein einzelnes Urteil über den Zustand; die Antwort ein Wert, den Code mit einem Schwellenwert vergleicht, sortiert oder weitergibt.</p><ol><li><strong>Choice – Optionswahl.</strong> Zuständige Abteilung für eine Anfrage, Produktkategorie oder Sprache eines Codeabschnitts. Die Optionen sind ein Wörterbuch «Option → Beschreibung», mit bis zu 255 Einträgen. Die Antwort enthält den gewählten <code>choice</code>, <code>probabilities</code> für sämtliche Optionen mit einer Summe von 1 und <code>confidence</code>. Falls die Liste nicht alle Fälle abdeckt, ergänzen Sie «andere» oder «keine der genannten».</li><li><strong>Score – Skalenbewertung.</strong> Eine Position auf einer geordneten Skala, die Sie beschreiben: Fehlerschwere, Kundenverärgerung oder Fähigkeitsniveau. Die Skala hat 2 bis 10 Stufen, von niedrig bis hoch; das Modell bewertet jede Stufe separat, ohne ihre Nummer und Nachbarn zu sehen. Die Antwort enthält <code>score</code>, die Summe der mit ihren Wahrscheinlichkeiten multiplizierten Stufennummern, sodass der Wert zwischen Stufen liegen kann, <code>legend</code> mit Stufenbeschreibungen, <code>probabilities</code> und <code>confidence</code>.</li><li><strong>Noul – Ja oder Nein.</strong> Ob eine Aussage zutrifft. <code>noul</code> ist die «Ja»-Wahrscheinlichkeit von 0 bis 1: nahe 1 ein sicheres «Ja», nahe 0 ein sicheres «Nein», nahe 0,5 ist das Modell unentschieden. Es gibt kein separates <code>confidence</code>: Eine Zahl beschreibt die Antwort vollständig. Optionales <code>criteria</code> präzisiert, was als «Ja» und was als «Nein» gilt.</li></ol><p>So wählen Sie: Bekannte ungeordnete Optionen – choice; Stufen eines Spektrums – score; reines «Ja/Nein», bei dem die Wahrscheinlichkeit zählt – noul. Noul 0,5 bedeutet gleiche Chancen für «Ja» und «Nein», kein «mittleres Niveau»: Einen Grad misst score. Wenn zwei Typen passen, wählen Sie den, mit dem Code sofort handeln kann: choice für Verzweigungen, score für einen Schwellenwert, noul für <code>if</code>.</p><p>Typen lassen sich in einer Anfrage mischen. Die Antwort ist stets auf Ihre Optionen begrenzt und unabhängig von anderen Fragen: Fragen können hinzugefügt oder entfernt werden, ohne die übrigen Antworten zu ändern.</p><h4>Zustand</h4><p>Der Zustand ist das, was das Modell bewertet: eine Kundennachricht, ein Dokumentabschnitt, ein Datenbankeintrag oder Ihr Anwendungszustand.</p><ul><li><strong>Zeichenfolge</strong> – bei einem einzelnen Text: Nachricht, Artikel oder Auszug.</li><li><strong>Objekt</strong> – benannte Felder, zusammenhängende Datensätze oder Anwendungszustand. TypeSafe empfiehlt Objekte für die meisten Anfragen: Jeder Teil hat einen verständlichen Namen.</li><li><strong>Array</strong> – eine Folge von Nachrichten oder Datensätzen.</li></ul><p>Bereiten Sie ihn wie Materialien für Fachpersonen vor: Korrespondenz, Bestellung und Rückgaberegeln gehören zusammen, wenn die Entscheidung ihren Vergleich erfordert. Inhalte gehören in den Zustand, Urteile in die Fragen. Betrifft eine Frage nur einen Zustandsteil, nennen Sie den Pfad dazu in Backticks, etwa <code>ticket.messages[0].text</code>.</p><h4>Fragen formulieren</h4><ul><li><strong>Ein schnelles Urteil pro Frage.</strong> Eine gute Frage kann eine kundige Person mit dem nötigen Kontext in einer Sekunde beantworten: «Ist die Nachricht dringend?». «Analysiere die Nachricht und entscheide, was zu tun ist» benötigt bereits langsames Denken und muss in einfache Fragen zerlegt werden.</li><li><strong>Die ganze Frage gehört in <code>instructions</code>.</strong> Der Fragenschlüssel, etwa <code>refund_requested</code>, dient nur Ihrem Code und wird dem Modell nicht übermittelt.</li><li><strong>Alle Fragen zu einem Zustand in einer Anfrage.</strong> Das Modell bewertet sie parallel: Laut TypeSafe erhöhen zusätzliche Fragen die Antwortzeit kaum und kosten nur ihre eigenen Tokens. Eine Frage «für alle Fälle» ist fast kostenlos; der Code entscheidet selbst, welche Antworten er benötigt.</li><li><strong>Komplexe Urteile aufteilen.</strong> Statt «Bewerte eine Startup-Bewerbung» fragen Sie separat nach Marktgrösse, technischer Machbarkeit und Unterschieden zu Konkurrenten; das Endergebnis berechnet der Code mit Gewichtungen. Bei geänderten Prioritäten ändern Sie die Gewichte und schreiben nicht die Frage um.</li><li><strong>Abhängige Fragen in einer zweiten Anfrage.</strong> Antworten derselben Anfrage sind füreinander kein Kontext. Eine zweite Anfrage ist nur erforderlich, wenn sie ohne die erste Antwort nicht zusammengestellt werden kann: Daten müssen nachgeladen oder Optionen der nächsten Frage gewählt werden.</li><li><strong>Lange Fragen als Objekt.</strong> <code>instructions</code> und <code>criteria</code> sind gewöhnlich Zeichenfolgen, können aber Objekte oder Arrays sein: Die Frage steht in einem Feld, Daten in anderen. So lässt sich ein Lebenslauf mit einer Frage gegen Datenbankeinträge prüfen.</li></ul><h4>Sicherheit</h4><p>Bei choice und score zeigt <code>confidence</code> von 0 bis 1, wie stark sich die Wahrscheinlichkeit auf eine Antwort konzentriert: 1 vollständig auf eine Option, 0 gleichmässig auf alle. Bei score verringert eine benachbarte Stufe die Sicherheit weniger als eine weit entfernte. Bei noul ist die Sicherheit der Wert selbst: Je weiter von 0,5 entfernt, desto eindeutiger die Antwort.</p><p>TypeSafe empfiehlt drei Bereiche:</p><ol><li><strong>Hohe Sicherheit</strong> – automatisch handeln.</li><li><strong>Mittlere</strong> – vorsichtig handeln, beispielsweise den Nutzer um Bestätigung bitten.</li><li><strong>Niedrige</strong> – den Fall einem Menschen übergeben, die Anfrage präzisieren oder einen Ersatzweg nutzen, etwa ein leistungsfähigeres Modell mit Denkprozessen.</li></ol><p>Je teurer ein Fehler, desto strenger der Schwellenwert: Für irreversible Aktionen höher als für Lesevorgänge. Die Antwort zeigt die Auswahl; die Sicherheit zeigt, ob gehandelt werden sollte. Stimmen Sie Schwellenwerte auf eigene Daten ab, indem Sie Sicherheit und Genauigkeit vergleichen.</p><h4>Ein System um Jev herum aufbauen</h4><p>Jev ist nicht für Agenten gedacht, die ihren nächsten Schritt selbst wählen und in jeder Runde vom Weg abkommen können, sondern für Programme, deren Prozess vom Code gesteuert wird, während das Modell eng begrenzte Bedeutungsfragen beantwortet. Acht Entwurfsschritte nach TypeSafe:</p><ol><li>Was sich mit Code erledigen lässt, wird mit Code erledigt – zuverlässig und günstig.</li><li>In den Zustand gehört nur, was die aktuellen Fragen benötigen; aktuelle Fakten kommen aus der eigenen Wissensbasis und nicht aus dem Modellgedächtnis.</li><li>Struktur im Zustand: verschachteltes JSON; in der Frage der Pfad zum benötigten Feld in Backticks, wenn dies Mehrdeutigkeit verringert.</li><li>Möglichst eng begrenzte, konkrete Fragen – laut TypeSafe vielleicht die wichtigste Regel: Eine breite Frage verbirgt mehrere Urteile hinter einer Antwort.</li><li>Struktur in Fragen: Die Frage selbst bleibt kurz; Erklärungen, Beispiele und Werte aus Ihrer Datenbank stehen in benachbarten Feldern des Objekts <code>instructions</code> oder <code>criteria</code> statt in einer langen Zeichenfolge.</li><li>Viele unabhängige Fragen zum selben Zustand in einer Anfrage – mehr Nutzen pro Dollar.</li><li>Der Code verbindet Antworten: durch Regeln, eine gewichtete Summe oder als Merkmale für ein klassisches Modell des maschinellen Lernens.</li><li>Verzweigung nach Sicherheit: Unsichere Fälle gehen an einen Menschen oder ein Modell mit Denkprozessen.</li></ol><p>Jev ist weder Chat noch Codevervollständigungsmodell und kann bei einem Programmieragenten kein Sprachmodell ersetzen. Ein Agent kann jedoch für Sie Code schreiben, der Jev dort aufruft, wo eine schnelle, kalibrierte Antwort benötigt wird.</p><h4>Einsatzgebiete</h4><ul><li><strong>Hintergrundautomatisierung</strong> – Entscheidungen, die eine Million Mal ohne anwesenden Menschen ausgeführt werden.</li><li><strong>Echtzeit</strong> – laut TypeSafe werden die meisten Anfragen in etwa 100 ms ausgeführt: ausreichend für laufende Verarbeitung und Oberflächen.</li><li><strong>Grosse Datenmengen</strong> – Suche in riesigen Korpora, Kennzeichnung von Agentenprotokollen und Merkmale für Prognosen.</li><li><strong>Prüfung anderer Modelle</strong> – Anfragen, Extraktionen, Denkprozesse und Werkzeugaufrufe: Umgehung von Grenzen, Zitierfehler und erfundene Inhalte.</li><li><strong>Suche und Rangfolge</strong> – Relevanz eines Paars «Anfrage – Kandidat», erneutes Ranking und Kontextauswahl.</li><li><strong>Verzweigung nach Absicht</strong> – Was möchte der Nutzer und welcher Bearbeiter wird benötigt: einfache Logik, ein Fachmodell oder ein Mensch; Thema, Schwierigkeit und Risiko bestimmen, welches Sprachmodell die Anfrage erhält.</li><li><strong>Schutzprüfungen</strong> – Eingabe, Ausgabe und Werkzeugaufrufe eines Sprachmodells: eingeschleuste Anweisungen, Regelverstösse und Offenlegung persönlicher Daten.</li><li><strong>Support</strong> – Thema und Absicht der Anfrage, Dringlichkeit, Verärgerung, Abwanderungsrisiko, Rückgabewunsch und Warteschlange.</li><li><strong>Moderation</strong> – nach Plattformregeln: toxische Inhalte, Belästigung, Spam, Betrug, gefährliche Ratschläge und persönliche Daten; je nach Schwere und Sicherheit durchlassen, warnen, prüfen oder sperren.</li><li><strong>Branchen</strong> – Versicherungsfälle, Finanzermittlungen und KYC, Verträge und Werbung, Produktkarten, Personalauswahl, Leads, Spiele, Risiken, Nachfrageprognosen, Wissensgraphen, wissenschaftliche Übersichten und semantische Codeprüfungen in CI.</li></ul><h4>Eigenschaften</h4><ul><li><strong><code>jev-latest</code></strong> ist der Alias der neuesten stabilen Version, derzeit Jev 1.13; die antwortende Version steht im Feld <code>model</code>, etwa <code>jev-1.13.0</code>. Mit einer neuen Version wechselt der Alias dorthin; Antworten können sich ohne Ihre Änderungen verändern. Überwachen Sie dieses Feld, wenn Schwellenwerte auf eine Version abgestimmt sind.</li><li><strong>Kontext</strong> – 64K Tokens pro Anfrage: Zustand und alle Fragen zusammen; Zustand mit der längsten Frage bis zu 32K. Das Modell liest den Zustand einmal und prüft sämtliche Fragen parallel dagegen.</li><li><strong>Eingabe</strong> – nur Text: Zeichenfolge, JSON-Objekt oder Textarray. Bilder, Audio und Video werden noch nicht unterstützt; wandeln Sie sie vorab in Text um.</li><li><strong>Sprache</strong> – Die Haupttrainingssprache ist Englisch; dort ist die Genauigkeit derzeit am höchsten. Weitere Sprachen, darunter Chinesisch, Japanisch und Koreanisch, nimmt das Modell an, doch mit geringerer Genauigkeit. Prüfen Sie es mit eigenen Daten.</li><li><strong>Preise und Abrechnung in Ailoot API</strong> — die Konditionen hängen von der gewählten Methode ab und sind auf deren Karte angegeben.</li><li><strong>Anpassung</strong> – Jev wird nicht mit Kundendaten nachtrainiert: Eigene Materialien gehören in <code>state</code>, Fachregeln in <code>instructions</code> und <code>criteria</code>.</li><li><strong>Daten</strong> – Laut TypeSafe wird Jev nicht mit Kundenanfragen und -antworten trainiert.</li></ul><h4>Bekannte Schwächen von Jev 1.13</h4><p>TypeSafe nennt die Schwächen der aktuellen Version offen und verspricht, vieles in späteren Versionen zu beheben. Das Modell ist schnell, kalibriert und urteilt gut mit gesundem Menschenverstand, aber:</p><ol><li><strong>Wörtliches Lesen.</strong> Es beantwortet die geschriebene Frage, nicht die gemeinte: Einschränkungen, Verneinungen und implizite Bedingungen werden wörtlich verstanden. Schreiben Sie die genaue Bedingung und Grenzfälle in <code>criteria</code>; teilen Sie eine unvermeidbare Interpretation in zwei wörtliche Fragen auf.</li><li><strong>Kein Taschenrechner.</strong> Das Zählen von Zeichen, Wiederholungen und Listenelementen ist unzuverlässig; Fehler wachsen mit dem Umfang. Zählen Sie im Code und stellen Sie eine Frage pro Kandidat. Farben in hex oder RGB versteht das Modell schlechter als Farbnamen. <code>score</code> eignet sich für einen Schwellenwert, nicht für eine genaue Zahl zwischen Stufen.</li><li><strong>Daten und Zeit.</strong> Welches Datum früher liegt, wie viel Zeit dazwischen liegt oder ob ein Datum in einen Zeitraum fällt, ist unzuverlässig, besonders bei gemischten Formaten und relativen Daten. Extrahieren Sie Datumsteile über choice mit einer Option «nicht angegeben» und vergleichen Sie im Code.</li><li><strong>Indirektheit.</strong> Doppelte Verneinungen und Fragen zu Eigenschaften einer Eigenschaft verringern die Genauigkeit. Schreiben Sie direkt und nennen Sie Zustandsteile beim Namen.</li><li><strong>Überflüssiger Zustand.</strong> Fremder Text verringert die Genauigkeit. Filtern Sie im Code; wenn das nicht möglich ist, sortieren Sie Irrelevantes durch noul-Fragen aus.</li><li><strong>Feindseliger Text.</strong> Das Modell erwartet standardmässig keine Täuschungen im Zustand: Eine eingeschleuste Anweisung oder Text, der seine eigene Klassifizierung bestreitet, kann die Antwort verschieben. Formulieren Sie genaue Kriterien und prüfen Sie Grenzfälle vor dem Start.</li><li><strong>Widersprüche.</strong> Wenn <code>instructions</code> und <code>criteria</code> Unterschiedliches verlangen, etwa bei noul «Ja» als «Nein» beschreiben, sinkt die Genauigkeit. Kriterien setzen die Frage fort.</li><li><strong>Optionsreihenfolge.</strong> Manchmal bevorzugt das Modell die erste choice-Option. Ordnen Sie Optionen um und prüfen Sie, ob die Antwort gleich bleibt.</li><li><strong>Generierung.</strong> Jev wurde nicht zum Textschreiben trainiert. Für Datenextraktion finden Sie Kandidaten mit einem regulären Ausdruck oder einem generativen Modell; Jev wählt über choice den passenden.</li></ol>",
  "aboutText": "Jev ist das Flaggschiffmodell von TypeSafe und das erste Modell der neuen Klasse **System One**. Es schreibt keinen Text, sondern trifft schnell Entscheidungen, die ein Programm direkt nutzen kann: Sie übermitteln einen **Zustand** (`state`) – Text oder JSON – und einen Satz von **Fragen** und erhalten typisierte Werte mit kalibrierten Wahrscheinlichkeiten.\n\nSprachmodelle schreiben Wörter für Menschen; Jev ist laut TypeSafe näher an Code: Die Antwort hat sofort die vom Code benötigte Form, kommt schnell und enthält keinen Wert ausserhalb der vorgegebenen Optionen. Das Modell soll bei wiederholten Anfragen stabile Antworten liefern.\n\n### Wie sich System One von einem Sprachmodell unterscheidet\n\n- **Keine Generierung.** Jev schreibt weder Nutzerantworten noch Code und erklärt keinen Denkverlauf. Sie geben die möglichen Antworten durch einen von drei Fragetypen vor.\n- **Auf kalibrierte Entscheidungen trainiert.** TypeSafe trainiert das Modell mit RLCD (Reinforcement Learning for Calibrated Decisions): Wahrscheinlichkeiten werden an tatsächliche Ergebnisse angepasst und spiegeln Unsicherheit wider. Unter vielen Antworten mit einer Wahrscheinlichkeit von 0,8 sollten etwa 80% korrekt sein. Kalibrierung ist eine Eigenschaft einer grossen Stichprobe und garantiert nicht die Richtigkeit einer einzelnen Antwort.\n- **Ein anderes Trainingsziel.** Chatmodelle werden darauf trainiert, Menschen zu gefallen (RLHF); laut TypeSafe fördert dies Gefälligkeit und selbstsicher klingende Fehler. Einer der Mitautoren von RLHF, Diogo Almeida, ist Mitgründer von TypeSafe.\n\nDer Name verweist auf «System 1» aus Daniel Kahnemans Buch «Schnelles Denken, langsames Denken»: schnelle intuitive Urteile gegenüber langsamem, überlegtem Denken von «System 2». Jev wurde für schnelle, eng begrenzte Urteile entwickelt.\n\n### Drei Fragetypen\n\nEine Frage ist ein einzelnes Urteil über den Zustand; die Antwort ein Wert, den Code mit einem Schwellenwert vergleicht, sortiert oder weitergibt.\n\n1. **Choice – Optionswahl.** Zuständige Abteilung für eine Anfrage, Produktkategorie oder Sprache eines Codeabschnitts. Die Optionen sind ein Wörterbuch «Option → Beschreibung», mit bis zu 255 Einträgen. Die Antwort enthält den gewählten `choice`, `probabilities` für sämtliche Optionen mit einer Summe von 1 und `confidence`. Falls die Liste nicht alle Fälle abdeckt, ergänzen Sie «andere» oder «keine der genannten».\n2. **Score – Skalenbewertung.** Eine Position auf einer geordneten Skala, die Sie beschreiben: Fehlerschwere, Kundenverärgerung oder Fähigkeitsniveau. Die Skala hat 2 bis 10 Stufen, von niedrig bis hoch; das Modell bewertet jede Stufe separat, ohne ihre Nummer und Nachbarn zu sehen. Die Antwort enthält `score`, die Summe der mit ihren Wahrscheinlichkeiten multiplizierten Stufennummern, sodass der Wert zwischen Stufen liegen kann, `legend` mit Stufenbeschreibungen, `probabilities` und `confidence`.\n3. **Noul – Ja oder Nein.** Ob eine Aussage zutrifft. `noul` ist die «Ja»-Wahrscheinlichkeit von 0 bis 1: nahe 1 ein sicheres «Ja», nahe 0 ein sicheres «Nein», nahe 0,5 ist das Modell unentschieden. Es gibt kein separates `confidence`: Eine Zahl beschreibt die Antwort vollständig. Optionales `criteria` präzisiert, was als «Ja» und was als «Nein» gilt.\n\nSo wählen Sie: Bekannte ungeordnete Optionen – choice; Stufen eines Spektrums – score; reines «Ja/Nein», bei dem die Wahrscheinlichkeit zählt – noul. Noul 0,5 bedeutet gleiche Chancen für «Ja» und «Nein», kein «mittleres Niveau»: Einen Grad misst score. Wenn zwei Typen passen, wählen Sie den, mit dem Code sofort handeln kann: choice für Verzweigungen, score für einen Schwellenwert, noul für `if`.\n\nTypen lassen sich in einer Anfrage mischen. Die Antwort ist stets auf Ihre Optionen begrenzt und unabhängig von anderen Fragen: Fragen können hinzugefügt oder entfernt werden, ohne die übrigen Antworten zu ändern.\n\n### Zustand\n\nDer Zustand ist das, was das Modell bewertet: eine Kundennachricht, ein Dokumentabschnitt, ein Datenbankeintrag oder Ihr Anwendungszustand.\n\n- **Zeichenfolge** – bei einem einzelnen Text: Nachricht, Artikel oder Auszug.\n- **Objekt** – benannte Felder, zusammenhängende Datensätze oder Anwendungszustand. TypeSafe empfiehlt Objekte für die meisten Anfragen: Jeder Teil hat einen verständlichen Namen.\n- **Array** – eine Folge von Nachrichten oder Datensätzen.\n\nBereiten Sie ihn wie Materialien für Fachpersonen vor: Korrespondenz, Bestellung und Rückgaberegeln gehören zusammen, wenn die Entscheidung ihren Vergleich erfordert. Inhalte gehören in den Zustand, Urteile in die Fragen. Betrifft eine Frage nur einen Zustandsteil, nennen Sie den Pfad dazu in Backticks, etwa `ticket.messages[0].text`.\n\n### Fragen formulieren\n\n- **Ein schnelles Urteil pro Frage.** Eine gute Frage kann eine kundige Person mit dem nötigen Kontext in einer Sekunde beantworten: «Ist die Nachricht dringend?». «Analysiere die Nachricht und entscheide, was zu tun ist» benötigt bereits langsames Denken und muss in einfache Fragen zerlegt werden.\n- **Die ganze Frage gehört in `instructions`.** Der Fragenschlüssel, etwa `refund_requested`, dient nur Ihrem Code und wird dem Modell nicht übermittelt.\n- **Alle Fragen zu einem Zustand in einer Anfrage.** Das Modell bewertet sie parallel: Laut TypeSafe erhöhen zusätzliche Fragen die Antwortzeit kaum und kosten nur ihre eigenen Tokens. Eine Frage «für alle Fälle» ist fast kostenlos; der Code entscheidet selbst, welche Antworten er benötigt.\n- **Komplexe Urteile aufteilen.** Statt «Bewerte eine Startup-Bewerbung» fragen Sie separat nach Marktgrösse, technischer Machbarkeit und Unterschieden zu Konkurrenten; das Endergebnis berechnet der Code mit Gewichtungen. Bei geänderten Prioritäten ändern Sie die Gewichte und schreiben nicht die Frage um.\n- **Abhängige Fragen in einer zweiten Anfrage.** Antworten derselben Anfrage sind füreinander kein Kontext. Eine zweite Anfrage ist nur erforderlich, wenn sie ohne die erste Antwort nicht zusammengestellt werden kann: Daten müssen nachgeladen oder Optionen der nächsten Frage gewählt werden.\n- **Lange Fragen als Objekt.** `instructions` und `criteria` sind gewöhnlich Zeichenfolgen, können aber Objekte oder Arrays sein: Die Frage steht in einem Feld, Daten in anderen. So lässt sich ein Lebenslauf mit einer Frage gegen Datenbankeinträge prüfen.\n\n### Sicherheit\n\nBei choice und score zeigt `confidence` von 0 bis 1, wie stark sich die Wahrscheinlichkeit auf eine Antwort konzentriert: 1 vollständig auf eine Option, 0 gleichmässig auf alle. Bei score verringert eine benachbarte Stufe die Sicherheit weniger als eine weit entfernte. Bei noul ist die Sicherheit der Wert selbst: Je weiter von 0,5 entfernt, desto eindeutiger die Antwort.\n\nTypeSafe empfiehlt drei Bereiche:\n\n1. **Hohe Sicherheit** – automatisch handeln.\n2. **Mittlere** – vorsichtig handeln, beispielsweise den Nutzer um Bestätigung bitten.\n3. **Niedrige** – den Fall einem Menschen übergeben, die Anfrage präzisieren oder einen Ersatzweg nutzen, etwa ein leistungsfähigeres Modell mit Denkprozessen.\n\nJe teurer ein Fehler, desto strenger der Schwellenwert: Für irreversible Aktionen höher als für Lesevorgänge. Die Antwort zeigt die Auswahl; die Sicherheit zeigt, ob gehandelt werden sollte. Stimmen Sie Schwellenwerte auf eigene Daten ab, indem Sie Sicherheit und Genauigkeit vergleichen.\n\n### Ein System um Jev herum aufbauen\n\nJev ist nicht für Agenten gedacht, die ihren nächsten Schritt selbst wählen und in jeder Runde vom Weg abkommen können, sondern für Programme, deren Prozess vom Code gesteuert wird, während das Modell eng begrenzte Bedeutungsfragen beantwortet. Acht Entwurfsschritte nach TypeSafe:\n\n1. Was sich mit Code erledigen lässt, wird mit Code erledigt – zuverlässig und günstig.\n2. In den Zustand gehört nur, was die aktuellen Fragen benötigen; aktuelle Fakten kommen aus der eigenen Wissensbasis und nicht aus dem Modellgedächtnis.\n3. Struktur im Zustand: verschachteltes JSON; in der Frage der Pfad zum benötigten Feld in Backticks, wenn dies Mehrdeutigkeit verringert.\n4. Möglichst eng begrenzte, konkrete Fragen – laut TypeSafe vielleicht die wichtigste Regel: Eine breite Frage verbirgt mehrere Urteile hinter einer Antwort.\n5. Struktur in Fragen: Die Frage selbst bleibt kurz; Erklärungen, Beispiele und Werte aus Ihrer Datenbank stehen in benachbarten Feldern des Objekts `instructions` oder `criteria` statt in einer langen Zeichenfolge.\n6. Viele unabhängige Fragen zum selben Zustand in einer Anfrage – mehr Nutzen pro Dollar.\n7. Der Code verbindet Antworten: durch Regeln, eine gewichtete Summe oder als Merkmale für ein klassisches Modell des maschinellen Lernens.\n8. Verzweigung nach Sicherheit: Unsichere Fälle gehen an einen Menschen oder ein Modell mit Denkprozessen.\n\nJev ist weder Chat noch Codevervollständigungsmodell und kann bei einem Programmieragenten kein Sprachmodell ersetzen. Ein Agent kann jedoch für Sie Code schreiben, der Jev dort aufruft, wo eine schnelle, kalibrierte Antwort benötigt wird.\n\n### Einsatzgebiete\n\n- **Hintergrundautomatisierung** – Entscheidungen, die eine Million Mal ohne anwesenden Menschen ausgeführt werden.\n- **Echtzeit** – laut TypeSafe werden die meisten Anfragen in etwa 100 ms ausgeführt: ausreichend für laufende Verarbeitung und Oberflächen.\n- **Grosse Datenmengen** – Suche in riesigen Korpora, Kennzeichnung von Agentenprotokollen und Merkmale für Prognosen.\n- **Prüfung anderer Modelle** – Anfragen, Extraktionen, Denkprozesse und Werkzeugaufrufe: Umgehung von Grenzen, Zitierfehler und erfundene Inhalte.\n- **Suche und Rangfolge** – Relevanz eines Paars «Anfrage – Kandidat», erneutes Ranking und Kontextauswahl.\n- **Verzweigung nach Absicht** – Was möchte der Nutzer und welcher Bearbeiter wird benötigt: einfache Logik, ein Fachmodell oder ein Mensch; Thema, Schwierigkeit und Risiko bestimmen, welches Sprachmodell die Anfrage erhält.\n- **Schutzprüfungen** – Eingabe, Ausgabe und Werkzeugaufrufe eines Sprachmodells: eingeschleuste Anweisungen, Regelverstösse und Offenlegung persönlicher Daten.\n- **Support** – Thema und Absicht der Anfrage, Dringlichkeit, Verärgerung, Abwanderungsrisiko, Rückgabewunsch und Warteschlange.\n- **Moderation** – nach Plattformregeln: toxische Inhalte, Belästigung, Spam, Betrug, gefährliche Ratschläge und persönliche Daten; je nach Schwere und Sicherheit durchlassen, warnen, prüfen oder sperren.\n- **Branchen** – Versicherungsfälle, Finanzermittlungen und KYC, Verträge und Werbung, Produktkarten, Personalauswahl, Leads, Spiele, Risiken, Nachfrageprognosen, Wissensgraphen, wissenschaftliche Übersichten und semantische Codeprüfungen in CI.\n\n### Eigenschaften\n\n- **`jev-latest`** ist der Alias der neuesten stabilen Version, derzeit Jev 1.13; die antwortende Version steht im Feld `model`, etwa `jev-1.13.0`. Mit einer neuen Version wechselt der Alias dorthin; Antworten können sich ohne Ihre Änderungen verändern. Überwachen Sie dieses Feld, wenn Schwellenwerte auf eine Version abgestimmt sind.\n- **Kontext** – 64K Tokens pro Anfrage: Zustand und alle Fragen zusammen; Zustand mit der längsten Frage bis zu 32K. Das Modell liest den Zustand einmal und prüft sämtliche Fragen parallel dagegen.\n- **Eingabe** – nur Text: Zeichenfolge, JSON-Objekt oder Textarray. Bilder, Audio und Video werden noch nicht unterstützt; wandeln Sie sie vorab in Text um.\n- **Sprache** – Die Haupttrainingssprache ist Englisch; dort ist die Genauigkeit derzeit am höchsten. Weitere Sprachen, darunter Chinesisch, Japanisch und Koreanisch, nimmt das Modell an, doch mit geringerer Genauigkeit. Prüfen Sie es mit eigenen Daten.\n- **Preise und Abrechnung in Ailoot API** — die Konditionen hängen von der gewählten Methode ab und sind auf deren Karte angegeben.\n- **Anpassung** – Jev wird nicht mit Kundendaten nachtrainiert: Eigene Materialien gehören in `state`, Fachregeln in `instructions` und `criteria`.\n- **Daten** – Laut TypeSafe wird Jev nicht mit Kundenanfragen und -antworten trainiert.\n\n### Bekannte Schwächen von Jev 1.13\n\nTypeSafe nennt die Schwächen der aktuellen Version offen und verspricht, vieles in späteren Versionen zu beheben. Das Modell ist schnell, kalibriert und urteilt gut mit gesundem Menschenverstand, aber:\n\n1. **Wörtliches Lesen.** Es beantwortet die geschriebene Frage, nicht die gemeinte: Einschränkungen, Verneinungen und implizite Bedingungen werden wörtlich verstanden. Schreiben Sie die genaue Bedingung und Grenzfälle in `criteria`; teilen Sie eine unvermeidbare Interpretation in zwei wörtliche Fragen auf.\n2. **Kein Taschenrechner.** Das Zählen von Zeichen, Wiederholungen und Listenelementen ist unzuverlässig; Fehler wachsen mit dem Umfang. Zählen Sie im Code und stellen Sie eine Frage pro Kandidat. Farben in hex oder RGB versteht das Modell schlechter als Farbnamen. `score` eignet sich für einen Schwellenwert, nicht für eine genaue Zahl zwischen Stufen.\n3. **Daten und Zeit.** Welches Datum früher liegt, wie viel Zeit dazwischen liegt oder ob ein Datum in einen Zeitraum fällt, ist unzuverlässig, besonders bei gemischten Formaten und relativen Daten. Extrahieren Sie Datumsteile über choice mit einer Option «nicht angegeben» und vergleichen Sie im Code.\n4. **Indirektheit.** Doppelte Verneinungen und Fragen zu Eigenschaften einer Eigenschaft verringern die Genauigkeit. Schreiben Sie direkt und nennen Sie Zustandsteile beim Namen.\n5. **Überflüssiger Zustand.** Fremder Text verringert die Genauigkeit. Filtern Sie im Code; wenn das nicht möglich ist, sortieren Sie Irrelevantes durch noul-Fragen aus.\n6. **Feindseliger Text.** Das Modell erwartet standardmässig keine Täuschungen im Zustand: Eine eingeschleuste Anweisung oder Text, der seine eigene Klassifizierung bestreitet, kann die Antwort verschieben. Formulieren Sie genaue Kriterien und prüfen Sie Grenzfälle vor dem Start.\n7. **Widersprüche.** Wenn `instructions` und `criteria` Unterschiedliches verlangen, etwa bei noul «Ja» als «Nein» beschreiben, sinkt die Genauigkeit. Kriterien setzen die Frage fort.\n8. **Optionsreihenfolge.** Manchmal bevorzugt das Modell die erste choice-Option. Ordnen Sie Optionen um und prüfen Sie, ob die Antwort gleich bleibt.\n9. **Generierung.** Jev wurde nicht zum Textschreiben trainiert. Für Datenextraktion finden Sie Kandidaten mit einem regulären Ausdruck oder einem generativen Modell; Jev wählt über choice den passenden.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "1219c37d308f95fd6a9c0abebb4a824c8fe09303481e18b1432d81ce5a1c6559",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "de-ch",
  "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=\"Schliessen\">×</button></div><div class=\"idline\"><span>TypeSafe /</span><code>jev-latest</code><button type=\"button\" id=\"copy-id\">ID kopieren</button></div><nav class=\"card-jump-nav\" aria-label=\"Bereiche der Modellkarte\"><button type=\"button\" data-card-jump=\"overview\">Einstieg</button><button type=\"button\" data-card-jump=\"methods\">Eingaben und Methoden</button><button type=\"button\" data-card-jump=\"pricing\">Tarife</button><button type=\"button\" data-card-jump=\"examples\">Beispiele</button><button type=\"button\" data-card-jump=\"results\">Ergebnisse</button><button type=\"button\" data-card-jump=\"aliases\">Aliasnamen</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API-Methoden\"><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\">Einstieg</h3><p class=\"mdesc-full\">Entscheidungsmodell von TypeSafe: Es schreibt keinen Text, sondern beantwortet typisierte Fragen zu Text oder JSON durch Optionswahl, Skalenbewertung oder «Ja/Nein» mit Wahrscheinlichkeiten. Es eignet sich für Routing, die Sortierung von Anfragen, Moderation und Scoring; alle Fragen einer Anfrage werden parallel bewertet.</p><dl class=\"card-io\" data-card-io><div><dt>Zulässige Eingaben</dt><dd>Text</dd></div><div><dt>Ergebnisse</dt><dd>structured</dd></div></dl><details class=\"card-about\"><summary>Über das Modell</summary><p class=\"note-s\" data-model-method-boundary>Diese Beschreibung erläutert die Fähigkeiten des Modells. Die über Ailoot verfügbaren Eingaben, Ausgaben und Optionen sind unten für die ausgewählte Methode aufgeführt.</p><div class=\"mabout\" id=\"m-about\"><p>Jev ist das Flaggschiffmodell von TypeSafe und das erste Modell der neuen Klasse <strong>System One</strong>. Es schreibt keinen Text, sondern trifft schnell Entscheidungen, die ein Programm direkt nutzen kann: Sie übermitteln einen <strong>Zustand</strong> (<code>state</code>) – Text oder JSON – und einen Satz von <strong>Fragen</strong> und erhalten typisierte Werte mit kalibrierten Wahrscheinlichkeiten.</p><p>Sprachmodelle schreiben Wörter für Menschen; Jev ist laut TypeSafe näher an Code: Die Antwort hat sofort die vom Code benötigte Form, kommt schnell und enthält keinen Wert ausserhalb der vorgegebenen Optionen. Das Modell soll bei wiederholten Anfragen stabile Antworten liefern.</p><h4>Wie sich System One von einem Sprachmodell unterscheidet</h4><ul><li><strong>Keine Generierung.</strong> Jev schreibt weder Nutzerantworten noch Code und erklärt keinen Denkverlauf. Sie geben die möglichen Antworten durch einen von drei Fragetypen vor.</li><li><strong>Auf kalibrierte Entscheidungen trainiert.</strong> TypeSafe trainiert das Modell mit RLCD (Reinforcement Learning for Calibrated Decisions): Wahrscheinlichkeiten werden an tatsächliche Ergebnisse angepasst und spiegeln Unsicherheit wider. Unter vielen Antworten mit einer Wahrscheinlichkeit von 0,8 sollten etwa 80% korrekt sein. Kalibrierung ist eine Eigenschaft einer grossen Stichprobe und garantiert nicht die Richtigkeit einer einzelnen Antwort.</li><li><strong>Ein anderes Trainingsziel.</strong> Chatmodelle werden darauf trainiert, Menschen zu gefallen (RLHF); laut TypeSafe fördert dies Gefälligkeit und selbstsicher klingende Fehler. Einer der Mitautoren von RLHF, Diogo Almeida, ist Mitgründer von TypeSafe.</li></ul><p>Der Name verweist auf «System 1» aus Daniel Kahnemans Buch «Schnelles Denken, langsames Denken»: schnelle intuitive Urteile gegenüber langsamem, überlegtem Denken von «System 2». Jev wurde für schnelle, eng begrenzte Urteile entwickelt.</p><h4>Drei Fragetypen</h4><p>Eine Frage ist ein einzelnes Urteil über den Zustand; die Antwort ein Wert, den Code mit einem Schwellenwert vergleicht, sortiert oder weitergibt.</p><ol><li><strong>Choice – Optionswahl.</strong> Zuständige Abteilung für eine Anfrage, Produktkategorie oder Sprache eines Codeabschnitts. Die Optionen sind ein Wörterbuch «Option → Beschreibung», mit bis zu 255 Einträgen. Die Antwort enthält den gewählten <code>choice</code>, <code>probabilities</code> für sämtliche Optionen mit einer Summe von 1 und <code>confidence</code>. Falls die Liste nicht alle Fälle abdeckt, ergänzen Sie «andere» oder «keine der genannten».</li><li><strong>Score – Skalenbewertung.</strong> Eine Position auf einer geordneten Skala, die Sie beschreiben: Fehlerschwere, Kundenverärgerung oder Fähigkeitsniveau. Die Skala hat 2 bis 10 Stufen, von niedrig bis hoch; das Modell bewertet jede Stufe separat, ohne ihre Nummer und Nachbarn zu sehen. Die Antwort enthält <code>score</code>, die Summe der mit ihren Wahrscheinlichkeiten multiplizierten Stufennummern, sodass der Wert zwischen Stufen liegen kann, <code>legend</code> mit Stufenbeschreibungen, <code>probabilities</code> und <code>confidence</code>.</li><li><strong>Noul – Ja oder Nein.</strong> Ob eine Aussage zutrifft. <code>noul</code> ist die «Ja»-Wahrscheinlichkeit von 0 bis 1: nahe 1 ein sicheres «Ja», nahe 0 ein sicheres «Nein», nahe 0,5 ist das Modell unentschieden. Es gibt kein separates <code>confidence</code>: Eine Zahl beschreibt die Antwort vollständig. Optionales <code>criteria</code> präzisiert, was als «Ja» und was als «Nein» gilt.</li></ol><p>So wählen Sie: Bekannte ungeordnete Optionen – choice; Stufen eines Spektrums – score; reines «Ja/Nein», bei dem die Wahrscheinlichkeit zählt – noul. Noul 0,5 bedeutet gleiche Chancen für «Ja» und «Nein», kein «mittleres Niveau»: Einen Grad misst score. Wenn zwei Typen passen, wählen Sie den, mit dem Code sofort handeln kann: choice für Verzweigungen, score für einen Schwellenwert, noul für <code>if</code>.</p><p>Typen lassen sich in einer Anfrage mischen. Die Antwort ist stets auf Ihre Optionen begrenzt und unabhängig von anderen Fragen: Fragen können hinzugefügt oder entfernt werden, ohne die übrigen Antworten zu ändern.</p><h4>Zustand</h4><p>Der Zustand ist das, was das Modell bewertet: eine Kundennachricht, ein Dokumentabschnitt, ein Datenbankeintrag oder Ihr Anwendungszustand.</p><ul><li><strong>Zeichenfolge</strong> – bei einem einzelnen Text: Nachricht, Artikel oder Auszug.</li><li><strong>Objekt</strong> – benannte Felder, zusammenhängende Datensätze oder Anwendungszustand. TypeSafe empfiehlt Objekte für die meisten Anfragen: Jeder Teil hat einen verständlichen Namen.</li><li><strong>Array</strong> – eine Folge von Nachrichten oder Datensätzen.</li></ul><p>Bereiten Sie ihn wie Materialien für Fachpersonen vor: Korrespondenz, Bestellung und Rückgaberegeln gehören zusammen, wenn die Entscheidung ihren Vergleich erfordert. Inhalte gehören in den Zustand, Urteile in die Fragen. Betrifft eine Frage nur einen Zustandsteil, nennen Sie den Pfad dazu in Backticks, etwa <code>ticket.messages[0].text</code>.</p><h4>Fragen formulieren</h4><ul><li><strong>Ein schnelles Urteil pro Frage.</strong> Eine gute Frage kann eine kundige Person mit dem nötigen Kontext in einer Sekunde beantworten: «Ist die Nachricht dringend?». «Analysiere die Nachricht und entscheide, was zu tun ist» benötigt bereits langsames Denken und muss in einfache Fragen zerlegt werden.</li><li><strong>Die ganze Frage gehört in <code>instructions</code>.</strong> Der Fragenschlüssel, etwa <code>refund_requested</code>, dient nur Ihrem Code und wird dem Modell nicht übermittelt.</li><li><strong>Alle Fragen zu einem Zustand in einer Anfrage.</strong> Das Modell bewertet sie parallel: Laut TypeSafe erhöhen zusätzliche Fragen die Antwortzeit kaum und kosten nur ihre eigenen Tokens. Eine Frage «für alle Fälle» ist fast kostenlos; der Code entscheidet selbst, welche Antworten er benötigt.</li><li><strong>Komplexe Urteile aufteilen.</strong> Statt «Bewerte eine Startup-Bewerbung» fragen Sie separat nach Marktgrösse, technischer Machbarkeit und Unterschieden zu Konkurrenten; das Endergebnis berechnet der Code mit Gewichtungen. Bei geänderten Prioritäten ändern Sie die Gewichte und schreiben nicht die Frage um.</li><li><strong>Abhängige Fragen in einer zweiten Anfrage.</strong> Antworten derselben Anfrage sind füreinander kein Kontext. Eine zweite Anfrage ist nur erforderlich, wenn sie ohne die erste Antwort nicht zusammengestellt werden kann: Daten müssen nachgeladen oder Optionen der nächsten Frage gewählt werden.</li><li><strong>Lange Fragen als Objekt.</strong> <code>instructions</code> und <code>criteria</code> sind gewöhnlich Zeichenfolgen, können aber Objekte oder Arrays sein: Die Frage steht in einem Feld, Daten in anderen. So lässt sich ein Lebenslauf mit einer Frage gegen Datenbankeinträge prüfen.</li></ul><h4>Sicherheit</h4><p>Bei choice und score zeigt <code>confidence</code> von 0 bis 1, wie stark sich die Wahrscheinlichkeit auf eine Antwort konzentriert: 1 vollständig auf eine Option, 0 gleichmässig auf alle. Bei score verringert eine benachbarte Stufe die Sicherheit weniger als eine weit entfernte. Bei noul ist die Sicherheit der Wert selbst: Je weiter von 0,5 entfernt, desto eindeutiger die Antwort.</p><p>TypeSafe empfiehlt drei Bereiche:</p><ol><li><strong>Hohe Sicherheit</strong> – automatisch handeln.</li><li><strong>Mittlere</strong> – vorsichtig handeln, beispielsweise den Nutzer um Bestätigung bitten.</li><li><strong>Niedrige</strong> – den Fall einem Menschen übergeben, die Anfrage präzisieren oder einen Ersatzweg nutzen, etwa ein leistungsfähigeres Modell mit Denkprozessen.</li></ol><p>Je teurer ein Fehler, desto strenger der Schwellenwert: Für irreversible Aktionen höher als für Lesevorgänge. Die Antwort zeigt die Auswahl; die Sicherheit zeigt, ob gehandelt werden sollte. Stimmen Sie Schwellenwerte auf eigene Daten ab, indem Sie Sicherheit und Genauigkeit vergleichen.</p><h4>Ein System um Jev herum aufbauen</h4><p>Jev ist nicht für Agenten gedacht, die ihren nächsten Schritt selbst wählen und in jeder Runde vom Weg abkommen können, sondern für Programme, deren Prozess vom Code gesteuert wird, während das Modell eng begrenzte Bedeutungsfragen beantwortet. Acht Entwurfsschritte nach TypeSafe:</p><ol><li>Was sich mit Code erledigen lässt, wird mit Code erledigt – zuverlässig und günstig.</li><li>In den Zustand gehört nur, was die aktuellen Fragen benötigen; aktuelle Fakten kommen aus der eigenen Wissensbasis und nicht aus dem Modellgedächtnis.</li><li>Struktur im Zustand: verschachteltes JSON; in der Frage der Pfad zum benötigten Feld in Backticks, wenn dies Mehrdeutigkeit verringert.</li><li>Möglichst eng begrenzte, konkrete Fragen – laut TypeSafe vielleicht die wichtigste Regel: Eine breite Frage verbirgt mehrere Urteile hinter einer Antwort.</li><li>Struktur in Fragen: Die Frage selbst bleibt kurz; Erklärungen, Beispiele und Werte aus Ihrer Datenbank stehen in benachbarten Feldern des Objekts <code>instructions</code> oder <code>criteria</code> statt in einer langen Zeichenfolge.</li><li>Viele unabhängige Fragen zum selben Zustand in einer Anfrage – mehr Nutzen pro Dollar.</li><li>Der Code verbindet Antworten: durch Regeln, eine gewichtete Summe oder als Merkmale für ein klassisches Modell des maschinellen Lernens.</li><li>Verzweigung nach Sicherheit: Unsichere Fälle gehen an einen Menschen oder ein Modell mit Denkprozessen.</li></ol><p>Jev ist weder Chat noch Codevervollständigungsmodell und kann bei einem Programmieragenten kein Sprachmodell ersetzen. Ein Agent kann jedoch für Sie Code schreiben, der Jev dort aufruft, wo eine schnelle, kalibrierte Antwort benötigt wird.</p><h4>Einsatzgebiete</h4><ul><li><strong>Hintergrundautomatisierung</strong> – Entscheidungen, die eine Million Mal ohne anwesenden Menschen ausgeführt werden.</li><li><strong>Echtzeit</strong> – laut TypeSafe werden die meisten Anfragen in etwa 100 ms ausgeführt: ausreichend für laufende Verarbeitung und Oberflächen.</li><li><strong>Grosse Datenmengen</strong> – Suche in riesigen Korpora, Kennzeichnung von Agentenprotokollen und Merkmale für Prognosen.</li><li><strong>Prüfung anderer Modelle</strong> – Anfragen, Extraktionen, Denkprozesse und Werkzeugaufrufe: Umgehung von Grenzen, Zitierfehler und erfundene Inhalte.</li><li><strong>Suche und Rangfolge</strong> – Relevanz eines Paars «Anfrage – Kandidat», erneutes Ranking und Kontextauswahl.</li><li><strong>Verzweigung nach Absicht</strong> – Was möchte der Nutzer und welcher Bearbeiter wird benötigt: einfache Logik, ein Fachmodell oder ein Mensch; Thema, Schwierigkeit und Risiko bestimmen, welches Sprachmodell die Anfrage erhält.</li><li><strong>Schutzprüfungen</strong> – Eingabe, Ausgabe und Werkzeugaufrufe eines Sprachmodells: eingeschleuste Anweisungen, Regelverstösse und Offenlegung persönlicher Daten.</li><li><strong>Support</strong> – Thema und Absicht der Anfrage, Dringlichkeit, Verärgerung, Abwanderungsrisiko, Rückgabewunsch und Warteschlange.</li><li><strong>Moderation</strong> – nach Plattformregeln: toxische Inhalte, Belästigung, Spam, Betrug, gefährliche Ratschläge und persönliche Daten; je nach Schwere und Sicherheit durchlassen, warnen, prüfen oder sperren.</li><li><strong>Branchen</strong> – Versicherungsfälle, Finanzermittlungen und KYC, Verträge und Werbung, Produktkarten, Personalauswahl, Leads, Spiele, Risiken, Nachfrageprognosen, Wissensgraphen, wissenschaftliche Übersichten und semantische Codeprüfungen in CI.</li></ul><h4>Eigenschaften</h4><ul><li><strong><code>jev-latest</code></strong> ist der Alias der neuesten stabilen Version, derzeit Jev 1.13; die antwortende Version steht im Feld <code>model</code>, etwa <code>jev-1.13.0</code>. Mit einer neuen Version wechselt der Alias dorthin; Antworten können sich ohne Ihre Änderungen verändern. Überwachen Sie dieses Feld, wenn Schwellenwerte auf eine Version abgestimmt sind.</li><li><strong>Kontext</strong> – 64K Tokens pro Anfrage: Zustand und alle Fragen zusammen; Zustand mit der längsten Frage bis zu 32K. Das Modell liest den Zustand einmal und prüft sämtliche Fragen parallel dagegen.</li><li><strong>Eingabe</strong> – nur Text: Zeichenfolge, JSON-Objekt oder Textarray. Bilder, Audio und Video werden noch nicht unterstützt; wandeln Sie sie vorab in Text um.</li><li><strong>Sprache</strong> – Die Haupttrainingssprache ist Englisch; dort ist die Genauigkeit derzeit am höchsten. Weitere Sprachen, darunter Chinesisch, Japanisch und Koreanisch, nimmt das Modell an, doch mit geringerer Genauigkeit. Prüfen Sie es mit eigenen Daten.</li><li><strong>Preise und Abrechnung in Ailoot API</strong> — die Konditionen hängen von der gewählten Methode ab und sind auf deren Karte angegeben.</li><li><strong>Anpassung</strong> – Jev wird nicht mit Kundendaten nachtrainiert: Eigene Materialien gehören in <code>state</code>, Fachregeln in <code>instructions</code> und <code>criteria</code>.</li><li><strong>Daten</strong> – Laut TypeSafe wird Jev nicht mit Kundenanfragen und -antworten trainiert.</li></ul><h4>Bekannte Schwächen von Jev 1.13</h4><p>TypeSafe nennt die Schwächen der aktuellen Version offen und verspricht, vieles in späteren Versionen zu beheben. Das Modell ist schnell, kalibriert und urteilt gut mit gesundem Menschenverstand, aber:</p><ol><li><strong>Wörtliches Lesen.</strong> Es beantwortet die geschriebene Frage, nicht die gemeinte: Einschränkungen, Verneinungen und implizite Bedingungen werden wörtlich verstanden. Schreiben Sie die genaue Bedingung und Grenzfälle in <code>criteria</code>; teilen Sie eine unvermeidbare Interpretation in zwei wörtliche Fragen auf.</li><li><strong>Kein Taschenrechner.</strong> Das Zählen von Zeichen, Wiederholungen und Listenelementen ist unzuverlässig; Fehler wachsen mit dem Umfang. Zählen Sie im Code und stellen Sie eine Frage pro Kandidat. Farben in hex oder RGB versteht das Modell schlechter als Farbnamen. <code>score</code> eignet sich für einen Schwellenwert, nicht für eine genaue Zahl zwischen Stufen.</li><li><strong>Daten und Zeit.</strong> Welches Datum früher liegt, wie viel Zeit dazwischen liegt oder ob ein Datum in einen Zeitraum fällt, ist unzuverlässig, besonders bei gemischten Formaten und relativen Daten. Extrahieren Sie Datumsteile über choice mit einer Option «nicht angegeben» und vergleichen Sie im Code.</li><li><strong>Indirektheit.</strong> Doppelte Verneinungen und Fragen zu Eigenschaften einer Eigenschaft verringern die Genauigkeit. Schreiben Sie direkt und nennen Sie Zustandsteile beim Namen.</li><li><strong>Überflüssiger Zustand.</strong> Fremder Text verringert die Genauigkeit. Filtern Sie im Code; wenn das nicht möglich ist, sortieren Sie Irrelevantes durch noul-Fragen aus.</li><li><strong>Feindseliger Text.</strong> Das Modell erwartet standardmässig keine Täuschungen im Zustand: Eine eingeschleuste Anweisung oder Text, der seine eigene Klassifizierung bestreitet, kann die Antwort verschieben. Formulieren Sie genaue Kriterien und prüfen Sie Grenzfälle vor dem Start.</li><li><strong>Widersprüche.</strong> Wenn <code>instructions</code> und <code>criteria</code> Unterschiedliches verlangen, etwa bei noul «Ja» als «Nein» beschreiben, sinkt die Genauigkeit. Kriterien setzen die Frage fort.</li><li><strong>Optionsreihenfolge.</strong> Manchmal bevorzugt das Modell die erste choice-Option. Ordnen Sie Optionen um und prüfen Sie, ob die Antwort gleich bleibt.</li><li><strong>Generierung.</strong> Jev wurde nicht zum Textschreiben trainiert. Für Datenextraktion finden Sie Kandidaten mit einem regulären Ausdruck oder einem generativen Modell; Jev wählt über choice den passenden.</li></ol></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">In Ailoot verfügbar · Eingaben und Methoden</h3><details class=\"card-method\" open><summary><b>Ailoot · System One</b> <code>POST /v1/systemone</code></summary><dl class=\"method-capabilities\"><div><dt>Eingabe</dt><dd><code>text</code></dd></div><div><dt>Ausgabe</dt><dd><code>structured</code></dd></div><div><dt>Kontext</dt><dd>64'000 tokens</dd></div><div><dt>Ausgabeformat</dt><dd>json</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Feld</th><th>Typ</th><th>Anforderung</th><th>Werte und Limits</th><th>Standard</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Erforderlich</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</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=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">state</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string|object|array</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Erforderlich</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</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=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">questions</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>object</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Erforderlich</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>Mindestanzahl Objektfelder: 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=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">questions.&lt;id&gt;.type</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Erforderlich</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</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=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">questions.&lt;id&gt;.instructions</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>string|object|array|null</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</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=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">questions.&lt;id&gt;.criteria</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>object|array|null</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>Bedingungen: noul: optionale, nullable Beschreibungen für true/false; choice: Kriterienobjekt; score: nicht leeres Kriterienarray</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=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>boolean|null</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</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>Kombinationen von Eingabematerialien</summary><p class=\"note-s\"><b>noul</b> · Erforderlich: state, questions.&lt;id&gt;.type=noul</p><p class=\"note-s\"><b>choice</b> · Erforderlich: state, questions.&lt;id&gt;.type=choice, criteria object</p><p class=\"note-s\"><b>score</b> · Erforderlich: state, questions.&lt;id&gt;.type=score, nonemptycriteriaarray</p></details><details class=\"note-s\" data-method-contract><summary>Methodenparameter und Lebenszyklus</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Vertrag</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=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</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=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</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=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</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=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>application/json</td></tr></tbody></table></div><p>Lebenszyklus: <code>exact retained published method</code></p><p class=\"note-s\">Methodenstrukturen und IDs sind exakt; die Fähigkeiten des Anbieters sind von der Zulassung einer Anfrage zu unterscheiden.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarife</h3><h4>Ailoot-Methodentarife</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>Eingabe</dt><dd>≈$ 0.000084 <em>/ 1K</em></dd></div><div><dt>Ausgabe</dt><dd>$ 0.00 <em>/ 1K</em></dd></div></dl></section><p class=\"note-s\">Ailoot reserviert vor einer Anfrage einen geschätzten Betrag. Nach dem Ergebnis rechnet Ailoot die endgültige Gebühr anhand des gemessenen Verbrauchs ab. Bei Streaming erfolgt die Abrechnung anhand des abschliessenden Verbrauchsdatensatzes. <a href=\"/docs/de-ch/billing/reserve/\">So funktionieren Reservierung und Abrechnung →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Beispielanfragen</h3><h4>Ailoot · System One</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Codevarianten\"><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\">Klassifikationsbeispiel</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Code kopieren\"><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\">Ergebnisse abrufen und speichern</h3><h4>Ailoot · System One</h4><p class=\"note-s\">json</p><div class=\"card-result-process\" data-all-results><h5>Alle fertiggestellten Ergebnisse aufbewahren</h5><p class=\"note-s\">Bewahren Sie jede vollständig zurückgegebene Antwort, Datei und jeden Inhaltsteil auf.</p><p class=\"note-s\">Bewahren Sie jede Antwort zusammen mit der übergebenen Frage-ID, Wahrscheinlichkeit und Legende auf; die Konfidenzformel mit n setzt n&gt;1 voraus, ohne daraus eine API-Regel zur Mindestanzahl von Auswahlmöglichkeiten abzuleiten.</p></div><details class=\"card-about\" data-output-fields><summary>Antwortfelder</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Feld</th><th>Typ</th></tr></thead><tbody><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">answers.&lt;id&gt;.type</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">answers.&lt;id&gt;.noul</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>number</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">answers.&lt;id&gt;.choice</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>string</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">answers.&lt;id&gt;.score</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>number</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">answers.&lt;id&gt;.confidence</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>number</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">answers.&lt;id&gt;.probabilities</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>object</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">answers.&lt;id&gt;.legend</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>object</td></tr><tr><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Fehler und nächste Schritte</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Antwort</th><th>Bedingung</th><th>Nächster Schritt</th></tr></thead><tbody><tr><th data-cell-label=\"Antwort\" scope=\"row\"><span class=\"card-cell-label\">Antwort</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Bedingung\"><span class=\"card-cell-label\">Bedingung</span>Pflichtfelder, Darstellung des Eingabematerials oder Parameterwert ungültig</td><td data-cell-label=\"Nächster Schritt\"><span class=\"card-cell-label\">Nächster Schritt</span>Die angegebenen Felder vor einer neuen Erstellungsanfrage korrigieren.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Aliasnamen</h3><h4>Modellaliasnamen</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>Aliasnamen für Methodenpfade</h4><p class=\"note-s\">Verwenden Sie die oben angezeigten Methodenpfade.</p><h4>Zugehörige Aufrufer-IDs</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": "Pflichtfelder, Darstellung des Eingabematerials oder Parameterwert ungültig",
                "http_status": 400,
                "recovery": "Die angegebenen Felder vor einer neuen Erstellungsanfrage korrigieren.",
                "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": "Bewahren Sie jede Antwort zusammen mit der übergebenen Frage-ID, Wahrscheinlichkeit und Legende auf; die Konfidenzformel mit n setzt n>1 voraus, ohne daraus eine API-Regel zur Mindestanzahl von Auswahlmöglichkeiten abzuleiten.",
              "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: optionale, nullable Beschreibungen für true/false; choice: Kriterienobjekt; score: nicht leeres Kriterienarray",
                "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": [
            "Methodenstrukturen und IDs sind exakt; die Fähigkeiten des Anbieters sind von der Zulassung einer Anfrage zu unterscheiden."
          ],
          "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": "29f952f17498681597904261ea5dc3121eb0c1a8f1b54cd0ecc0e10e19f4efc3",
    "input_html_sha256": "16ae92e8b6c567159851ac81827893be4eabb5966fbdb9851e754e6a1c55a5df",
    "private_audit_sha256": "eaad4065b78c6d913c2f8b457a97160b9f533d2f65f59c6cdad7fe090aa9d4c6",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/de-ch/jev-latest/",
    "description": "Entscheidungsmodell von TypeSafe: Es schreibt keinen Text, sondern beantwortet typisierte Fragen zu Text oder JSON durch Optionswahl, Skalenbewertung oder «Ja/Nein» mit Wahrscheinlichkeiten. Es eignet sich für Routing, die Sortierung von Anfragen, Moderation und Scoring; alle Fragen einer Anfrage werden parallel bewertet.",
    "locale": "de-ch",
    "md_url": "https://ailoot.ai/models/de-ch/jev-latest/index.md",
    "title": "jev-latest — Ailoot",
    "url": "https://ailoot.ai/models/de-ch/jev-latest/"
  },
  "rawModel": {
    "about": "Jev ist das Flaggschiffmodell von TypeSafe und das erste Modell der neuen Klasse **System One**. Es schreibt keinen Text, sondern trifft schnell Entscheidungen, die ein Programm direkt nutzen kann: Sie übermitteln einen **Zustand** (`state`) – Text oder JSON – und einen Satz von **Fragen** und erhalten typisierte Werte mit kalibrierten Wahrscheinlichkeiten.\n\nSprachmodelle schreiben Wörter für Menschen; Jev ist laut TypeSafe näher an Code: Die Antwort hat sofort die vom Code benötigte Form, kommt schnell und enthält keinen Wert ausserhalb der vorgegebenen Optionen. Das Modell soll bei wiederholten Anfragen stabile Antworten liefern.\n\n### Wie sich System One von einem Sprachmodell unterscheidet\n\n- **Keine Generierung.** Jev schreibt weder Nutzerantworten noch Code und erklärt keinen Denkverlauf. Sie geben die möglichen Antworten durch einen von drei Fragetypen vor.\n- **Auf kalibrierte Entscheidungen trainiert.** TypeSafe trainiert das Modell mit RLCD (Reinforcement Learning for Calibrated Decisions): Wahrscheinlichkeiten werden an tatsächliche Ergebnisse angepasst und spiegeln Unsicherheit wider. Unter vielen Antworten mit einer Wahrscheinlichkeit von 0,8 sollten etwa 80% korrekt sein. Kalibrierung ist eine Eigenschaft einer grossen Stichprobe und garantiert nicht die Richtigkeit einer einzelnen Antwort.\n- **Ein anderes Trainingsziel.** Chatmodelle werden darauf trainiert, Menschen zu gefallen (RLHF); laut TypeSafe fördert dies Gefälligkeit und selbstsicher klingende Fehler. Einer der Mitautoren von RLHF, Diogo Almeida, ist Mitgründer von TypeSafe.\n\nDer Name verweist auf «System 1» aus Daniel Kahnemans Buch «Schnelles Denken, langsames Denken»: schnelle intuitive Urteile gegenüber langsamem, überlegtem Denken von «System 2». Jev wurde für schnelle, eng begrenzte Urteile entwickelt.\n\n### Drei Fragetypen\n\nEine Frage ist ein einzelnes Urteil über den Zustand; die Antwort ein Wert, den Code mit einem Schwellenwert vergleicht, sortiert oder weitergibt.\n\n1. **Choice – Optionswahl.** Zuständige Abteilung für eine Anfrage, Produktkategorie oder Sprache eines Codeabschnitts. Die Optionen sind ein Wörterbuch «Option → Beschreibung», mit bis zu 255 Einträgen. Die Antwort enthält den gewählten `choice`, `probabilities` für sämtliche Optionen mit einer Summe von 1 und `confidence`. Falls die Liste nicht alle Fälle abdeckt, ergänzen Sie «andere» oder «keine der genannten».\n2. **Score – Skalenbewertung.** Eine Position auf einer geordneten Skala, die Sie beschreiben: Fehlerschwere, Kundenverärgerung oder Fähigkeitsniveau. Die Skala hat 2 bis 10 Stufen, von niedrig bis hoch; das Modell bewertet jede Stufe separat, ohne ihre Nummer und Nachbarn zu sehen. Die Antwort enthält `score`, die Summe der mit ihren Wahrscheinlichkeiten multiplizierten Stufennummern, sodass der Wert zwischen Stufen liegen kann, `legend` mit Stufenbeschreibungen, `probabilities` und `confidence`.\n3. **Noul – Ja oder Nein.** Ob eine Aussage zutrifft. `noul` ist die «Ja»-Wahrscheinlichkeit von 0 bis 1: nahe 1 ein sicheres «Ja», nahe 0 ein sicheres «Nein», nahe 0,5 ist das Modell unentschieden. Es gibt kein separates `confidence`: Eine Zahl beschreibt die Antwort vollständig. Optionales `criteria` präzisiert, was als «Ja» und was als «Nein» gilt.\n\nSo wählen Sie: Bekannte ungeordnete Optionen – choice; Stufen eines Spektrums – score; reines «Ja/Nein», bei dem die Wahrscheinlichkeit zählt – noul. Noul 0,5 bedeutet gleiche Chancen für «Ja» und «Nein», kein «mittleres Niveau»: Einen Grad misst score. Wenn zwei Typen passen, wählen Sie den, mit dem Code sofort handeln kann: choice für Verzweigungen, score für einen Schwellenwert, noul für `if`.\n\nTypen lassen sich in einer Anfrage mischen. Die Antwort ist stets auf Ihre Optionen begrenzt und unabhängig von anderen Fragen: Fragen können hinzugefügt oder entfernt werden, ohne die übrigen Antworten zu ändern.\n\n### Zustand\n\nDer Zustand ist das, was das Modell bewertet: eine Kundennachricht, ein Dokumentabschnitt, ein Datenbankeintrag oder Ihr Anwendungszustand.\n\n- **Zeichenfolge** – bei einem einzelnen Text: Nachricht, Artikel oder Auszug.\n- **Objekt** – benannte Felder, zusammenhängende Datensätze oder Anwendungszustand. TypeSafe empfiehlt Objekte für die meisten Anfragen: Jeder Teil hat einen verständlichen Namen.\n- **Array** – eine Folge von Nachrichten oder Datensätzen.\n\nBereiten Sie ihn wie Materialien für Fachpersonen vor: Korrespondenz, Bestellung und Rückgaberegeln gehören zusammen, wenn die Entscheidung ihren Vergleich erfordert. Inhalte gehören in den Zustand, Urteile in die Fragen. Betrifft eine Frage nur einen Zustandsteil, nennen Sie den Pfad dazu in Backticks, etwa `ticket.messages[0].text`.\n\n### Fragen formulieren\n\n- **Ein schnelles Urteil pro Frage.** Eine gute Frage kann eine kundige Person mit dem nötigen Kontext in einer Sekunde beantworten: «Ist die Nachricht dringend?». «Analysiere die Nachricht und entscheide, was zu tun ist» benötigt bereits langsames Denken und muss in einfache Fragen zerlegt werden.\n- **Die ganze Frage gehört in `instructions`.** Der Fragenschlüssel, etwa `refund_requested`, dient nur Ihrem Code und wird dem Modell nicht übermittelt.\n- **Alle Fragen zu einem Zustand in einer Anfrage.** Das Modell bewertet sie parallel: Laut TypeSafe erhöhen zusätzliche Fragen die Antwortzeit kaum und kosten nur ihre eigenen Tokens. Eine Frage «für alle Fälle» ist fast kostenlos; der Code entscheidet selbst, welche Antworten er benötigt.\n- **Komplexe Urteile aufteilen.** Statt «Bewerte eine Startup-Bewerbung» fragen Sie separat nach Marktgrösse, technischer Machbarkeit und Unterschieden zu Konkurrenten; das Endergebnis berechnet der Code mit Gewichtungen. Bei geänderten Prioritäten ändern Sie die Gewichte und schreiben nicht die Frage um.\n- **Abhängige Fragen in einer zweiten Anfrage.** Antworten derselben Anfrage sind füreinander kein Kontext. Eine zweite Anfrage ist nur erforderlich, wenn sie ohne die erste Antwort nicht zusammengestellt werden kann: Daten müssen nachgeladen oder Optionen der nächsten Frage gewählt werden.\n- **Lange Fragen als Objekt.** `instructions` und `criteria` sind gewöhnlich Zeichenfolgen, können aber Objekte oder Arrays sein: Die Frage steht in einem Feld, Daten in anderen. So lässt sich ein Lebenslauf mit einer Frage gegen Datenbankeinträge prüfen.\n\n### Sicherheit\n\nBei choice und score zeigt `confidence` von 0 bis 1, wie stark sich die Wahrscheinlichkeit auf eine Antwort konzentriert: 1 vollständig auf eine Option, 0 gleichmässig auf alle. Bei score verringert eine benachbarte Stufe die Sicherheit weniger als eine weit entfernte. Bei noul ist die Sicherheit der Wert selbst: Je weiter von 0,5 entfernt, desto eindeutiger die Antwort.\n\nTypeSafe empfiehlt drei Bereiche:\n\n1. **Hohe Sicherheit** – automatisch handeln.\n2. **Mittlere** – vorsichtig handeln, beispielsweise den Nutzer um Bestätigung bitten.\n3. **Niedrige** – den Fall einem Menschen übergeben, die Anfrage präzisieren oder einen Ersatzweg nutzen, etwa ein leistungsfähigeres Modell mit Denkprozessen.\n\nJe teurer ein Fehler, desto strenger der Schwellenwert: Für irreversible Aktionen höher als für Lesevorgänge. Die Antwort zeigt die Auswahl; die Sicherheit zeigt, ob gehandelt werden sollte. Stimmen Sie Schwellenwerte auf eigene Daten ab, indem Sie Sicherheit und Genauigkeit vergleichen.\n\n### Ein System um Jev herum aufbauen\n\nJev ist nicht für Agenten gedacht, die ihren nächsten Schritt selbst wählen und in jeder Runde vom Weg abkommen können, sondern für Programme, deren Prozess vom Code gesteuert wird, während das Modell eng begrenzte Bedeutungsfragen beantwortet. Acht Entwurfsschritte nach TypeSafe:\n\n1. Was sich mit Code erledigen lässt, wird mit Code erledigt – zuverlässig und günstig.\n2. In den Zustand gehört nur, was die aktuellen Fragen benötigen; aktuelle Fakten kommen aus der eigenen Wissensbasis und nicht aus dem Modellgedächtnis.\n3. Struktur im Zustand: verschachteltes JSON; in der Frage der Pfad zum benötigten Feld in Backticks, wenn dies Mehrdeutigkeit verringert.\n4. Möglichst eng begrenzte, konkrete Fragen – laut TypeSafe vielleicht die wichtigste Regel: Eine breite Frage verbirgt mehrere Urteile hinter einer Antwort.\n5. Struktur in Fragen: Die Frage selbst bleibt kurz; Erklärungen, Beispiele und Werte aus Ihrer Datenbank stehen in benachbarten Feldern des Objekts `instructions` oder `criteria` statt in einer langen Zeichenfolge.\n6. Viele unabhängige Fragen zum selben Zustand in einer Anfrage – mehr Nutzen pro Dollar.\n7. Der Code verbindet Antworten: durch Regeln, eine gewichtete Summe oder als Merkmale für ein klassisches Modell des maschinellen Lernens.\n8. Verzweigung nach Sicherheit: Unsichere Fälle gehen an einen Menschen oder ein Modell mit Denkprozessen.\n\nJev ist weder Chat noch Codevervollständigungsmodell und kann bei einem Programmieragenten kein Sprachmodell ersetzen. Ein Agent kann jedoch für Sie Code schreiben, der Jev dort aufruft, wo eine schnelle, kalibrierte Antwort benötigt wird.\n\n### Einsatzgebiete\n\n- **Hintergrundautomatisierung** – Entscheidungen, die eine Million Mal ohne anwesenden Menschen ausgeführt werden.\n- **Echtzeit** – laut TypeSafe werden die meisten Anfragen in etwa 100 ms ausgeführt: ausreichend für laufende Verarbeitung und Oberflächen.\n- **Grosse Datenmengen** – Suche in riesigen Korpora, Kennzeichnung von Agentenprotokollen und Merkmale für Prognosen.\n- **Prüfung anderer Modelle** – Anfragen, Extraktionen, Denkprozesse und Werkzeugaufrufe: Umgehung von Grenzen, Zitierfehler und erfundene Inhalte.\n- **Suche und Rangfolge** – Relevanz eines Paars «Anfrage – Kandidat», erneutes Ranking und Kontextauswahl.\n- **Verzweigung nach Absicht** – Was möchte der Nutzer und welcher Bearbeiter wird benötigt: einfache Logik, ein Fachmodell oder ein Mensch; Thema, Schwierigkeit und Risiko bestimmen, welches Sprachmodell die Anfrage erhält.\n- **Schutzprüfungen** – Eingabe, Ausgabe und Werkzeugaufrufe eines Sprachmodells: eingeschleuste Anweisungen, Regelverstösse und Offenlegung persönlicher Daten.\n- **Support** – Thema und Absicht der Anfrage, Dringlichkeit, Verärgerung, Abwanderungsrisiko, Rückgabewunsch und Warteschlange.\n- **Moderation** – nach Plattformregeln: toxische Inhalte, Belästigung, Spam, Betrug, gefährliche Ratschläge und persönliche Daten; je nach Schwere und Sicherheit durchlassen, warnen, prüfen oder sperren.\n- **Branchen** – Versicherungsfälle, Finanzermittlungen und KYC, Verträge und Werbung, Produktkarten, Personalauswahl, Leads, Spiele, Risiken, Nachfrageprognosen, Wissensgraphen, wissenschaftliche Übersichten und semantische Codeprüfungen in CI.\n\n### Eigenschaften\n\n- **`jev-latest`** ist der Alias der neuesten stabilen Version, derzeit Jev 1.13; die antwortende Version steht im Feld `model`, etwa `jev-1.13.0`. Mit einer neuen Version wechselt der Alias dorthin; Antworten können sich ohne Ihre Änderungen verändern. Überwachen Sie dieses Feld, wenn Schwellenwerte auf eine Version abgestimmt sind.\n- **Kontext** – 64K Tokens pro Anfrage: Zustand und alle Fragen zusammen; Zustand mit der längsten Frage bis zu 32K. Das Modell liest den Zustand einmal und prüft sämtliche Fragen parallel dagegen.\n- **Eingabe** – nur Text: Zeichenfolge, JSON-Objekt oder Textarray. Bilder, Audio und Video werden noch nicht unterstützt; wandeln Sie sie vorab in Text um.\n- **Sprache** – Die Haupttrainingssprache ist Englisch; dort ist die Genauigkeit derzeit am höchsten. Weitere Sprachen, darunter Chinesisch, Japanisch und Koreanisch, nimmt das Modell an, doch mit geringerer Genauigkeit. Prüfen Sie es mit eigenen Daten.\n- **Preise und Abrechnung in Ailoot API** — die Konditionen hängen von der gewählten Methode ab und sind auf deren Karte angegeben.\n- **Anpassung** – Jev wird nicht mit Kundendaten nachtrainiert: Eigene Materialien gehören in `state`, Fachregeln in `instructions` und `criteria`.\n- **Daten** – Laut TypeSafe wird Jev nicht mit Kundenanfragen und -antworten trainiert.\n\n### Bekannte Schwächen von Jev 1.13\n\nTypeSafe nennt die Schwächen der aktuellen Version offen und verspricht, vieles in späteren Versionen zu beheben. Das Modell ist schnell, kalibriert und urteilt gut mit gesundem Menschenverstand, aber:\n\n1. **Wörtliches Lesen.** Es beantwortet die geschriebene Frage, nicht die gemeinte: Einschränkungen, Verneinungen und implizite Bedingungen werden wörtlich verstanden. Schreiben Sie die genaue Bedingung und Grenzfälle in `criteria`; teilen Sie eine unvermeidbare Interpretation in zwei wörtliche Fragen auf.\n2. **Kein Taschenrechner.** Das Zählen von Zeichen, Wiederholungen und Listenelementen ist unzuverlässig; Fehler wachsen mit dem Umfang. Zählen Sie im Code und stellen Sie eine Frage pro Kandidat. Farben in hex oder RGB versteht das Modell schlechter als Farbnamen. `score` eignet sich für einen Schwellenwert, nicht für eine genaue Zahl zwischen Stufen.\n3. **Daten und Zeit.** Welches Datum früher liegt, wie viel Zeit dazwischen liegt oder ob ein Datum in einen Zeitraum fällt, ist unzuverlässig, besonders bei gemischten Formaten und relativen Daten. Extrahieren Sie Datumsteile über choice mit einer Option «nicht angegeben» und vergleichen Sie im Code.\n4. **Indirektheit.** Doppelte Verneinungen und Fragen zu Eigenschaften einer Eigenschaft verringern die Genauigkeit. Schreiben Sie direkt und nennen Sie Zustandsteile beim Namen.\n5. **Überflüssiger Zustand.** Fremder Text verringert die Genauigkeit. Filtern Sie im Code; wenn das nicht möglich ist, sortieren Sie Irrelevantes durch noul-Fragen aus.\n6. **Feindseliger Text.** Das Modell erwartet standardmässig keine Täuschungen im Zustand: Eine eingeschleuste Anweisung oder Text, der seine eigene Klassifizierung bestreitet, kann die Antwort verschieben. Formulieren Sie genaue Kriterien und prüfen Sie Grenzfälle vor dem Start.\n7. **Widersprüche.** Wenn `instructions` und `criteria` Unterschiedliches verlangen, etwa bei noul «Ja» als «Nein» beschreiben, sinkt die Genauigkeit. Kriterien setzen die Frage fort.\n8. **Optionsreihenfolge.** Manchmal bevorzugt das Modell die erste choice-Option. Ordnen Sie Optionen um und prüfen Sie, ob die Antwort gleich bleibt.\n9. **Generierung.** Jev wurde nicht zum Textschreiben trainiert. Für Datenextraktion finden Sie Kandidaten mit einem regulären Ausdruck oder einem generativen Modell; Jev wählt über choice den passenden.",
    "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": "Pflichtfelder, Darstellung des Eingabematerials oder Parameterwert ungültig",
                "http_status": 400,
                "recovery": "Die angegebenen Felder vor einer neuen Erstellungsanfrage korrigieren.",
                "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": "Bewahren Sie jede Antwort zusammen mit der übergebenen Frage-ID, Wahrscheinlichkeit und Legende auf; die Konfidenzformel mit n setzt n>1 voraus, ohne daraus eine API-Regel zur Mindestanzahl von Auswahlmöglichkeiten abzuleiten.",
              "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: optionale, nullable Beschreibungen für true/false; choice: Kriterienobjekt; score: nicht leeres Kriterienarray",
                "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": [
            "Methodenstrukturen und IDs sind exakt; die Fähigkeiten des Anbieters sind von der Zulassung einer Anfrage zu unterscheiden."
          ],
          "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": "Entscheidungsmodell von TypeSafe: Es schreibt keinen Text, sondern beantwortet typisierte Fragen zu Text oder JSON durch Optionswahl, Skalenbewertung oder «Ja/Nein» mit Wahrscheinlichkeiten. Es eignet sich für Routing, die Sortierung von Anfragen, Moderation und Scoring; alle Fragen einer Anfrage werden parallel bewertet."
  },
  "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": "Entscheidungsmodell von TypeSafe: Es schreibt keinen Text, sondern beantwortet typisierte Fragen zu Text oder JSON durch Optionswahl, Skalenbewertung oder «Ja/Nein» mit Wahrscheinlichkeiten. Es eignet sich für Routing, die Sortierung von Anfragen, Moderation und Scoring; alle Fragen einer Anfrage werden parallel bewertet.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "ecca76c7173a3177a7ffbc28d832ef99a27b06abd38f32583d3b9cd5c045f39d",
    "renderer_sha256": "76caa42c097db2ddc47d1e1e6fe7ca45c8363d7211296daf28e4352971e6c0c8"
  },
  "sourceRevision": "e71478bdf38fffb118cb1c6dff538bdba49be9eaa8e831a9f98c68951eae10d9"
}
