{
  "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 unmittelbar verwenden kann: Sie übermitteln einen <strong>Zustand</strong> (<code>state</code>) — Text oder JSON — und eine Reihe von <strong>Fragen</strong> und erhalten typisierte Werte mit kalibrierten Wahrscheinlichkeiten.</p><p>Sprachmodelle schreiben Wörter für Menschen. Jev ähnelt laut TypeSafe eher Code: Die Antwort hat sofort die vom Code benötigte Form, wird schnell geliefert und enthält keinen Wert außerhalb 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 Antworten für Nutzer noch Code und erklärt keine Gedankengänge. Die möglichen Antworten legen Sie über einen von drei Fragetypen fest.</li><li><strong>Auf kalibrierte Entscheidungen trainiert.</strong> TypeSafe trainiert das Modell mit RLCD (Reinforcement Learning for Calibrated Decisions): Die Wahrscheinlichkeiten werden an tatsächliche Ergebnisse angepasst und bilden Unsicherheit ab. Unter vielen Antworten mit einer Wahrscheinlichkeit von 0,8 sollten ungefähr 80% richtig sein. Kalibrierung ist eine Eigenschaft einer großen Stichprobe und keine Garantie für die Richtigkeit einer einzelnen Antwort.</li><li><strong>Anderes Trainingsziel.</strong> Chatmodelle werden darauf trainiert, Menschen zu gefallen (RLHF). Nach Beobachtung von TypeSafe begünstigt 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“: ein schnelles intuitives Urteil im Gegensatz zum langsamen überlegten 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 ist ein Wert, den der Code mit einem Schwellenwert vergleicht, sortiert oder weitergibt.</p><ol><li><strong>Choice — Auswahl einer Option.</strong> Zuständige Abteilung für eine Anfrage, Produktkategorie oder Sprache eines Codeausschnitts. Die Optionen sind ein Wörterbuch „Option → Beschreibung“, mit bis zu 255 Einträgen. Die Antwort enthält den gewählten <code>choice</code>, die <code>probabilities</code> für alle Optionen (in Summe 1) und die Sicherheit <code>confidence</code>. Wenn die Liste möglicherweise nicht alle Fälle abdeckt, ergänzen Sie „Sonstiges“ oder „Keine der genannten Optionen“.</li><li><strong>Score — Bewertung auf einer Skala.</strong> Eine Position auf einer geordneten Skala, die Sie beschreiben: Schwere eines Fehlers, Verärgerung eines Kunden oder Kompetenzniveau. Zwischen 2 und 10 Stufen, von der niedrigsten zur höchsten; das Modell bewertet jede Stufe einzeln, ohne ihre Nummer oder Nachbarstufen zu sehen. Die Antwort enthält <code>score</code> (die Summe der mit ihren Wahrscheinlichkeiten multiplizierten Stufennummern, weshalb der Wert zwischen Stufen liegen kann), eine <code>legend</code> mit den Stufenbeschreibungen sowie <code>probabilities</code> und <code>confidence</code>.</li><li><strong>Noul — Ja oder Nein.</strong> Ob eine Aussage zutrifft. Die Antwort <code>noul</code> ist die Wahrscheinlichkeit für „Ja“ zwischen 0 und 1: nahe 1 bedeutet ein sicheres „Ja“, nahe 0 ein sicheres „Nein“, nahe 0,5 ist das Modell unsicher. Ein separates <code>confidence</code> gibt es nicht: Eine Zahl beschreibt die Antwort vollständig. Das optionale <code>criteria</code> präzisiert, was als „Ja“ und was als „Nein“ gelten soll.</li></ol><p>So wählen Sie: bekannte ungeordnete Optionen — choice; Stufen eines Spektrums — score; ein reines „Ja/Nein“, bei dem die Wahrscheinlichkeit selbst wichtig ist — noul. Noul 0,5 bedeutet gleiche Chancen für „Ja“ und „Nein“, kein „mittleres Niveau“: Den Grad misst score. Sind zwei Typen geeignet, wählen Sie denjenigen, mit dem der Code unmittelbar handeln kann: choice für Verzweigungen, score für einen Schwellenwert, noul für <code>if</code>.</p><p>Die Typen können in einer Anfrage gemischt werden. Die Antwort bleibt immer auf Ihre Optionen beschränkt und ist unabhängig von anderen Fragen: Fragen können hinzugefügt oder entfernt werden, ohne die übrigen Antworten zu verändern.</p><h4>Zustand</h4><p>Der Zustand ist das Material, das das Modell bewertet: eine Kundennachricht, ein Dokumentausschnitt, ein Datenbankeintrag oder der Zustand Ihrer Anwendung.</p><ul><li><strong>Zeichenkette</strong> — wenn es einen einzelnen Text gibt: Nachricht, Artikel oder Ausschnitt.</li><li><strong>Objekt</strong> — benannte Felder, zusammengehörige Einträge oder Anwendungszustand. TypeSafe empfiehlt für die meisten Anfragen ein Objekt: Jeder Teil hat einen verständlichen Namen.</li><li><strong>Array</strong> — eine Folge von Nachrichten oder Einträgen.</li></ul><p>Bereiten Sie den Zustand wie Unterlagen für Fachleute vor: Legen Sie Korrespondenz, Bestellung und Rückgaberegeln zusammen, wenn die Entscheidung ihren Vergleich erfordert. Inhalte gehören in den Zustand, Urteile in die Fragen. Betrifft eine Frage nur einen Teil des Zustands, nennen Sie darin dessen Pfad in Backticks, beispielsweise <code>ticket.messages[0].text</code>.</p><h4>Fragen formulieren</h4><ul><li><strong>Ein schnelles Urteil pro Frage.</strong> Eine gute Frage kann ein sachkundiger Mensch mit dem nötigen Kontext in einer Sekunde beantworten: „Ist die Nachricht dringend?“. „Analysiere die Nachricht und entscheide, was zu tun ist“ verlangt bereits langsames Reasoning und muss in einfache Fragen zerlegt werden.</li><li><strong>Die gesamte Frage in <code>instructions</code>.</strong> Der Frageschlüssel, beispielsweise <code>refund_requested</code>, wird nur von Ihrem Code benötigt und nicht an das Modell übermittelt.</li><li><strong>Alle Fragen zum selben Zustand in einer Anfrage.</strong> Das Modell bewertet sie parallel: Laut TypeSafe verlängern zusätzliche Fragen die Antwortzeit kaum und kosten nur ihre eigenen Tokens. Eine Frage „für alle Fälle“ kostet fast nichts; der Code entscheidet selbst, welche Antworten gebraucht werden.</li><li><strong>Komplexe Urteile aufteilen.</strong> Statt „Bewerte die Bewerbung des Start-ups“ fragen Sie getrennt nach Marktgröße, technischer Machbarkeit und Unterschieden zu Mitbewerbern und berechnen das Ergebnis mit Gewichten im Code. Ändern sich die Prioritäten, ändern Sie die Gewichte, ohne die Frage neu zu formulieren.</li><li><strong>Abhängige Fragen in einer zweiten Anfrage.</strong> Die Antworten einer Anfrage dienen einander nicht als Kontext. Eine zweite Anfrage ist nur nötig, wenn sie ohne die erste Antwort nicht zusammengestellt werden kann: wenn Daten nachgeladen oder Optionen für die nächste Frage gewählt werden müssen.</li><li><strong>Lange Fragen als Objekt.</strong> <code>instructions</code> und <code>criteria</code> sind meist Zeichenketten, können aber auch Objekte oder Arrays sein: die Frage in einem Feld, Daten in anderen. So lässt sich beispielsweise ein Lebenslauf mit Datenbankeinträgen in einer einzigen Frage abgleichen.</li></ul><h4>Sicherheit</h4><p>Bei choice und score zeigt <code>confidence</code> zwischen 0 und 1, wie stark sich die Wahrscheinlichkeit auf eine Antwort konzentriert: 1 bedeutet vollständig auf einer Option, 0 gleichmäßig auf allen. Bei score senkt eine benachbarte Stufe die Sicherheit weniger als eine weit entfernte. Bei noul ist die Sicherheit der Wert selbst: Je weiter er von 0,5 entfernt ist, desto eindeutiger die Antwort.</p><p>TypeSafe empfiehlt drei Bereiche:</p><ol><li><strong>Hohe Sicherheit</strong> — automatisch handeln.</li><li><strong>Mittlere Sicherheit</strong> — vorsichtig handeln, beispielsweise eine Bestätigung vom Nutzer einholen.</li><li><strong>Geringe Sicherheit</strong> — den Fall einem Menschen übergeben, die Anfrage präzisieren oder einen Ersatzweg verwenden, beispielsweise ein leistungsfähigeres Modell mit Reasoning.</li></ol><p>Je teurer ein Fehler wäre, desto strenger der Schwellenwert: für irreversible Aktionen höher als für Lesevorgänge. Die Antwort sagt, was gewählt werden soll; die Sicherheit, ob gehandelt werden sollte. Stimmen Sie die Schwellenwerte anhand Ihrer eigenen Daten ab, indem Sie Sicherheit und Genauigkeit vergleichen.</p><h4>Eine Systemarchitektur rund um Jev aufbauen</h4><p>Jev ist nicht für Agenten ausgelegt, die selbst den nächsten Schritt wählen und in jeder Runde vom Weg abkommen können. Es ist für Programme gedacht, in denen der Code den Ablauf steuert und das Modell eng begrenzte Bedeutungsfragen beantwortet. Acht Entwurfsschritte nach TypeSafe:</p><ol><li>Alles, was mit Code erledigt werden kann, mit Code erledigen — zuverlässig und günstig.</li><li>In den Zustand nur das aufnehmen, was die aktuellen Fragen benötigen; aktuelle Fakten aus der eigenen Wissensbasis beziehen, nicht aus dem Modellgedächtnis.</li><li>Struktur im Zustand: verschachteltes JSON; in der Frage den Pfad zum benötigten Feld in Backticks angeben, wenn dies Mehrdeutigkeit verringert.</li><li>Möglichst eng begrenzte und konkrete Fragen — laut TypeSafe möglicherweise die wichtigste Regel: Eine breite Frage verbirgt mehrere Urteile hinter einer Antwort.</li><li>Struktur in den Fragen: die eigentliche Frage kurz halten; Erläuterungen, Beispiele und Werte aus Ihrer Datenbank in benachbarten Feldern des Objekts <code>instructions</code> oder <code>criteria</code> unterbringen, statt in einer langen Zeichenkette.</li><li>Viele unabhängige Fragen zum selben Zustand in einer Anfrage — mehr Nutzen pro Dollar.</li><li>Der Code kombiniert die Antworten: mit Regeln, einer gewichteten Summe oder als Merkmale für ein klassisches Machine-Learning-Modell.</li><li>Verzweigung nach Sicherheit: unsichere Fälle einem Menschen oder einem Modell mit Reasoning übergeben.</li></ol><p>Jev ist weder ein Chatmodell noch ein Modell zur Codevervollständigung und kann in einem Programmieragenten nicht anstelle eines Sprachmodells eingesetzt werden. Ein Agent kann jedoch Code für Sie schreiben, der Jev dort aufruft, wo eine schnelle kalibrierte Antwort benötigt wird.</p><h4>Einsatzbereiche</h4><ul><li><strong>Hintergrundautomatisierung</strong> — Entscheidungen, die millionenfach ohne einen Menschen daneben ausgeführt werden.</li><li><strong>Echtzeit</strong> — laut TypeSafe werden die meisten Anfragen in ungefähr 100 ms ausgeführt: ausreichend für Verarbeitung während des Ablaufs und für Benutzeroberflächen.</li><li><strong>Große Datenmengen</strong> — Suche in umfangreichen Korpora, Kennzeichnung von Agentenprotokollen und Merkmale für Prognosen.</li><li><strong>Prüfung anderer Modelle</strong> — Anfragen, Datenextraktionen, Reasoning und Werkzeugaufrufe: Umgehung von Einschränkungen, Zitierfehler und erfundene Inhalte.</li><li><strong>Suche und Ranking</strong> — Relevanz eines Paares „Anfrage — Kandidat“, erneutes Ranking und Kontextauswahl.</li><li><strong>Verzweigung nach Absicht</strong> — was der Nutzer möchte und welcher Bearbeiter benötigt wird: einfache Logik, ein spezialisiertes Modell oder ein Mensch; Thema, Komplexität und Risiko bestimmen, welchem Sprachmodell die Anfrage übergeben wird.</li><li><strong>Schutzprüfungen</strong> — Eingabe, Ausgabe und Werkzeugaufrufe eines Sprachmodells: eingeschleuste Anweisungen, Regelverstöße und Weitergabe personenbezogener Daten.</li><li><strong>Kundendienst</strong> — Thema und Absicht einer Anfrage, Dringlichkeit, Verärgerung, Abwanderungsrisiko, Rückerstattungswunsch und Warteschlange.</li><li><strong>Moderation</strong> — nach den Regeln Ihrer Plattform: Toxizität, Mobbing, Spam, Betrug, gefährliche Ratschläge und personenbezogene Daten; je nach Schwere und Sicherheit freigeben, warnen, prüfen oder blockieren.</li><li><strong>Branchen</strong> — Versicherungsfälle, Finanzermittlungen und KYC, Verträge und Werbung, Produktkarten, Personalauswahl, Leads, Spiele, Risiken, Nachfrageprognosen, Wissensgraphen, wissenschaftliche Übersichten und Bedeutungsprüfungen von Code in CI.</li></ul><h4>Eigenschaften</h4><ul><li><strong><code>jev-latest</code></strong> — Alias für die neueste stabile Version, derzeit Jev 1.13; die antwortende Version steht im Feld <code>model</code>, beispielsweise <code>jev-1.13.0</code>. Bei einer neuen Version wechselt der Alias zu dieser, und die Antworten können sich ohne Änderungen Ihrerseits verändern. Beobachten Sie dieses Feld, wenn Ihre Schwellenwerte auf eine Version abgestimmt sind.</li><li><strong>Kontext</strong> — 64K Tokens pro Anfrage: Zustand und alle Fragen zusammen; der Zustand mit der längsten Frage darf bis zu 32K umfassen. Das Modell liest den Zustand einmal und prüft alle Fragen parallel dagegen.</li><li><strong>Eingabe</strong> — ausschließlich Text: Zeichenkette, JSON-Objekt oder Array von Texten. Bilder, Audio und Video werden noch nicht unterstützt; wandeln Sie sie zuvor in Text um.</li><li><strong>Sprache</strong> — die wichtigste Trainingssprache ist Englisch, in der die Genauigkeit derzeit am höchsten ist. Das Modell nimmt auch andere Sprachen an, darunter Chinesisch, Japanisch und Koreanisch; die Genauigkeit ist aber niedriger. Prüfen Sie dies anhand Ihrer 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>, Regeln des Fachbereichs in <code>instructions</code> und <code>criteria</code>.</li><li><strong>Daten</strong> — TypeSafe gibt an, dass Jev nicht mit Kundenanfragen und -antworten trainiert wird.</li></ul><h4>Bekannte Schwachstellen von Jev 1.13</h4><p>TypeSafe nennt die Schwachstellen der aktuellen Version offen und verspricht, vieles in künftigen 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 formulierte und nicht die beabsichtigte Frage: Vorbehalte, Verneinungen und implizite Bedingungen werden wörtlich verstanden. Schreiben Sie die genaue Bedingung und Grenzfälle in <code>criteria</code>; zerlegen Sie eine unvermeidbare Interpretation in zwei wörtliche Fragen.</li><li><strong>Kein Taschenrechner.</strong> Das Zählen von Zeichen, Wiederholungen und Listenelementen ist unzuverlässig, und der Fehler wächst mit der Größe. Zählen Sie im Code und verwenden 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, aber nicht für eine exakte Zahl zwischen Stufen.</li><li><strong>Datum und Uhrzeit.</strong> Welches Datum früher liegt, wie viel Zeit dazwischenliegt oder ob ein Datum in einen Zeitraum fällt, wird unzuverlässig beantwortet, besonders bei gemischten Formaten und relativen Daten. Extrahieren Sie Datumsteile über choice (mit der Option „Nicht angegeben“) und vergleichen Sie sie im Code.</li><li><strong>Indirekte Formulierungen.</strong> Doppelte Verneinungen und Fragen über die Eigenschaft einer Eigenschaft verringern die Genauigkeit. Formulieren Sie direkt und benennen Sie die Teile des Zustands.</li><li><strong>Unnötiger Inhalt im Zustand.</strong> Sachfremder Text verringert die Genauigkeit. Filtern Sie im Code; falls dies nicht möglich ist, sortieren Sie Irrelevantes mit noul-Fragen aus.</li><li><strong>Feindseliger Text.</strong> Das Modell erwartet im Zustand standardmäßig keine Täuschungsversuche: Eine eingeschleuste Anweisung oder ein Text, der seine eigene Klassifikation infrage stellt, kann die Antwort verschieben. Formulieren Sie genaue Kriterien und prüfen Sie Grenzfälle vor dem Einsatz.</li><li><strong>Widersprüche.</strong> Wenn <code>instructions</code> und <code>criteria</code> Unterschiedliches verlangen — beispielsweise bei noul ein „Ja“ als „Nein“ beschrieben wird — sinkt die Genauigkeit. Die Kriterien sind eine Fortsetzung der Frage.</li><li><strong>Reihenfolge der Optionen.</strong> Manchmal neigt das Modell zur ersten choice-Option. Ändern Sie die Reihenfolge und prüfen Sie, ob die Antwort gleich bleibt.</li><li><strong>Generierung.</strong> Jev wurde nicht zum Schreiben von Text trainiert. Für die Datenextraktion finden Sie Kandidaten mit einem regulären Ausdruck oder einem generativen Modell; Jev wählt dann über choice den richtigen aus.</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 unmittelbar verwenden kann: Sie übermitteln einen **Zustand** (`state`) — Text oder JSON — und eine Reihe von **Fragen** und erhalten typisierte Werte mit kalibrierten Wahrscheinlichkeiten.\n\nSprachmodelle schreiben Wörter für Menschen. Jev ähnelt laut TypeSafe eher Code: Die Antwort hat sofort die vom Code benötigte Form, wird schnell geliefert und enthält keinen Wert außerhalb 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 Antworten für Nutzer noch Code und erklärt keine Gedankengänge. Die möglichen Antworten legen Sie über einen von drei Fragetypen fest.\n- **Auf kalibrierte Entscheidungen trainiert.** TypeSafe trainiert das Modell mit RLCD (Reinforcement Learning for Calibrated Decisions): Die Wahrscheinlichkeiten werden an tatsächliche Ergebnisse angepasst und bilden Unsicherheit ab. Unter vielen Antworten mit einer Wahrscheinlichkeit von 0,8 sollten ungefähr 80% richtig sein. Kalibrierung ist eine Eigenschaft einer großen Stichprobe und keine Garantie für die Richtigkeit einer einzelnen Antwort.\n- **Anderes Trainingsziel.** Chatmodelle werden darauf trainiert, Menschen zu gefallen (RLHF). Nach Beobachtung von TypeSafe begünstigt 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“: ein schnelles intuitives Urteil im Gegensatz zum langsamen überlegten 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 ist ein Wert, den der Code mit einem Schwellenwert vergleicht, sortiert oder weitergibt.\n\n1. **Choice — Auswahl einer Option.** Zuständige Abteilung für eine Anfrage, Produktkategorie oder Sprache eines Codeausschnitts. Die Optionen sind ein Wörterbuch „Option → Beschreibung“, mit bis zu 255 Einträgen. Die Antwort enthält den gewählten `choice`, die `probabilities` für alle Optionen (in Summe 1) und die Sicherheit `confidence`. Wenn die Liste möglicherweise nicht alle Fälle abdeckt, ergänzen Sie „Sonstiges“ oder „Keine der genannten Optionen“.\n2. **Score — Bewertung auf einer Skala.** Eine Position auf einer geordneten Skala, die Sie beschreiben: Schwere eines Fehlers, Verärgerung eines Kunden oder Kompetenzniveau. Zwischen 2 und 10 Stufen, von der niedrigsten zur höchsten; das Modell bewertet jede Stufe einzeln, ohne ihre Nummer oder Nachbarstufen zu sehen. Die Antwort enthält `score` (die Summe der mit ihren Wahrscheinlichkeiten multiplizierten Stufennummern, weshalb der Wert zwischen Stufen liegen kann), eine `legend` mit den Stufenbeschreibungen sowie `probabilities` und `confidence`.\n3. **Noul — Ja oder Nein.** Ob eine Aussage zutrifft. Die Antwort `noul` ist die Wahrscheinlichkeit für „Ja“ zwischen 0 und 1: nahe 1 bedeutet ein sicheres „Ja“, nahe 0 ein sicheres „Nein“, nahe 0,5 ist das Modell unsicher. Ein separates `confidence` gibt es nicht: Eine Zahl beschreibt die Antwort vollständig. Das optionale `criteria` präzisiert, was als „Ja“ und was als „Nein“ gelten soll.\n\nSo wählen Sie: bekannte ungeordnete Optionen — choice; Stufen eines Spektrums — score; ein reines „Ja/Nein“, bei dem die Wahrscheinlichkeit selbst wichtig ist — noul. Noul 0,5 bedeutet gleiche Chancen für „Ja“ und „Nein“, kein „mittleres Niveau“: Den Grad misst score. Sind zwei Typen geeignet, wählen Sie denjenigen, mit dem der Code unmittelbar handeln kann: choice für Verzweigungen, score für einen Schwellenwert, noul für `if`.\n\nDie Typen können in einer Anfrage gemischt werden. Die Antwort bleibt immer auf Ihre Optionen beschränkt und ist unabhängig von anderen Fragen: Fragen können hinzugefügt oder entfernt werden, ohne die übrigen Antworten zu verändern.\n\n### Zustand\n\nDer Zustand ist das Material, das das Modell bewertet: eine Kundennachricht, ein Dokumentausschnitt, ein Datenbankeintrag oder der Zustand Ihrer Anwendung.\n\n- **Zeichenkette** — wenn es einen einzelnen Text gibt: Nachricht, Artikel oder Ausschnitt.\n- **Objekt** — benannte Felder, zusammengehörige Einträge oder Anwendungszustand. TypeSafe empfiehlt für die meisten Anfragen ein Objekt: Jeder Teil hat einen verständlichen Namen.\n- **Array** — eine Folge von Nachrichten oder Einträgen.\n\nBereiten Sie den Zustand wie Unterlagen für Fachleute vor: Legen Sie Korrespondenz, Bestellung und Rückgaberegeln zusammen, wenn die Entscheidung ihren Vergleich erfordert. Inhalte gehören in den Zustand, Urteile in die Fragen. Betrifft eine Frage nur einen Teil des Zustands, nennen Sie darin dessen Pfad in Backticks, beispielsweise `ticket.messages[0].text`.\n\n### Fragen formulieren\n\n- **Ein schnelles Urteil pro Frage.** Eine gute Frage kann ein sachkundiger Mensch mit dem nötigen Kontext in einer Sekunde beantworten: „Ist die Nachricht dringend?“. „Analysiere die Nachricht und entscheide, was zu tun ist“ verlangt bereits langsames Reasoning und muss in einfache Fragen zerlegt werden.\n- **Die gesamte Frage in `instructions`.** Der Frageschlüssel, beispielsweise `refund_requested`, wird nur von Ihrem Code benötigt und nicht an das Modell übermittelt.\n- **Alle Fragen zum selben Zustand in einer Anfrage.** Das Modell bewertet sie parallel: Laut TypeSafe verlängern zusätzliche Fragen die Antwortzeit kaum und kosten nur ihre eigenen Tokens. Eine Frage „für alle Fälle“ kostet fast nichts; der Code entscheidet selbst, welche Antworten gebraucht werden.\n- **Komplexe Urteile aufteilen.** Statt „Bewerte die Bewerbung des Start-ups“ fragen Sie getrennt nach Marktgröße, technischer Machbarkeit und Unterschieden zu Mitbewerbern und berechnen das Ergebnis mit Gewichten im Code. Ändern sich die Prioritäten, ändern Sie die Gewichte, ohne die Frage neu zu formulieren.\n- **Abhängige Fragen in einer zweiten Anfrage.** Die Antworten einer Anfrage dienen einander nicht als Kontext. Eine zweite Anfrage ist nur nötig, wenn sie ohne die erste Antwort nicht zusammengestellt werden kann: wenn Daten nachgeladen oder Optionen für die nächste Frage gewählt werden müssen.\n- **Lange Fragen als Objekt.** `instructions` und `criteria` sind meist Zeichenketten, können aber auch Objekte oder Arrays sein: die Frage in einem Feld, Daten in anderen. So lässt sich beispielsweise ein Lebenslauf mit Datenbankeinträgen in einer einzigen Frage abgleichen.\n\n### Sicherheit\n\nBei choice und score zeigt `confidence` zwischen 0 und 1, wie stark sich die Wahrscheinlichkeit auf eine Antwort konzentriert: 1 bedeutet vollständig auf einer Option, 0 gleichmäßig auf allen. Bei score senkt eine benachbarte Stufe die Sicherheit weniger als eine weit entfernte. Bei noul ist die Sicherheit der Wert selbst: Je weiter er von 0,5 entfernt ist, desto eindeutiger die Antwort.\n\nTypeSafe empfiehlt drei Bereiche:\n\n1. **Hohe Sicherheit** — automatisch handeln.\n2. **Mittlere Sicherheit** — vorsichtig handeln, beispielsweise eine Bestätigung vom Nutzer einholen.\n3. **Geringe Sicherheit** — den Fall einem Menschen übergeben, die Anfrage präzisieren oder einen Ersatzweg verwenden, beispielsweise ein leistungsfähigeres Modell mit Reasoning.\n\nJe teurer ein Fehler wäre, desto strenger der Schwellenwert: für irreversible Aktionen höher als für Lesevorgänge. Die Antwort sagt, was gewählt werden soll; die Sicherheit, ob gehandelt werden sollte. Stimmen Sie die Schwellenwerte anhand Ihrer eigenen Daten ab, indem Sie Sicherheit und Genauigkeit vergleichen.\n\n### Eine Systemarchitektur rund um Jev aufbauen\n\nJev ist nicht für Agenten ausgelegt, die selbst den nächsten Schritt wählen und in jeder Runde vom Weg abkommen können. Es ist für Programme gedacht, in denen der Code den Ablauf steuert und das Modell eng begrenzte Bedeutungsfragen beantwortet. Acht Entwurfsschritte nach TypeSafe:\n\n1. Alles, was mit Code erledigt werden kann, mit Code erledigen — zuverlässig und günstig.\n2. In den Zustand nur das aufnehmen, was die aktuellen Fragen benötigen; aktuelle Fakten aus der eigenen Wissensbasis beziehen, nicht aus dem Modellgedächtnis.\n3. Struktur im Zustand: verschachteltes JSON; in der Frage den Pfad zum benötigten Feld in Backticks angeben, wenn dies Mehrdeutigkeit verringert.\n4. Möglichst eng begrenzte und konkrete Fragen — laut TypeSafe möglicherweise die wichtigste Regel: Eine breite Frage verbirgt mehrere Urteile hinter einer Antwort.\n5. Struktur in den Fragen: die eigentliche Frage kurz halten; Erläuterungen, Beispiele und Werte aus Ihrer Datenbank in benachbarten Feldern des Objekts `instructions` oder `criteria` unterbringen, statt in einer langen Zeichenkette.\n6. Viele unabhängige Fragen zum selben Zustand in einer Anfrage — mehr Nutzen pro Dollar.\n7. Der Code kombiniert die Antworten: mit Regeln, einer gewichteten Summe oder als Merkmale für ein klassisches Machine-Learning-Modell.\n8. Verzweigung nach Sicherheit: unsichere Fälle einem Menschen oder einem Modell mit Reasoning übergeben.\n\nJev ist weder ein Chatmodell noch ein Modell zur Codevervollständigung und kann in einem Programmieragenten nicht anstelle eines Sprachmodells eingesetzt werden. Ein Agent kann jedoch Code für Sie schreiben, der Jev dort aufruft, wo eine schnelle kalibrierte Antwort benötigt wird.\n\n### Einsatzbereiche\n\n- **Hintergrundautomatisierung** — Entscheidungen, die millionenfach ohne einen Menschen daneben ausgeführt werden.\n- **Echtzeit** — laut TypeSafe werden die meisten Anfragen in ungefähr 100 ms ausgeführt: ausreichend für Verarbeitung während des Ablaufs und für Benutzeroberflächen.\n- **Große Datenmengen** — Suche in umfangreichen Korpora, Kennzeichnung von Agentenprotokollen und Merkmale für Prognosen.\n- **Prüfung anderer Modelle** — Anfragen, Datenextraktionen, Reasoning und Werkzeugaufrufe: Umgehung von Einschränkungen, Zitierfehler und erfundene Inhalte.\n- **Suche und Ranking** — Relevanz eines Paares „Anfrage — Kandidat“, erneutes Ranking und Kontextauswahl.\n- **Verzweigung nach Absicht** — was der Nutzer möchte und welcher Bearbeiter benötigt wird: einfache Logik, ein spezialisiertes Modell oder ein Mensch; Thema, Komplexität und Risiko bestimmen, welchem Sprachmodell die Anfrage übergeben wird.\n- **Schutzprüfungen** — Eingabe, Ausgabe und Werkzeugaufrufe eines Sprachmodells: eingeschleuste Anweisungen, Regelverstöße und Weitergabe personenbezogener Daten.\n- **Kundendienst** — Thema und Absicht einer Anfrage, Dringlichkeit, Verärgerung, Abwanderungsrisiko, Rückerstattungswunsch und Warteschlange.\n- **Moderation** — nach den Regeln Ihrer Plattform: Toxizität, Mobbing, Spam, Betrug, gefährliche Ratschläge und personenbezogene Daten; je nach Schwere und Sicherheit freigeben, warnen, prüfen oder blockieren.\n- **Branchen** — Versicherungsfälle, Finanzermittlungen und KYC, Verträge und Werbung, Produktkarten, Personalauswahl, Leads, Spiele, Risiken, Nachfrageprognosen, Wissensgraphen, wissenschaftliche Übersichten und Bedeutungsprüfungen von Code in CI.\n\n### Eigenschaften\n\n- **`jev-latest`** — Alias für die neueste stabile Version, derzeit Jev 1.13; die antwortende Version steht im Feld `model`, beispielsweise `jev-1.13.0`. Bei einer neuen Version wechselt der Alias zu dieser, und die Antworten können sich ohne Änderungen Ihrerseits verändern. Beobachten Sie dieses Feld, wenn Ihre Schwellenwerte auf eine Version abgestimmt sind.\n- **Kontext** — 64K Tokens pro Anfrage: Zustand und alle Fragen zusammen; der Zustand mit der längsten Frage darf bis zu 32K umfassen. Das Modell liest den Zustand einmal und prüft alle Fragen parallel dagegen.\n- **Eingabe** — ausschließlich Text: Zeichenkette, JSON-Objekt oder Array von Texten. Bilder, Audio und Video werden noch nicht unterstützt; wandeln Sie sie zuvor in Text um.\n- **Sprache** — die wichtigste Trainingssprache ist Englisch, in der die Genauigkeit derzeit am höchsten ist. Das Modell nimmt auch andere Sprachen an, darunter Chinesisch, Japanisch und Koreanisch; die Genauigkeit ist aber niedriger. Prüfen Sie dies anhand Ihrer 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`, Regeln des Fachbereichs in `instructions` und `criteria`.\n- **Daten** — TypeSafe gibt an, dass Jev nicht mit Kundenanfragen und -antworten trainiert wird.\n\n### Bekannte Schwachstellen von Jev 1.13\n\nTypeSafe nennt die Schwachstellen der aktuellen Version offen und verspricht, vieles in künftigen Versionen zu beheben. Das Modell ist schnell, kalibriert und urteilt gut mit gesundem Menschenverstand, aber:\n\n1. **Wörtliches Lesen.** Es beantwortet die formulierte und nicht die beabsichtigte Frage: Vorbehalte, Verneinungen und implizite Bedingungen werden wörtlich verstanden. Schreiben Sie die genaue Bedingung und Grenzfälle in `criteria`; zerlegen Sie eine unvermeidbare Interpretation in zwei wörtliche Fragen.\n2. **Kein Taschenrechner.** Das Zählen von Zeichen, Wiederholungen und Listenelementen ist unzuverlässig, und der Fehler wächst mit der Größe. Zählen Sie im Code und verwenden Sie eine Frage pro Kandidat. Farben in hex oder RGB versteht das Modell schlechter als Farbnamen. `score` eignet sich für einen Schwellenwert, aber nicht für eine exakte Zahl zwischen Stufen.\n3. **Datum und Uhrzeit.** Welches Datum früher liegt, wie viel Zeit dazwischenliegt oder ob ein Datum in einen Zeitraum fällt, wird unzuverlässig beantwortet, besonders bei gemischten Formaten und relativen Daten. Extrahieren Sie Datumsteile über choice (mit der Option „Nicht angegeben“) und vergleichen Sie sie im Code.\n4. **Indirekte Formulierungen.** Doppelte Verneinungen und Fragen über die Eigenschaft einer Eigenschaft verringern die Genauigkeit. Formulieren Sie direkt und benennen Sie die Teile des Zustands.\n5. **Unnötiger Inhalt im Zustand.** Sachfremder Text verringert die Genauigkeit. Filtern Sie im Code; falls dies nicht möglich ist, sortieren Sie Irrelevantes mit noul-Fragen aus.\n6. **Feindseliger Text.** Das Modell erwartet im Zustand standardmäßig keine Täuschungsversuche: Eine eingeschleuste Anweisung oder ein Text, der seine eigene Klassifikation infrage stellt, kann die Antwort verschieben. Formulieren Sie genaue Kriterien und prüfen Sie Grenzfälle vor dem Einsatz.\n7. **Widersprüche.** Wenn `instructions` und `criteria` Unterschiedliches verlangen — beispielsweise bei noul ein „Ja“ als „Nein“ beschrieben wird — sinkt die Genauigkeit. Die Kriterien sind eine Fortsetzung der Frage.\n8. **Reihenfolge der Optionen.** Manchmal neigt das Modell zur ersten choice-Option. Ändern Sie die Reihenfolge und prüfen Sie, ob die Antwort gleich bleibt.\n9. **Generierung.** Jev wurde nicht zum Schreiben von Text trainiert. Für die Datenextraktion finden Sie Kandidaten mit einem regulären Ausdruck oder einem generativen Modell; Jev wählt dann über choice den richtigen aus.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "f1ab2ede417ecb8f00a0b2e9a12d4885d1a338e46071136aa1d212d7c60c181f",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "de-at",
  "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=\"Schließen\">×</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: Schreibt keinen Text, sondern beantwortet typisierte Fragen zu Text oder JSON — Auswahl einer Option, Bewertung auf einer Skala oder „Ja/Nein“ mit Wahrscheinlichkeiten. Geeignet für Routing, 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 unmittelbar verwenden kann: Sie übermitteln einen <strong>Zustand</strong> (<code>state</code>) — Text oder JSON — und eine Reihe von <strong>Fragen</strong> und erhalten typisierte Werte mit kalibrierten Wahrscheinlichkeiten.</p><p>Sprachmodelle schreiben Wörter für Menschen. Jev ähnelt laut TypeSafe eher Code: Die Antwort hat sofort die vom Code benötigte Form, wird schnell geliefert und enthält keinen Wert außerhalb 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 Antworten für Nutzer noch Code und erklärt keine Gedankengänge. Die möglichen Antworten legen Sie über einen von drei Fragetypen fest.</li><li><strong>Auf kalibrierte Entscheidungen trainiert.</strong> TypeSafe trainiert das Modell mit RLCD (Reinforcement Learning for Calibrated Decisions): Die Wahrscheinlichkeiten werden an tatsächliche Ergebnisse angepasst und bilden Unsicherheit ab. Unter vielen Antworten mit einer Wahrscheinlichkeit von 0,8 sollten ungefähr 80% richtig sein. Kalibrierung ist eine Eigenschaft einer großen Stichprobe und keine Garantie für die Richtigkeit einer einzelnen Antwort.</li><li><strong>Anderes Trainingsziel.</strong> Chatmodelle werden darauf trainiert, Menschen zu gefallen (RLHF). Nach Beobachtung von TypeSafe begünstigt 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“: ein schnelles intuitives Urteil im Gegensatz zum langsamen überlegten 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 ist ein Wert, den der Code mit einem Schwellenwert vergleicht, sortiert oder weitergibt.</p><ol><li><strong>Choice — Auswahl einer Option.</strong> Zuständige Abteilung für eine Anfrage, Produktkategorie oder Sprache eines Codeausschnitts. Die Optionen sind ein Wörterbuch „Option → Beschreibung“, mit bis zu 255 Einträgen. Die Antwort enthält den gewählten <code>choice</code>, die <code>probabilities</code> für alle Optionen (in Summe 1) und die Sicherheit <code>confidence</code>. Wenn die Liste möglicherweise nicht alle Fälle abdeckt, ergänzen Sie „Sonstiges“ oder „Keine der genannten Optionen“.</li><li><strong>Score — Bewertung auf einer Skala.</strong> Eine Position auf einer geordneten Skala, die Sie beschreiben: Schwere eines Fehlers, Verärgerung eines Kunden oder Kompetenzniveau. Zwischen 2 und 10 Stufen, von der niedrigsten zur höchsten; das Modell bewertet jede Stufe einzeln, ohne ihre Nummer oder Nachbarstufen zu sehen. Die Antwort enthält <code>score</code> (die Summe der mit ihren Wahrscheinlichkeiten multiplizierten Stufennummern, weshalb der Wert zwischen Stufen liegen kann), eine <code>legend</code> mit den Stufenbeschreibungen sowie <code>probabilities</code> und <code>confidence</code>.</li><li><strong>Noul — Ja oder Nein.</strong> Ob eine Aussage zutrifft. Die Antwort <code>noul</code> ist die Wahrscheinlichkeit für „Ja“ zwischen 0 und 1: nahe 1 bedeutet ein sicheres „Ja“, nahe 0 ein sicheres „Nein“, nahe 0,5 ist das Modell unsicher. Ein separates <code>confidence</code> gibt es nicht: Eine Zahl beschreibt die Antwort vollständig. Das optionale <code>criteria</code> präzisiert, was als „Ja“ und was als „Nein“ gelten soll.</li></ol><p>So wählen Sie: bekannte ungeordnete Optionen — choice; Stufen eines Spektrums — score; ein reines „Ja/Nein“, bei dem die Wahrscheinlichkeit selbst wichtig ist — noul. Noul 0,5 bedeutet gleiche Chancen für „Ja“ und „Nein“, kein „mittleres Niveau“: Den Grad misst score. Sind zwei Typen geeignet, wählen Sie denjenigen, mit dem der Code unmittelbar handeln kann: choice für Verzweigungen, score für einen Schwellenwert, noul für <code>if</code>.</p><p>Die Typen können in einer Anfrage gemischt werden. Die Antwort bleibt immer auf Ihre Optionen beschränkt und ist unabhängig von anderen Fragen: Fragen können hinzugefügt oder entfernt werden, ohne die übrigen Antworten zu verändern.</p><h4>Zustand</h4><p>Der Zustand ist das Material, das das Modell bewertet: eine Kundennachricht, ein Dokumentausschnitt, ein Datenbankeintrag oder der Zustand Ihrer Anwendung.</p><ul><li><strong>Zeichenkette</strong> — wenn es einen einzelnen Text gibt: Nachricht, Artikel oder Ausschnitt.</li><li><strong>Objekt</strong> — benannte Felder, zusammengehörige Einträge oder Anwendungszustand. TypeSafe empfiehlt für die meisten Anfragen ein Objekt: Jeder Teil hat einen verständlichen Namen.</li><li><strong>Array</strong> — eine Folge von Nachrichten oder Einträgen.</li></ul><p>Bereiten Sie den Zustand wie Unterlagen für Fachleute vor: Legen Sie Korrespondenz, Bestellung und Rückgaberegeln zusammen, wenn die Entscheidung ihren Vergleich erfordert. Inhalte gehören in den Zustand, Urteile in die Fragen. Betrifft eine Frage nur einen Teil des Zustands, nennen Sie darin dessen Pfad in Backticks, beispielsweise <code>ticket.messages[0].text</code>.</p><h4>Fragen formulieren</h4><ul><li><strong>Ein schnelles Urteil pro Frage.</strong> Eine gute Frage kann ein sachkundiger Mensch mit dem nötigen Kontext in einer Sekunde beantworten: „Ist die Nachricht dringend?“. „Analysiere die Nachricht und entscheide, was zu tun ist“ verlangt bereits langsames Reasoning und muss in einfache Fragen zerlegt werden.</li><li><strong>Die gesamte Frage in <code>instructions</code>.</strong> Der Frageschlüssel, beispielsweise <code>refund_requested</code>, wird nur von Ihrem Code benötigt und nicht an das Modell übermittelt.</li><li><strong>Alle Fragen zum selben Zustand in einer Anfrage.</strong> Das Modell bewertet sie parallel: Laut TypeSafe verlängern zusätzliche Fragen die Antwortzeit kaum und kosten nur ihre eigenen Tokens. Eine Frage „für alle Fälle“ kostet fast nichts; der Code entscheidet selbst, welche Antworten gebraucht werden.</li><li><strong>Komplexe Urteile aufteilen.</strong> Statt „Bewerte die Bewerbung des Start-ups“ fragen Sie getrennt nach Marktgröße, technischer Machbarkeit und Unterschieden zu Mitbewerbern und berechnen das Ergebnis mit Gewichten im Code. Ändern sich die Prioritäten, ändern Sie die Gewichte, ohne die Frage neu zu formulieren.</li><li><strong>Abhängige Fragen in einer zweiten Anfrage.</strong> Die Antworten einer Anfrage dienen einander nicht als Kontext. Eine zweite Anfrage ist nur nötig, wenn sie ohne die erste Antwort nicht zusammengestellt werden kann: wenn Daten nachgeladen oder Optionen für die nächste Frage gewählt werden müssen.</li><li><strong>Lange Fragen als Objekt.</strong> <code>instructions</code> und <code>criteria</code> sind meist Zeichenketten, können aber auch Objekte oder Arrays sein: die Frage in einem Feld, Daten in anderen. So lässt sich beispielsweise ein Lebenslauf mit Datenbankeinträgen in einer einzigen Frage abgleichen.</li></ul><h4>Sicherheit</h4><p>Bei choice und score zeigt <code>confidence</code> zwischen 0 und 1, wie stark sich die Wahrscheinlichkeit auf eine Antwort konzentriert: 1 bedeutet vollständig auf einer Option, 0 gleichmäßig auf allen. Bei score senkt eine benachbarte Stufe die Sicherheit weniger als eine weit entfernte. Bei noul ist die Sicherheit der Wert selbst: Je weiter er von 0,5 entfernt ist, desto eindeutiger die Antwort.</p><p>TypeSafe empfiehlt drei Bereiche:</p><ol><li><strong>Hohe Sicherheit</strong> — automatisch handeln.</li><li><strong>Mittlere Sicherheit</strong> — vorsichtig handeln, beispielsweise eine Bestätigung vom Nutzer einholen.</li><li><strong>Geringe Sicherheit</strong> — den Fall einem Menschen übergeben, die Anfrage präzisieren oder einen Ersatzweg verwenden, beispielsweise ein leistungsfähigeres Modell mit Reasoning.</li></ol><p>Je teurer ein Fehler wäre, desto strenger der Schwellenwert: für irreversible Aktionen höher als für Lesevorgänge. Die Antwort sagt, was gewählt werden soll; die Sicherheit, ob gehandelt werden sollte. Stimmen Sie die Schwellenwerte anhand Ihrer eigenen Daten ab, indem Sie Sicherheit und Genauigkeit vergleichen.</p><h4>Eine Systemarchitektur rund um Jev aufbauen</h4><p>Jev ist nicht für Agenten ausgelegt, die selbst den nächsten Schritt wählen und in jeder Runde vom Weg abkommen können. Es ist für Programme gedacht, in denen der Code den Ablauf steuert und das Modell eng begrenzte Bedeutungsfragen beantwortet. Acht Entwurfsschritte nach TypeSafe:</p><ol><li>Alles, was mit Code erledigt werden kann, mit Code erledigen — zuverlässig und günstig.</li><li>In den Zustand nur das aufnehmen, was die aktuellen Fragen benötigen; aktuelle Fakten aus der eigenen Wissensbasis beziehen, nicht aus dem Modellgedächtnis.</li><li>Struktur im Zustand: verschachteltes JSON; in der Frage den Pfad zum benötigten Feld in Backticks angeben, wenn dies Mehrdeutigkeit verringert.</li><li>Möglichst eng begrenzte und konkrete Fragen — laut TypeSafe möglicherweise die wichtigste Regel: Eine breite Frage verbirgt mehrere Urteile hinter einer Antwort.</li><li>Struktur in den Fragen: die eigentliche Frage kurz halten; Erläuterungen, Beispiele und Werte aus Ihrer Datenbank in benachbarten Feldern des Objekts <code>instructions</code> oder <code>criteria</code> unterbringen, statt in einer langen Zeichenkette.</li><li>Viele unabhängige Fragen zum selben Zustand in einer Anfrage — mehr Nutzen pro Dollar.</li><li>Der Code kombiniert die Antworten: mit Regeln, einer gewichteten Summe oder als Merkmale für ein klassisches Machine-Learning-Modell.</li><li>Verzweigung nach Sicherheit: unsichere Fälle einem Menschen oder einem Modell mit Reasoning übergeben.</li></ol><p>Jev ist weder ein Chatmodell noch ein Modell zur Codevervollständigung und kann in einem Programmieragenten nicht anstelle eines Sprachmodells eingesetzt werden. Ein Agent kann jedoch Code für Sie schreiben, der Jev dort aufruft, wo eine schnelle kalibrierte Antwort benötigt wird.</p><h4>Einsatzbereiche</h4><ul><li><strong>Hintergrundautomatisierung</strong> — Entscheidungen, die millionenfach ohne einen Menschen daneben ausgeführt werden.</li><li><strong>Echtzeit</strong> — laut TypeSafe werden die meisten Anfragen in ungefähr 100 ms ausgeführt: ausreichend für Verarbeitung während des Ablaufs und für Benutzeroberflächen.</li><li><strong>Große Datenmengen</strong> — Suche in umfangreichen Korpora, Kennzeichnung von Agentenprotokollen und Merkmale für Prognosen.</li><li><strong>Prüfung anderer Modelle</strong> — Anfragen, Datenextraktionen, Reasoning und Werkzeugaufrufe: Umgehung von Einschränkungen, Zitierfehler und erfundene Inhalte.</li><li><strong>Suche und Ranking</strong> — Relevanz eines Paares „Anfrage — Kandidat“, erneutes Ranking und Kontextauswahl.</li><li><strong>Verzweigung nach Absicht</strong> — was der Nutzer möchte und welcher Bearbeiter benötigt wird: einfache Logik, ein spezialisiertes Modell oder ein Mensch; Thema, Komplexität und Risiko bestimmen, welchem Sprachmodell die Anfrage übergeben wird.</li><li><strong>Schutzprüfungen</strong> — Eingabe, Ausgabe und Werkzeugaufrufe eines Sprachmodells: eingeschleuste Anweisungen, Regelverstöße und Weitergabe personenbezogener Daten.</li><li><strong>Kundendienst</strong> — Thema und Absicht einer Anfrage, Dringlichkeit, Verärgerung, Abwanderungsrisiko, Rückerstattungswunsch und Warteschlange.</li><li><strong>Moderation</strong> — nach den Regeln Ihrer Plattform: Toxizität, Mobbing, Spam, Betrug, gefährliche Ratschläge und personenbezogene Daten; je nach Schwere und Sicherheit freigeben, warnen, prüfen oder blockieren.</li><li><strong>Branchen</strong> — Versicherungsfälle, Finanzermittlungen und KYC, Verträge und Werbung, Produktkarten, Personalauswahl, Leads, Spiele, Risiken, Nachfrageprognosen, Wissensgraphen, wissenschaftliche Übersichten und Bedeutungsprüfungen von Code in CI.</li></ul><h4>Eigenschaften</h4><ul><li><strong><code>jev-latest</code></strong> — Alias für die neueste stabile Version, derzeit Jev 1.13; die antwortende Version steht im Feld <code>model</code>, beispielsweise <code>jev-1.13.0</code>. Bei einer neuen Version wechselt der Alias zu dieser, und die Antworten können sich ohne Änderungen Ihrerseits verändern. Beobachten Sie dieses Feld, wenn Ihre Schwellenwerte auf eine Version abgestimmt sind.</li><li><strong>Kontext</strong> — 64K Tokens pro Anfrage: Zustand und alle Fragen zusammen; der Zustand mit der längsten Frage darf bis zu 32K umfassen. Das Modell liest den Zustand einmal und prüft alle Fragen parallel dagegen.</li><li><strong>Eingabe</strong> — ausschließlich Text: Zeichenkette, JSON-Objekt oder Array von Texten. Bilder, Audio und Video werden noch nicht unterstützt; wandeln Sie sie zuvor in Text um.</li><li><strong>Sprache</strong> — die wichtigste Trainingssprache ist Englisch, in der die Genauigkeit derzeit am höchsten ist. Das Modell nimmt auch andere Sprachen an, darunter Chinesisch, Japanisch und Koreanisch; die Genauigkeit ist aber niedriger. Prüfen Sie dies anhand Ihrer 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>, Regeln des Fachbereichs in <code>instructions</code> und <code>criteria</code>.</li><li><strong>Daten</strong> — TypeSafe gibt an, dass Jev nicht mit Kundenanfragen und -antworten trainiert wird.</li></ul><h4>Bekannte Schwachstellen von Jev 1.13</h4><p>TypeSafe nennt die Schwachstellen der aktuellen Version offen und verspricht, vieles in künftigen 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 formulierte und nicht die beabsichtigte Frage: Vorbehalte, Verneinungen und implizite Bedingungen werden wörtlich verstanden. Schreiben Sie die genaue Bedingung und Grenzfälle in <code>criteria</code>; zerlegen Sie eine unvermeidbare Interpretation in zwei wörtliche Fragen.</li><li><strong>Kein Taschenrechner.</strong> Das Zählen von Zeichen, Wiederholungen und Listenelementen ist unzuverlässig, und der Fehler wächst mit der Größe. Zählen Sie im Code und verwenden 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, aber nicht für eine exakte Zahl zwischen Stufen.</li><li><strong>Datum und Uhrzeit.</strong> Welches Datum früher liegt, wie viel Zeit dazwischenliegt oder ob ein Datum in einen Zeitraum fällt, wird unzuverlässig beantwortet, besonders bei gemischten Formaten und relativen Daten. Extrahieren Sie Datumsteile über choice (mit der Option „Nicht angegeben“) und vergleichen Sie sie im Code.</li><li><strong>Indirekte Formulierungen.</strong> Doppelte Verneinungen und Fragen über die Eigenschaft einer Eigenschaft verringern die Genauigkeit. Formulieren Sie direkt und benennen Sie die Teile des Zustands.</li><li><strong>Unnötiger Inhalt im Zustand.</strong> Sachfremder Text verringert die Genauigkeit. Filtern Sie im Code; falls dies nicht möglich ist, sortieren Sie Irrelevantes mit noul-Fragen aus.</li><li><strong>Feindseliger Text.</strong> Das Modell erwartet im Zustand standardmäßig keine Täuschungsversuche: Eine eingeschleuste Anweisung oder ein Text, der seine eigene Klassifikation infrage stellt, kann die Antwort verschieben. Formulieren Sie genaue Kriterien und prüfen Sie Grenzfälle vor dem Einsatz.</li><li><strong>Widersprüche.</strong> Wenn <code>instructions</code> und <code>criteria</code> Unterschiedliches verlangen — beispielsweise bei noul ein „Ja“ als „Nein“ beschrieben wird — sinkt die Genauigkeit. Die Kriterien sind eine Fortsetzung der Frage.</li><li><strong>Reihenfolge der Optionen.</strong> Manchmal neigt das Modell zur ersten choice-Option. Ändern Sie die Reihenfolge und prüfen Sie, ob die Antwort gleich bleibt.</li><li><strong>Generierung.</strong> Jev wurde nicht zum Schreiben von Text trainiert. Für die Datenextraktion finden Sie Kandidaten mit einem regulären Ausdruck oder einem generativen Modell; Jev wählt dann über choice den richtigen aus.</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 Beschreibungen für true/false, die auch null sein dürfen; choice: criteria-Objekt; score: nicht leeres criteria-Array</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 abschließenden Verbrauchsdatensatzes. <a href=\"/docs/de-at/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 mit der gelieferten Frage-ID, Wahrscheinlichkeit und Legende auf; die Konfidenzformel mit n erfordert n&gt;1, ohne damit eine minchoices-Regel der API zu behaupten.</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 mit der gelieferten Frage-ID, Wahrscheinlichkeit und Legende auf; die Konfidenzformel mit n erfordert n>1, ohne damit eine minchoices-Regel der API zu behaupten.",
              "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 Beschreibungen für true/false, die auch null sein dürfen; choice: criteria-Objekt; score: nicht leeres criteria-Array",
                "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": "98e01289c57b4ad0b571cea26c3225ddfd6ced73cbb42f24fd906a4eec98ec81",
    "input_html_sha256": "d45a55d17d5482f6620dc06b0b36591bd2de3235444061750bd2ac9139fd6890",
    "private_audit_sha256": "498421b01145d2e400c43081cff73880999a11dc537def78f83d7f1c41233439",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/de-at/jev-latest/",
    "description": "Entscheidungsmodell von TypeSafe: Schreibt keinen Text, sondern beantwortet typisierte Fragen zu Text oder JSON — Auswahl einer Option, Bewertung auf einer Skala oder „Ja/Nein“ mit Wahrscheinlichkeiten. Geeignet für Routing, Sortierung von Anfragen, Moderation und Scoring; alle Fragen einer Anfrage werden parallel bewertet.",
    "locale": "de-at",
    "md_url": "https://ailoot.ai/models/de-at/jev-latest/index.md",
    "title": "jev-latest — Ailoot",
    "url": "https://ailoot.ai/models/de-at/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 unmittelbar verwenden kann: Sie übermitteln einen **Zustand** (`state`) — Text oder JSON — und eine Reihe von **Fragen** und erhalten typisierte Werte mit kalibrierten Wahrscheinlichkeiten.\n\nSprachmodelle schreiben Wörter für Menschen. Jev ähnelt laut TypeSafe eher Code: Die Antwort hat sofort die vom Code benötigte Form, wird schnell geliefert und enthält keinen Wert außerhalb 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 Antworten für Nutzer noch Code und erklärt keine Gedankengänge. Die möglichen Antworten legen Sie über einen von drei Fragetypen fest.\n- **Auf kalibrierte Entscheidungen trainiert.** TypeSafe trainiert das Modell mit RLCD (Reinforcement Learning for Calibrated Decisions): Die Wahrscheinlichkeiten werden an tatsächliche Ergebnisse angepasst und bilden Unsicherheit ab. Unter vielen Antworten mit einer Wahrscheinlichkeit von 0,8 sollten ungefähr 80% richtig sein. Kalibrierung ist eine Eigenschaft einer großen Stichprobe und keine Garantie für die Richtigkeit einer einzelnen Antwort.\n- **Anderes Trainingsziel.** Chatmodelle werden darauf trainiert, Menschen zu gefallen (RLHF). Nach Beobachtung von TypeSafe begünstigt 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“: ein schnelles intuitives Urteil im Gegensatz zum langsamen überlegten 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 ist ein Wert, den der Code mit einem Schwellenwert vergleicht, sortiert oder weitergibt.\n\n1. **Choice — Auswahl einer Option.** Zuständige Abteilung für eine Anfrage, Produktkategorie oder Sprache eines Codeausschnitts. Die Optionen sind ein Wörterbuch „Option → Beschreibung“, mit bis zu 255 Einträgen. Die Antwort enthält den gewählten `choice`, die `probabilities` für alle Optionen (in Summe 1) und die Sicherheit `confidence`. Wenn die Liste möglicherweise nicht alle Fälle abdeckt, ergänzen Sie „Sonstiges“ oder „Keine der genannten Optionen“.\n2. **Score — Bewertung auf einer Skala.** Eine Position auf einer geordneten Skala, die Sie beschreiben: Schwere eines Fehlers, Verärgerung eines Kunden oder Kompetenzniveau. Zwischen 2 und 10 Stufen, von der niedrigsten zur höchsten; das Modell bewertet jede Stufe einzeln, ohne ihre Nummer oder Nachbarstufen zu sehen. Die Antwort enthält `score` (die Summe der mit ihren Wahrscheinlichkeiten multiplizierten Stufennummern, weshalb der Wert zwischen Stufen liegen kann), eine `legend` mit den Stufenbeschreibungen sowie `probabilities` und `confidence`.\n3. **Noul — Ja oder Nein.** Ob eine Aussage zutrifft. Die Antwort `noul` ist die Wahrscheinlichkeit für „Ja“ zwischen 0 und 1: nahe 1 bedeutet ein sicheres „Ja“, nahe 0 ein sicheres „Nein“, nahe 0,5 ist das Modell unsicher. Ein separates `confidence` gibt es nicht: Eine Zahl beschreibt die Antwort vollständig. Das optionale `criteria` präzisiert, was als „Ja“ und was als „Nein“ gelten soll.\n\nSo wählen Sie: bekannte ungeordnete Optionen — choice; Stufen eines Spektrums — score; ein reines „Ja/Nein“, bei dem die Wahrscheinlichkeit selbst wichtig ist — noul. Noul 0,5 bedeutet gleiche Chancen für „Ja“ und „Nein“, kein „mittleres Niveau“: Den Grad misst score. Sind zwei Typen geeignet, wählen Sie denjenigen, mit dem der Code unmittelbar handeln kann: choice für Verzweigungen, score für einen Schwellenwert, noul für `if`.\n\nDie Typen können in einer Anfrage gemischt werden. Die Antwort bleibt immer auf Ihre Optionen beschränkt und ist unabhängig von anderen Fragen: Fragen können hinzugefügt oder entfernt werden, ohne die übrigen Antworten zu verändern.\n\n### Zustand\n\nDer Zustand ist das Material, das das Modell bewertet: eine Kundennachricht, ein Dokumentausschnitt, ein Datenbankeintrag oder der Zustand Ihrer Anwendung.\n\n- **Zeichenkette** — wenn es einen einzelnen Text gibt: Nachricht, Artikel oder Ausschnitt.\n- **Objekt** — benannte Felder, zusammengehörige Einträge oder Anwendungszustand. TypeSafe empfiehlt für die meisten Anfragen ein Objekt: Jeder Teil hat einen verständlichen Namen.\n- **Array** — eine Folge von Nachrichten oder Einträgen.\n\nBereiten Sie den Zustand wie Unterlagen für Fachleute vor: Legen Sie Korrespondenz, Bestellung und Rückgaberegeln zusammen, wenn die Entscheidung ihren Vergleich erfordert. Inhalte gehören in den Zustand, Urteile in die Fragen. Betrifft eine Frage nur einen Teil des Zustands, nennen Sie darin dessen Pfad in Backticks, beispielsweise `ticket.messages[0].text`.\n\n### Fragen formulieren\n\n- **Ein schnelles Urteil pro Frage.** Eine gute Frage kann ein sachkundiger Mensch mit dem nötigen Kontext in einer Sekunde beantworten: „Ist die Nachricht dringend?“. „Analysiere die Nachricht und entscheide, was zu tun ist“ verlangt bereits langsames Reasoning und muss in einfache Fragen zerlegt werden.\n- **Die gesamte Frage in `instructions`.** Der Frageschlüssel, beispielsweise `refund_requested`, wird nur von Ihrem Code benötigt und nicht an das Modell übermittelt.\n- **Alle Fragen zum selben Zustand in einer Anfrage.** Das Modell bewertet sie parallel: Laut TypeSafe verlängern zusätzliche Fragen die Antwortzeit kaum und kosten nur ihre eigenen Tokens. Eine Frage „für alle Fälle“ kostet fast nichts; der Code entscheidet selbst, welche Antworten gebraucht werden.\n- **Komplexe Urteile aufteilen.** Statt „Bewerte die Bewerbung des Start-ups“ fragen Sie getrennt nach Marktgröße, technischer Machbarkeit und Unterschieden zu Mitbewerbern und berechnen das Ergebnis mit Gewichten im Code. Ändern sich die Prioritäten, ändern Sie die Gewichte, ohne die Frage neu zu formulieren.\n- **Abhängige Fragen in einer zweiten Anfrage.** Die Antworten einer Anfrage dienen einander nicht als Kontext. Eine zweite Anfrage ist nur nötig, wenn sie ohne die erste Antwort nicht zusammengestellt werden kann: wenn Daten nachgeladen oder Optionen für die nächste Frage gewählt werden müssen.\n- **Lange Fragen als Objekt.** `instructions` und `criteria` sind meist Zeichenketten, können aber auch Objekte oder Arrays sein: die Frage in einem Feld, Daten in anderen. So lässt sich beispielsweise ein Lebenslauf mit Datenbankeinträgen in einer einzigen Frage abgleichen.\n\n### Sicherheit\n\nBei choice und score zeigt `confidence` zwischen 0 und 1, wie stark sich die Wahrscheinlichkeit auf eine Antwort konzentriert: 1 bedeutet vollständig auf einer Option, 0 gleichmäßig auf allen. Bei score senkt eine benachbarte Stufe die Sicherheit weniger als eine weit entfernte. Bei noul ist die Sicherheit der Wert selbst: Je weiter er von 0,5 entfernt ist, desto eindeutiger die Antwort.\n\nTypeSafe empfiehlt drei Bereiche:\n\n1. **Hohe Sicherheit** — automatisch handeln.\n2. **Mittlere Sicherheit** — vorsichtig handeln, beispielsweise eine Bestätigung vom Nutzer einholen.\n3. **Geringe Sicherheit** — den Fall einem Menschen übergeben, die Anfrage präzisieren oder einen Ersatzweg verwenden, beispielsweise ein leistungsfähigeres Modell mit Reasoning.\n\nJe teurer ein Fehler wäre, desto strenger der Schwellenwert: für irreversible Aktionen höher als für Lesevorgänge. Die Antwort sagt, was gewählt werden soll; die Sicherheit, ob gehandelt werden sollte. Stimmen Sie die Schwellenwerte anhand Ihrer eigenen Daten ab, indem Sie Sicherheit und Genauigkeit vergleichen.\n\n### Eine Systemarchitektur rund um Jev aufbauen\n\nJev ist nicht für Agenten ausgelegt, die selbst den nächsten Schritt wählen und in jeder Runde vom Weg abkommen können. Es ist für Programme gedacht, in denen der Code den Ablauf steuert und das Modell eng begrenzte Bedeutungsfragen beantwortet. Acht Entwurfsschritte nach TypeSafe:\n\n1. Alles, was mit Code erledigt werden kann, mit Code erledigen — zuverlässig und günstig.\n2. In den Zustand nur das aufnehmen, was die aktuellen Fragen benötigen; aktuelle Fakten aus der eigenen Wissensbasis beziehen, nicht aus dem Modellgedächtnis.\n3. Struktur im Zustand: verschachteltes JSON; in der Frage den Pfad zum benötigten Feld in Backticks angeben, wenn dies Mehrdeutigkeit verringert.\n4. Möglichst eng begrenzte und konkrete Fragen — laut TypeSafe möglicherweise die wichtigste Regel: Eine breite Frage verbirgt mehrere Urteile hinter einer Antwort.\n5. Struktur in den Fragen: die eigentliche Frage kurz halten; Erläuterungen, Beispiele und Werte aus Ihrer Datenbank in benachbarten Feldern des Objekts `instructions` oder `criteria` unterbringen, statt in einer langen Zeichenkette.\n6. Viele unabhängige Fragen zum selben Zustand in einer Anfrage — mehr Nutzen pro Dollar.\n7. Der Code kombiniert die Antworten: mit Regeln, einer gewichteten Summe oder als Merkmale für ein klassisches Machine-Learning-Modell.\n8. Verzweigung nach Sicherheit: unsichere Fälle einem Menschen oder einem Modell mit Reasoning übergeben.\n\nJev ist weder ein Chatmodell noch ein Modell zur Codevervollständigung und kann in einem Programmieragenten nicht anstelle eines Sprachmodells eingesetzt werden. Ein Agent kann jedoch Code für Sie schreiben, der Jev dort aufruft, wo eine schnelle kalibrierte Antwort benötigt wird.\n\n### Einsatzbereiche\n\n- **Hintergrundautomatisierung** — Entscheidungen, die millionenfach ohne einen Menschen daneben ausgeführt werden.\n- **Echtzeit** — laut TypeSafe werden die meisten Anfragen in ungefähr 100 ms ausgeführt: ausreichend für Verarbeitung während des Ablaufs und für Benutzeroberflächen.\n- **Große Datenmengen** — Suche in umfangreichen Korpora, Kennzeichnung von Agentenprotokollen und Merkmale für Prognosen.\n- **Prüfung anderer Modelle** — Anfragen, Datenextraktionen, Reasoning und Werkzeugaufrufe: Umgehung von Einschränkungen, Zitierfehler und erfundene Inhalte.\n- **Suche und Ranking** — Relevanz eines Paares „Anfrage — Kandidat“, erneutes Ranking und Kontextauswahl.\n- **Verzweigung nach Absicht** — was der Nutzer möchte und welcher Bearbeiter benötigt wird: einfache Logik, ein spezialisiertes Modell oder ein Mensch; Thema, Komplexität und Risiko bestimmen, welchem Sprachmodell die Anfrage übergeben wird.\n- **Schutzprüfungen** — Eingabe, Ausgabe und Werkzeugaufrufe eines Sprachmodells: eingeschleuste Anweisungen, Regelverstöße und Weitergabe personenbezogener Daten.\n- **Kundendienst** — Thema und Absicht einer Anfrage, Dringlichkeit, Verärgerung, Abwanderungsrisiko, Rückerstattungswunsch und Warteschlange.\n- **Moderation** — nach den Regeln Ihrer Plattform: Toxizität, Mobbing, Spam, Betrug, gefährliche Ratschläge und personenbezogene Daten; je nach Schwere und Sicherheit freigeben, warnen, prüfen oder blockieren.\n- **Branchen** — Versicherungsfälle, Finanzermittlungen und KYC, Verträge und Werbung, Produktkarten, Personalauswahl, Leads, Spiele, Risiken, Nachfrageprognosen, Wissensgraphen, wissenschaftliche Übersichten und Bedeutungsprüfungen von Code in CI.\n\n### Eigenschaften\n\n- **`jev-latest`** — Alias für die neueste stabile Version, derzeit Jev 1.13; die antwortende Version steht im Feld `model`, beispielsweise `jev-1.13.0`. Bei einer neuen Version wechselt der Alias zu dieser, und die Antworten können sich ohne Änderungen Ihrerseits verändern. Beobachten Sie dieses Feld, wenn Ihre Schwellenwerte auf eine Version abgestimmt sind.\n- **Kontext** — 64K Tokens pro Anfrage: Zustand und alle Fragen zusammen; der Zustand mit der längsten Frage darf bis zu 32K umfassen. Das Modell liest den Zustand einmal und prüft alle Fragen parallel dagegen.\n- **Eingabe** — ausschließlich Text: Zeichenkette, JSON-Objekt oder Array von Texten. Bilder, Audio und Video werden noch nicht unterstützt; wandeln Sie sie zuvor in Text um.\n- **Sprache** — die wichtigste Trainingssprache ist Englisch, in der die Genauigkeit derzeit am höchsten ist. Das Modell nimmt auch andere Sprachen an, darunter Chinesisch, Japanisch und Koreanisch; die Genauigkeit ist aber niedriger. Prüfen Sie dies anhand Ihrer 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`, Regeln des Fachbereichs in `instructions` und `criteria`.\n- **Daten** — TypeSafe gibt an, dass Jev nicht mit Kundenanfragen und -antworten trainiert wird.\n\n### Bekannte Schwachstellen von Jev 1.13\n\nTypeSafe nennt die Schwachstellen der aktuellen Version offen und verspricht, vieles in künftigen Versionen zu beheben. Das Modell ist schnell, kalibriert und urteilt gut mit gesundem Menschenverstand, aber:\n\n1. **Wörtliches Lesen.** Es beantwortet die formulierte und nicht die beabsichtigte Frage: Vorbehalte, Verneinungen und implizite Bedingungen werden wörtlich verstanden. Schreiben Sie die genaue Bedingung und Grenzfälle in `criteria`; zerlegen Sie eine unvermeidbare Interpretation in zwei wörtliche Fragen.\n2. **Kein Taschenrechner.** Das Zählen von Zeichen, Wiederholungen und Listenelementen ist unzuverlässig, und der Fehler wächst mit der Größe. Zählen Sie im Code und verwenden Sie eine Frage pro Kandidat. Farben in hex oder RGB versteht das Modell schlechter als Farbnamen. `score` eignet sich für einen Schwellenwert, aber nicht für eine exakte Zahl zwischen Stufen.\n3. **Datum und Uhrzeit.** Welches Datum früher liegt, wie viel Zeit dazwischenliegt oder ob ein Datum in einen Zeitraum fällt, wird unzuverlässig beantwortet, besonders bei gemischten Formaten und relativen Daten. Extrahieren Sie Datumsteile über choice (mit der Option „Nicht angegeben“) und vergleichen Sie sie im Code.\n4. **Indirekte Formulierungen.** Doppelte Verneinungen und Fragen über die Eigenschaft einer Eigenschaft verringern die Genauigkeit. Formulieren Sie direkt und benennen Sie die Teile des Zustands.\n5. **Unnötiger Inhalt im Zustand.** Sachfremder Text verringert die Genauigkeit. Filtern Sie im Code; falls dies nicht möglich ist, sortieren Sie Irrelevantes mit noul-Fragen aus.\n6. **Feindseliger Text.** Das Modell erwartet im Zustand standardmäßig keine Täuschungsversuche: Eine eingeschleuste Anweisung oder ein Text, der seine eigene Klassifikation infrage stellt, kann die Antwort verschieben. Formulieren Sie genaue Kriterien und prüfen Sie Grenzfälle vor dem Einsatz.\n7. **Widersprüche.** Wenn `instructions` und `criteria` Unterschiedliches verlangen — beispielsweise bei noul ein „Ja“ als „Nein“ beschrieben wird — sinkt die Genauigkeit. Die Kriterien sind eine Fortsetzung der Frage.\n8. **Reihenfolge der Optionen.** Manchmal neigt das Modell zur ersten choice-Option. Ändern Sie die Reihenfolge und prüfen Sie, ob die Antwort gleich bleibt.\n9. **Generierung.** Jev wurde nicht zum Schreiben von Text trainiert. Für die Datenextraktion finden Sie Kandidaten mit einem regulären Ausdruck oder einem generativen Modell; Jev wählt dann über choice den richtigen aus.",
    "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 mit der gelieferten Frage-ID, Wahrscheinlichkeit und Legende auf; die Konfidenzformel mit n erfordert n>1, ohne damit eine minchoices-Regel der API zu behaupten.",
              "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 Beschreibungen für true/false, die auch null sein dürfen; choice: criteria-Objekt; score: nicht leeres criteria-Array",
                "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: Schreibt keinen Text, sondern beantwortet typisierte Fragen zu Text oder JSON — Auswahl einer Option, Bewertung auf einer Skala oder „Ja/Nein“ mit Wahrscheinlichkeiten. Geeignet für Routing, 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: Schreibt keinen Text, sondern beantwortet typisierte Fragen zu Text oder JSON — Auswahl einer Option, Bewertung auf einer Skala oder „Ja/Nein“ mit Wahrscheinlichkeiten. Geeignet für Routing, 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": "fedcc72de235aa7b0ac8077f0cc8aaf9bed3f9e5ebd3b6cc5050dbebeb64e5d8",
    "renderer_sha256": "4915581496a34d8a27d706c57a04aa12aa22b4b136560828b2e1b9b8437d1eb0"
  },
  "sourceRevision": "a10d706a9689b0ba3544030047438a7ecbac97b966f9376c5a5a692817636edc"
}
