{
  "aboutHtml": "<p>Jev ist das Flaggschiff 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 einen Satz von <strong>Fragen</strong> und erhalten typisierte Werte mit kalibrierten Wahrscheinlichkeiten zurück.</p><p>Sprachmodelle schreiben Worte für Menschen; Jev ist laut TypeSafe näher an Code: Die Antwort liegt sofort in der vom Code benötigten Form vor, mit hoher Geschwindigkeit und ohne Werte außerhalb der vorgegebenen Optionen. Das Modell ist darauf ausgelegt, bei wiederholten Anfragen stabile Antworten zu liefern.</p><h4>Wie sich System One von einem Sprachmodell unterscheidet</h4><ul><li><strong>Keine Generierung.</strong> Jev schreibt keine Nutzerantworten, keinen Code und erklärt keine Gedankengänge. Sie geben die möglichen Antworten durch einen von drei Fragetypen vor.</li><li><strong>Auf kalibrierte Entscheidungen trainiert.</strong> TypeSafe trainiert das Modell mit RLCD (Reinforcement Learning for Calibrated Decisions): Wahrscheinlichkeiten werden an tatsächliche Ergebnisse angepasst und spiegeln Unsicherheit wider. Unter vielen Antworten mit einer Wahrscheinlichkeit von 0,8 sollten ungefähr 80% richtig sein. Kalibrierung ist eine Eigenschaft großer Stichproben, keine Garantie für eine einzelne Antwort.</li><li><strong>Anderes Trainingsziel.</strong> Chatmodelle werden darauf trainiert, Menschen zu gefallen (RLHF); nach Beobachtung von TypeSafe begünstigt das Gefälligkeit und selbstsicher klingende Fehler. Einer der RLHF-Mitautoren, Diogo Almeida, ist Mitgründer von TypeSafe.</li></ul><p>Der Name verweist auf „System 1“ aus Daniel Kahnemans Buch „Schnelles Denken, langsames Denken“: schnelles intuitives Urteilen im Gegensatz zum langsamen bewussten Denken von „System 2“. Jev wurde für schnelle, eng umrissene Urteile entwickelt.</p><h4>Drei Fragetypen</h4><p>Eine Frage ist ein einzelnes Urteil über den Zustand; die Antwort ein Wert, den Code mit einem Schwellenwert vergleicht, sortiert oder weitergibt.</p><ol><li><strong>Choice — Optionsauswahl.</strong> Zuständige Abteilung einer Anfrage, Produktkategorie, Sprache eines Codeabschnitts. Die Optionen sind ein Wörterbuch „Option → Beschreibung“ mit bis zu 255 Einträgen. Die Antwort enthält das gewählte <code>choice</code>, <code>probabilities</code> für alle Optionen (zusammen 1) und <code>confidence</code>. Deckt die Liste möglicherweise nicht alle Fälle ab, ergänzen Sie „Sonstiges“ oder „Keine der genannten Optionen“.</li><li><strong>Score — Skalenbewertung.</strong> Eine Position auf einer von Ihnen beschriebenen geordneten Skala: Fehlerschwere, Kundenverärgerung, Fähigkeitsniveau. Es gibt 2 bis 10 Stufen von der niedrigsten zur höchsten; jede Stufe wird separat bewertet, ohne dass das Modell ihre Nummer oder Nachbarstufen sieht. Die Antwort enthält <code>score</code> (die Summe der mit ihren Wahrscheinlichkeiten multiplizierten Stufennummern, sodass der Wert zwischen Stufen liegen kann), <code>legend</code> mit Stufenbeschreibungen, <code>probabilities</code> und <code>confidence</code>.</li><li><strong>Noul — Ja oder Nein.</strong> Ob eine Aussage zutrifft. Die Antwort <code>noul</code> ist die Wahrscheinlichkeit für „Ja“ von 0 bis 1: nahe 1 bedeutet ein sicheres „Ja“, nahe 0 ein sicheres „Nein“, nahe 0,5 schwankt das Modell. Ein separates <code>confidence</code> gibt es nicht: Eine Zahl beschreibt die Antwort vollständig. Optionales <code>criteria</code> präzisiert, was als „Ja“ und was als „Nein“ gelten soll.</li></ol><p>Zur Auswahl: bekannte ungeordnete Optionen — choice; Abstufungen eines Spektrums — score; reines „Ja/Nein“, bei dem die Wahrscheinlichkeit selbst zählt — noul. Noul 0,5 bedeutet gleiche Chancen für „Ja“ und „Nein“, nicht eine „mittlere Stufe“: Den Grad misst score. Sind zwei Typen geeignet, wählen Sie denjenigen, anhand dessen der Code direkt handelt: choice für Verzweigungen, score für Schwellenwerte, noul für <code>if</code>.</p><p>Typen lassen sich in einer Anfrage kombinieren. Die Antwort ist immer auf Ihre Optionen begrenzt und hängt nicht von anderen Fragen ab: 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 Dokumentabschnitt, ein Datenbankeintrag oder der Zustand Ihrer Anwendung.</p><ul><li><strong>String</strong> — für einen einzelnen Text: Nachricht, Artikel, Auszug.</li><li><strong>Objekt</strong> — benannte Felder, verknüpfte Einträge, Anwendungszustand. TypeSafe empfiehlt Objekte für die meisten Anfragen: Jeder Teil hat einen verständlichen Namen.</li><li><strong>Array</strong> — eine Folge von Nachrichten oder Einträgen.</li></ul><p>Bereiten Sie den Zustand wie Material für Fachleute vor: Legen Sie Korrespondenz, Bestellung und Rückgaberegeln zusammen ab, wenn eine Entscheidung ihren Vergleich erfordert. Inhalte gehören in den Zustand, Urteile in die Fragen. Betrifft eine Frage einen Zustandsteil, nennen Sie den Pfad dazu 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 eine fachkundige Person mit dem nötigen Kontext in einer Sekunde beantworten: „Enthält die Nachricht Dringlichkeit?“. „Analysiere die Nachricht und entscheide, was zu tun ist“ erfordert bereits langsames Reasoning und muss in einfache Fragen aufgeteilt werden.</li><li><strong>Die gesamte Frage gehört in <code>instructions</code>.</strong> Der Frageschlüssel, etwa <code>refund_requested</code>, wird nur von Ihrem Code benötigt und nicht an das Modell übermittelt.</li><li><strong>Alle Fragen zu einem Zustand in einer Anfrage.</strong> Das Modell bewertet sie parallel: Laut TypeSafe erhöhen zusätzliche Fragen die Antwortzeit kaum und kosten nur ihre eigenen Tokens. Eine Frage „für alle Fälle“ ist fast kostenlos — der Code entscheidet selbst, welche Antworten benötigt werden.</li><li><strong>Komplexe Urteile aufteilen.</strong> Statt „Bewerte den Startup-Antrag“ fragen Sie getrennt nach Marktgröße, technischer Machbarkeit und Unterschieden zu Wettbewerbern und berechnen das Ergebnis im Code mit Gewichten. Ändern sich Prioritäten, ändern Sie Gewichte statt die Frage umzuschreiben.</li><li><strong>Abhängige Fragen in einer zweiten Anfrage.</strong> Antworten einer Anfrage dienen einander nicht als Kontext. Eine zweite Anfrage ist nur nötig, wenn sie ohne die erste Antwort nicht aufgebaut werden kann: Daten müssen nachgeladen oder Optionen der nächsten Frage gewählt werden.</li><li><strong>Lange Fragen als Objekt.</strong> <code>instructions</code> und <code>criteria</code> sind normalerweise Strings, können aber Objekte oder Arrays sein: Die Frage steht in einem Feld, Daten in anderen. So lässt sich etwa ein Lebenslauf mit Datenbankeinträgen in einer Frage abgleichen.</li></ul><h4>Konfidenz</h4><p>Bei choice und score zeigt <code>confidence</code> von 0 bis 1, wie stark die Wahrscheinlichkeit auf eine Antwort konzentriert ist: 1 bedeutet alles auf einer Option, 0 eine gleichmäßige Verteilung auf alle. Bei score senkt eine benachbarte Stufe die Konfidenz weniger als eine entfernte. Bei noul ist der Wert selbst die Konfidenz: Je weiter er von 0,5 entfernt ist, desto entschiedener die Antwort.</p><p>TypeSafe empfiehlt drei Bereiche:</p><ol><li><strong>Hohe Konfidenz</strong> — automatisch handeln.</li><li><strong>Mittlere</strong> — vorsichtig handeln, beispielsweise den Nutzer um Bestätigung bitten.</li><li><strong>Niedrige</strong> — den Fall an einen Menschen weitergeben, die Anfrage präzisieren oder einen Ersatzweg verwenden, etwa ein leistungsfähigeres Reasoning-Modell.</li></ol><p>Je kostspieliger ein Fehler, desto strenger der Schwellenwert: Für irreversible Aktionen höher als für das Lesen. Die Antwort sagt, was gewählt werden soll, die Konfidenz, ob gehandelt werden sollte. Wählen Sie Schwellenwerte anhand eigener Daten und vergleichen Sie Konfidenz mit Genauigkeit.</p><h4>Ein System um Jev aufbauen</h4><p>Jev ist nicht auf Agenten ausgelegt, die selbst den nächsten Schritt wählen und in jeder Runde vom Weg abkommen können, sondern auf Programme, deren Ablauf vom Code gesteuert wird und in denen das Modell eng umrissene Bedeutungsfragen beantwortet. Acht Entwurfsschritte nach TypeSafe:</p><ol><li>Alles, was sich mit Code erledigen lässt, mit Code erledigen — zuverlässig und günstig.</li><li>Nur das in den Zustand aufnehmen, was die aktuellen Fragen benötigen; neue Fakten aus der eigenen Wissensdatenbank beziehen, nicht aus dem Modellgedächtnis.</li><li>Den Zustand strukturieren: verschachteltes JSON und in der Frage den Pfad zum benötigten Feld in Backticks, wenn das Mehrdeutigkeit verringert.</li><li>Möglichst enge und konkrete Fragen — laut TypeSafe wohl die wichtigste Regel: Eine breite Frage versteckt mehrere Urteile in einer Antwort.</li><li>Fragen strukturieren: Die Frage selbst ist kurz; Erklärungen, Beispiele und Datenbankwerte gehören in benachbarte Felder des Objekts <code>instructions</code> oder <code>criteria</code>, nicht in einen langen String.</li><li>Viele unabhängige Fragen zu einem Zustand in einer Anfrage — mehr Nutzen pro Dollar.</li><li>Antworten im Code zusammenführen: durch Regeln, eine gewichtete Summe oder als Merkmale für ein klassisches Machine-Learning-Modell.</li><li>Nach Konfidenz verzweigen: Unsichere Fälle an Menschen oder ein Reasoning-Modell weitergeben.</li></ol><p>Jev ist weder Chat noch Codevervollständigungsmodell und kann in einem Programmieragenten kein Sprachmodell ersetzen. 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 eine Million Mal ohne einen Menschen daneben ausgeführt werden.</li><li><strong>Echtzeit</strong> — laut TypeSafe dauern die meisten Anfragen ungefähr 100 ms: genug für Verarbeitung im laufenden Betrieb und Oberflächen.</li><li><strong>Große Datenmengen</strong> — Suche in riesigen Korpora, Annotation von Agentenlogs, Merkmale für Prognosen.</li><li><strong>Prüfung anderer Modelle</strong> — Anfragen, Extraktionen, Reasoning und Werkzeugaufrufe: Umgehung von Einschränkungen, Zitierfehler, erfundene Inhalte.</li><li><strong>Suche und Ranking</strong> — Relevanz eines Anfrage-Kandidaten-Paars, Reranking, Kontextauswahl.</li><li><strong>Verzweigung nach Absicht</strong> — was der Nutzer möchte und welcher Handler nötig ist: einfache Logik, Fachmodell oder Mensch; Thema, Komplexität und Risiko bestimmen, welches Sprachmodell die Anfrage erhält.</li><li><strong>Schutzprüfungen</strong> — Eingabe, Ausgabe und Werkzeugaufrufe eines Sprachmodells: eingeschleuste Anweisungen, Regelverstöße, Offenlegung persönlicher Daten.</li><li><strong>Support</strong> — Anfragegegenstand und Absicht, Dringlichkeit, Verärgerung, Abwanderungsrisiko, Rückerstattungswunsch, Warteschlange.</li><li><strong>Moderation</strong> — nach Plattformregeln: Toxizität, Belästigung, Spam, Betrug, gefährliche Ratschläge, persönliche Daten; abhängig von Schweregrad und Konfidenz 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 Reviews, semantische Codeprüfungen in CI.</li></ul><h4>Merkmale</h4><ul><li><strong><code>jev-latest</code></strong> — Alias der neuesten stabilen Version, derzeit Jev 1.13; die antwortende Version steht im Feld <code>model</code>, beispielsweise <code>jev-1.13.0</code>. Mit einer neuen Version wechselt der Alias zu ihr; Antworten können sich ohne Änderungen Ihrerseits verändern. Überwachen Sie dieses Feld, wenn Schwellenwerte auf eine Version abgestimmt sind.</li><li><strong>Kontext</strong> — 64K Tokens pro Anfrage: Zustand und alle Fragen zusammen; Zustand plus längste Frage bis zu 32K. Das Modell liest den Zustand einmal und prüft alle Fragen parallel gegen ihn.</li><li><strong>Eingabe</strong> — nur Text: String, JSON-Objekt oder Textarray. Bilder, Audio und Video werden noch nicht unterstützt — wandeln Sie sie vorher in Text um.</li><li><strong>Sprache</strong> — Haupttrainingssprache ist Englisch; darin ist die Genauigkeit derzeit am höchsten. Andere Sprachen, darunter Chinesisch, Japanisch und Koreanisch, werden akzeptiert, die Genauigkeit ist aber geringer — prüfen Sie anhand eigener 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 feinabgestimmt: Eigene Materialien gehören in <code>state</code>, Fachregeln in <code>instructions</code> und <code>criteria</code>.</li><li><strong>Daten</strong> — TypeSafe erklärt, dass Jev nicht mit Kundenanfragen und -antworten trainiert wird.</li></ul><h4>Bekannte Schwächen von Jev 1.13</h4><p>TypeSafe nennt die Schwächen der aktuellen Version offen und verspricht, viele in folgenden Versionen zu beheben. Das Modell ist schnell, kalibriert und urteilt gut mit gesundem Menschenverstand, aber:</p><ol><li><strong>Wörtliches Lesen.</strong> Es beantwortet die geschriebene Frage, nicht die gemeinte: Einschränkungen, Verneinungen und implizite Bedingungen werden wörtlich verstanden. Schreiben Sie die genaue Bedingung und Grenzfälle in <code>criteria</code>; teilen Sie unvermeidliche Interpretationen in zwei wörtliche Fragen auf.</li><li><strong>Kein Rechner.</strong> Das Zählen von Zeichen, Wiederholungen und Listenelementen ist unzuverlässig; der Fehler wächst mit dem Umfang. Zählen Sie im Code und stellen Sie eine Frage pro Kandidat. Farben in hex oder RGB versteht das Modell schlechter als Namen. <code>score</code> eignet sich für Schwellenwerte, nicht für eine genaue Zahl zwischen Stufen.</li><li><strong>Datum und Zeit.</strong> Welches Datum früher liegt, wie viel Zeit dazwischen liegt oder ob ein Datum in einen Zeitraum fällt, ist unzuverlässig, besonders bei gemischten Formaten und relativen Daten. Extrahieren Sie Datumsteile mit choice (mit einer Option „Nicht angegeben“) und vergleichen Sie im Code.</li><li><strong>Indirektheit.</strong> Doppelte Verneinungen und Fragen nach Eigenschaften von Eigenschaften verringern die Genauigkeit. Formulieren Sie direkt und benennen Sie Zustandsteile.</li><li><strong>Überflüssiger Zustand.</strong> Fremder Text verringert die Genauigkeit. Filtern Sie im Code; falls das nicht möglich ist, schließen Sie Irrelevantes mit noul-Fragen aus.</li><li><strong>Feindseliger Text.</strong> Das Modell erwartet standardmäßig keine Täuschungen im Zustand: Eine eingeschleuste Anweisung oder ein Text, der über seine eigene Klassifikation diskutiert, kann die Antwort verschieben. Formulieren Sie genaue Kriterien und prüfen Sie Grenzfälle vor dem Start.</li><li><strong>Widersprüche.</strong> Verlangen <code>instructions</code> und <code>criteria</code> Unterschiedliches — etwa wenn bei noul „Ja“ als „Nein“ beschrieben wird — sinkt die Genauigkeit. Kriterien sind eine Fortsetzung der Frage.</li><li><strong>Optionsreihenfolge.</strong> Manchmal neigt das Modell zur ersten choice-Option. Ordnen Sie die Optionen um und prüfen Sie, dass sich die Antwort nicht verändert.</li><li><strong>Generierung.</strong> Jev wurde nicht zum Schreiben von Text trainiert. Finden Sie Kandidaten für Datenextraktion mit einem regulären Ausdruck oder generativen Modell und lassen Sie Jev mit choice den richtigen auswählen.</li></ol>",
  "aboutText": "Jev ist das Flaggschiff 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 einen Satz von **Fragen** und erhalten typisierte Werte mit kalibrierten Wahrscheinlichkeiten zurück.\n\nSprachmodelle schreiben Worte für Menschen; Jev ist laut TypeSafe näher an Code: Die Antwort liegt sofort in der vom Code benötigten Form vor, mit hoher Geschwindigkeit und ohne Werte außerhalb der vorgegebenen Optionen. Das Modell ist darauf ausgelegt, bei wiederholten Anfragen stabile Antworten zu liefern.\n\n### Wie sich System One von einem Sprachmodell unterscheidet\n\n- **Keine Generierung.** Jev schreibt keine Nutzerantworten, keinen Code und erklärt keine Gedankengänge. Sie geben die möglichen Antworten durch einen von drei Fragetypen vor.\n- **Auf kalibrierte Entscheidungen trainiert.** TypeSafe trainiert das Modell mit RLCD (Reinforcement Learning for Calibrated Decisions): Wahrscheinlichkeiten werden an tatsächliche Ergebnisse angepasst und spiegeln Unsicherheit wider. Unter vielen Antworten mit einer Wahrscheinlichkeit von 0,8 sollten ungefähr 80% richtig sein. Kalibrierung ist eine Eigenschaft großer Stichproben, keine Garantie für eine einzelne Antwort.\n- **Anderes Trainingsziel.** Chatmodelle werden darauf trainiert, Menschen zu gefallen (RLHF); nach Beobachtung von TypeSafe begünstigt das Gefälligkeit und selbstsicher klingende Fehler. Einer der RLHF-Mitautoren, Diogo Almeida, ist Mitgründer von TypeSafe.\n\nDer Name verweist auf „System 1“ aus Daniel Kahnemans Buch „Schnelles Denken, langsames Denken“: schnelles intuitives Urteilen im Gegensatz zum langsamen bewussten Denken von „System 2“. Jev wurde für schnelle, eng umrissene Urteile entwickelt.\n\n### Drei Fragetypen\n\nEine Frage ist ein einzelnes Urteil über den Zustand; die Antwort ein Wert, den Code mit einem Schwellenwert vergleicht, sortiert oder weitergibt.\n\n1. **Choice — Optionsauswahl.** Zuständige Abteilung einer Anfrage, Produktkategorie, Sprache eines Codeabschnitts. Die Optionen sind ein Wörterbuch „Option → Beschreibung“ mit bis zu 255 Einträgen. Die Antwort enthält das gewählte `choice`, `probabilities` für alle Optionen (zusammen 1) und `confidence`. Deckt die Liste möglicherweise nicht alle Fälle ab, ergänzen Sie „Sonstiges“ oder „Keine der genannten Optionen“.\n2. **Score — Skalenbewertung.** Eine Position auf einer von Ihnen beschriebenen geordneten Skala: Fehlerschwere, Kundenverärgerung, Fähigkeitsniveau. Es gibt 2 bis 10 Stufen von der niedrigsten zur höchsten; jede Stufe wird separat bewertet, ohne dass das Modell ihre Nummer oder Nachbarstufen sieht. Die Antwort enthält `score` (die Summe der mit ihren Wahrscheinlichkeiten multiplizierten Stufennummern, sodass der Wert zwischen Stufen liegen kann), `legend` mit Stufenbeschreibungen, `probabilities` und `confidence`.\n3. **Noul — Ja oder Nein.** Ob eine Aussage zutrifft. Die Antwort `noul` ist die Wahrscheinlichkeit für „Ja“ von 0 bis 1: nahe 1 bedeutet ein sicheres „Ja“, nahe 0 ein sicheres „Nein“, nahe 0,5 schwankt das Modell. Ein separates `confidence` gibt es nicht: Eine Zahl beschreibt die Antwort vollständig. Optionales `criteria` präzisiert, was als „Ja“ und was als „Nein“ gelten soll.\n\nZur Auswahl: bekannte ungeordnete Optionen — choice; Abstufungen eines Spektrums — score; reines „Ja/Nein“, bei dem die Wahrscheinlichkeit selbst zählt — noul. Noul 0,5 bedeutet gleiche Chancen für „Ja“ und „Nein“, nicht eine „mittlere Stufe“: Den Grad misst score. Sind zwei Typen geeignet, wählen Sie denjenigen, anhand dessen der Code direkt handelt: choice für Verzweigungen, score für Schwellenwerte, noul für `if`.\n\nTypen lassen sich in einer Anfrage kombinieren. Die Antwort ist immer auf Ihre Optionen begrenzt und hängt nicht von anderen Fragen ab: 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 Dokumentabschnitt, ein Datenbankeintrag oder der Zustand Ihrer Anwendung.\n\n- **String** — für einen einzelnen Text: Nachricht, Artikel, Auszug.\n- **Objekt** — benannte Felder, verknüpfte Einträge, Anwendungszustand. TypeSafe empfiehlt Objekte für die meisten Anfragen: Jeder Teil hat einen verständlichen Namen.\n- **Array** — eine Folge von Nachrichten oder Einträgen.\n\nBereiten Sie den Zustand wie Material für Fachleute vor: Legen Sie Korrespondenz, Bestellung und Rückgaberegeln zusammen ab, wenn eine Entscheidung ihren Vergleich erfordert. Inhalte gehören in den Zustand, Urteile in die Fragen. Betrifft eine Frage einen Zustandsteil, nennen Sie den Pfad dazu in Backticks, beispielsweise `ticket.messages[0].text`.\n\n### Fragen formulieren\n\n- **Ein schnelles Urteil pro Frage.** Eine gute Frage kann eine fachkundige Person mit dem nötigen Kontext in einer Sekunde beantworten: „Enthält die Nachricht Dringlichkeit?“. „Analysiere die Nachricht und entscheide, was zu tun ist“ erfordert bereits langsames Reasoning und muss in einfache Fragen aufgeteilt werden.\n- **Die gesamte Frage gehört in `instructions`.** Der Frageschlüssel, etwa `refund_requested`, wird nur von Ihrem Code benötigt und nicht an das Modell übermittelt.\n- **Alle Fragen zu einem Zustand in einer Anfrage.** Das Modell bewertet sie parallel: Laut TypeSafe erhöhen zusätzliche Fragen die Antwortzeit kaum und kosten nur ihre eigenen Tokens. Eine Frage „für alle Fälle“ ist fast kostenlos — der Code entscheidet selbst, welche Antworten benötigt werden.\n- **Komplexe Urteile aufteilen.** Statt „Bewerte den Startup-Antrag“ fragen Sie getrennt nach Marktgröße, technischer Machbarkeit und Unterschieden zu Wettbewerbern und berechnen das Ergebnis im Code mit Gewichten. Ändern sich Prioritäten, ändern Sie Gewichte statt die Frage umzuschreiben.\n- **Abhängige Fragen in einer zweiten Anfrage.** Antworten einer Anfrage dienen einander nicht als Kontext. Eine zweite Anfrage ist nur nötig, wenn sie ohne die erste Antwort nicht aufgebaut werden kann: Daten müssen nachgeladen oder Optionen der nächsten Frage gewählt werden.\n- **Lange Fragen als Objekt.** `instructions` und `criteria` sind normalerweise Strings, können aber Objekte oder Arrays sein: Die Frage steht in einem Feld, Daten in anderen. So lässt sich etwa ein Lebenslauf mit Datenbankeinträgen in einer Frage abgleichen.\n\n### Konfidenz\n\nBei choice und score zeigt `confidence` von 0 bis 1, wie stark die Wahrscheinlichkeit auf eine Antwort konzentriert ist: 1 bedeutet alles auf einer Option, 0 eine gleichmäßige Verteilung auf alle. Bei score senkt eine benachbarte Stufe die Konfidenz weniger als eine entfernte. Bei noul ist der Wert selbst die Konfidenz: Je weiter er von 0,5 entfernt ist, desto entschiedener die Antwort.\n\nTypeSafe empfiehlt drei Bereiche:\n\n1. **Hohe Konfidenz** — automatisch handeln.\n2. **Mittlere** — vorsichtig handeln, beispielsweise den Nutzer um Bestätigung bitten.\n3. **Niedrige** — den Fall an einen Menschen weitergeben, die Anfrage präzisieren oder einen Ersatzweg verwenden, etwa ein leistungsfähigeres Reasoning-Modell.\n\nJe kostspieliger ein Fehler, desto strenger der Schwellenwert: Für irreversible Aktionen höher als für das Lesen. Die Antwort sagt, was gewählt werden soll, die Konfidenz, ob gehandelt werden sollte. Wählen Sie Schwellenwerte anhand eigener Daten und vergleichen Sie Konfidenz mit Genauigkeit.\n\n### Ein System um Jev aufbauen\n\nJev ist nicht auf Agenten ausgelegt, die selbst den nächsten Schritt wählen und in jeder Runde vom Weg abkommen können, sondern auf Programme, deren Ablauf vom Code gesteuert wird und in denen das Modell eng umrissene Bedeutungsfragen beantwortet. Acht Entwurfsschritte nach TypeSafe:\n\n1. Alles, was sich mit Code erledigen lässt, mit Code erledigen — zuverlässig und günstig.\n2. Nur das in den Zustand aufnehmen, was die aktuellen Fragen benötigen; neue Fakten aus der eigenen Wissensdatenbank beziehen, nicht aus dem Modellgedächtnis.\n3. Den Zustand strukturieren: verschachteltes JSON und in der Frage den Pfad zum benötigten Feld in Backticks, wenn das Mehrdeutigkeit verringert.\n4. Möglichst enge und konkrete Fragen — laut TypeSafe wohl die wichtigste Regel: Eine breite Frage versteckt mehrere Urteile in einer Antwort.\n5. Fragen strukturieren: Die Frage selbst ist kurz; Erklärungen, Beispiele und Datenbankwerte gehören in benachbarte Felder des Objekts `instructions` oder `criteria`, nicht in einen langen String.\n6. Viele unabhängige Fragen zu einem Zustand in einer Anfrage — mehr Nutzen pro Dollar.\n7. Antworten im Code zusammenführen: durch Regeln, eine gewichtete Summe oder als Merkmale für ein klassisches Machine-Learning-Modell.\n8. Nach Konfidenz verzweigen: Unsichere Fälle an Menschen oder ein Reasoning-Modell weitergeben.\n\nJev ist weder Chat noch Codevervollständigungsmodell und kann in einem Programmieragenten kein Sprachmodell ersetzen. 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 eine Million Mal ohne einen Menschen daneben ausgeführt werden.\n- **Echtzeit** — laut TypeSafe dauern die meisten Anfragen ungefähr 100 ms: genug für Verarbeitung im laufenden Betrieb und Oberflächen.\n- **Große Datenmengen** — Suche in riesigen Korpora, Annotation von Agentenlogs, Merkmale für Prognosen.\n- **Prüfung anderer Modelle** — Anfragen, Extraktionen, Reasoning und Werkzeugaufrufe: Umgehung von Einschränkungen, Zitierfehler, erfundene Inhalte.\n- **Suche und Ranking** — Relevanz eines Anfrage-Kandidaten-Paars, Reranking, Kontextauswahl.\n- **Verzweigung nach Absicht** — was der Nutzer möchte und welcher Handler nötig ist: einfache Logik, Fachmodell oder Mensch; Thema, Komplexität und Risiko bestimmen, welches Sprachmodell die Anfrage erhält.\n- **Schutzprüfungen** — Eingabe, Ausgabe und Werkzeugaufrufe eines Sprachmodells: eingeschleuste Anweisungen, Regelverstöße, Offenlegung persönlicher Daten.\n- **Support** — Anfragegegenstand und Absicht, Dringlichkeit, Verärgerung, Abwanderungsrisiko, Rückerstattungswunsch, Warteschlange.\n- **Moderation** — nach Plattformregeln: Toxizität, Belästigung, Spam, Betrug, gefährliche Ratschläge, persönliche Daten; abhängig von Schweregrad und Konfidenz 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 Reviews, semantische Codeprüfungen in CI.\n\n### Merkmale\n\n- **`jev-latest`** — Alias der neuesten stabilen Version, derzeit Jev 1.13; die antwortende Version steht im Feld `model`, beispielsweise `jev-1.13.0`. Mit einer neuen Version wechselt der Alias zu ihr; Antworten können sich ohne Änderungen Ihrerseits verändern. Überwachen Sie dieses Feld, wenn Schwellenwerte auf eine Version abgestimmt sind.\n- **Kontext** — 64K Tokens pro Anfrage: Zustand und alle Fragen zusammen; Zustand plus längste Frage bis zu 32K. Das Modell liest den Zustand einmal und prüft alle Fragen parallel gegen ihn.\n- **Eingabe** — nur Text: String, JSON-Objekt oder Textarray. Bilder, Audio und Video werden noch nicht unterstützt — wandeln Sie sie vorher in Text um.\n- **Sprache** — Haupttrainingssprache ist Englisch; darin ist die Genauigkeit derzeit am höchsten. Andere Sprachen, darunter Chinesisch, Japanisch und Koreanisch, werden akzeptiert, die Genauigkeit ist aber geringer — prüfen Sie anhand eigener 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 feinabgestimmt: Eigene Materialien gehören in `state`, Fachregeln in `instructions` und `criteria`.\n- **Daten** — TypeSafe erklärt, dass Jev nicht mit Kundenanfragen und -antworten trainiert wird.\n\n### Bekannte Schwächen von Jev 1.13\n\nTypeSafe nennt die Schwächen der aktuellen Version offen und verspricht, viele in folgenden Versionen zu beheben. Das Modell ist schnell, kalibriert und urteilt gut mit gesundem Menschenverstand, aber:\n\n1. **Wörtliches Lesen.** Es beantwortet die geschriebene Frage, nicht die gemeinte: Einschränkungen, Verneinungen und implizite Bedingungen werden wörtlich verstanden. Schreiben Sie die genaue Bedingung und Grenzfälle in `criteria`; teilen Sie unvermeidliche Interpretationen in zwei wörtliche Fragen auf.\n2. **Kein Rechner.** Das Zählen von Zeichen, Wiederholungen und Listenelementen ist unzuverlässig; der Fehler wächst mit dem Umfang. Zählen Sie im Code und stellen Sie eine Frage pro Kandidat. Farben in hex oder RGB versteht das Modell schlechter als Namen. `score` eignet sich für Schwellenwerte, nicht für eine genaue Zahl zwischen Stufen.\n3. **Datum und Zeit.** Welches Datum früher liegt, wie viel Zeit dazwischen liegt oder ob ein Datum in einen Zeitraum fällt, ist unzuverlässig, besonders bei gemischten Formaten und relativen Daten. Extrahieren Sie Datumsteile mit choice (mit einer Option „Nicht angegeben“) und vergleichen Sie im Code.\n4. **Indirektheit.** Doppelte Verneinungen und Fragen nach Eigenschaften von Eigenschaften verringern die Genauigkeit. Formulieren Sie direkt und benennen Sie Zustandsteile.\n5. **Überflüssiger Zustand.** Fremder Text verringert die Genauigkeit. Filtern Sie im Code; falls das nicht möglich ist, schließen Sie Irrelevantes mit noul-Fragen aus.\n6. **Feindseliger Text.** Das Modell erwartet standardmäßig keine Täuschungen im Zustand: Eine eingeschleuste Anweisung oder ein Text, der über seine eigene Klassifikation diskutiert, kann die Antwort verschieben. Formulieren Sie genaue Kriterien und prüfen Sie Grenzfälle vor dem Start.\n7. **Widersprüche.** Verlangen `instructions` und `criteria` Unterschiedliches — etwa wenn bei noul „Ja“ als „Nein“ beschrieben wird — sinkt die Genauigkeit. Kriterien sind eine Fortsetzung der Frage.\n8. **Optionsreihenfolge.** Manchmal neigt das Modell zur ersten choice-Option. Ordnen Sie die Optionen um und prüfen Sie, dass sich die Antwort nicht verändert.\n9. **Generierung.** Jev wurde nicht zum Schreiben von Text trainiert. Finden Sie Kandidaten für Datenextraktion mit einem regulären Ausdruck oder generativen Modell und lassen Sie Jev mit choice den richtigen auswählen.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "bdd4638eab44384e299f520ac458bb23ea45510e9433a40cd03b06c391136cd8",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "de",
  "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\">Start</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\">Start</h3><p class=\"mdesc-full\">Entscheidungsmodell von TypeSafe: Schreibt keinen Text, sondern beantwortet typisierte Fragen zu Text oder JSON — Optionsauswahl, Skalenbewertung oder „Ja/Nein“ mit Wahrscheinlichkeiten. Geeignet für Routing, Anfragensortierung, 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 Flaggschiff 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 einen Satz von <strong>Fragen</strong> und erhalten typisierte Werte mit kalibrierten Wahrscheinlichkeiten zurück.</p><p>Sprachmodelle schreiben Worte für Menschen; Jev ist laut TypeSafe näher an Code: Die Antwort liegt sofort in der vom Code benötigten Form vor, mit hoher Geschwindigkeit und ohne Werte außerhalb der vorgegebenen Optionen. Das Modell ist darauf ausgelegt, bei wiederholten Anfragen stabile Antworten zu liefern.</p><h4>Wie sich System One von einem Sprachmodell unterscheidet</h4><ul><li><strong>Keine Generierung.</strong> Jev schreibt keine Nutzerantworten, keinen Code und erklärt keine Gedankengänge. Sie geben die möglichen Antworten durch einen von drei Fragetypen vor.</li><li><strong>Auf kalibrierte Entscheidungen trainiert.</strong> TypeSafe trainiert das Modell mit RLCD (Reinforcement Learning for Calibrated Decisions): Wahrscheinlichkeiten werden an tatsächliche Ergebnisse angepasst und spiegeln Unsicherheit wider. Unter vielen Antworten mit einer Wahrscheinlichkeit von 0,8 sollten ungefähr 80% richtig sein. Kalibrierung ist eine Eigenschaft großer Stichproben, keine Garantie für eine einzelne Antwort.</li><li><strong>Anderes Trainingsziel.</strong> Chatmodelle werden darauf trainiert, Menschen zu gefallen (RLHF); nach Beobachtung von TypeSafe begünstigt das Gefälligkeit und selbstsicher klingende Fehler. Einer der RLHF-Mitautoren, Diogo Almeida, ist Mitgründer von TypeSafe.</li></ul><p>Der Name verweist auf „System 1“ aus Daniel Kahnemans Buch „Schnelles Denken, langsames Denken“: schnelles intuitives Urteilen im Gegensatz zum langsamen bewussten Denken von „System 2“. Jev wurde für schnelle, eng umrissene Urteile entwickelt.</p><h4>Drei Fragetypen</h4><p>Eine Frage ist ein einzelnes Urteil über den Zustand; die Antwort ein Wert, den Code mit einem Schwellenwert vergleicht, sortiert oder weitergibt.</p><ol><li><strong>Choice — Optionsauswahl.</strong> Zuständige Abteilung einer Anfrage, Produktkategorie, Sprache eines Codeabschnitts. Die Optionen sind ein Wörterbuch „Option → Beschreibung“ mit bis zu 255 Einträgen. Die Antwort enthält das gewählte <code>choice</code>, <code>probabilities</code> für alle Optionen (zusammen 1) und <code>confidence</code>. Deckt die Liste möglicherweise nicht alle Fälle ab, ergänzen Sie „Sonstiges“ oder „Keine der genannten Optionen“.</li><li><strong>Score — Skalenbewertung.</strong> Eine Position auf einer von Ihnen beschriebenen geordneten Skala: Fehlerschwere, Kundenverärgerung, Fähigkeitsniveau. Es gibt 2 bis 10 Stufen von der niedrigsten zur höchsten; jede Stufe wird separat bewertet, ohne dass das Modell ihre Nummer oder Nachbarstufen sieht. Die Antwort enthält <code>score</code> (die Summe der mit ihren Wahrscheinlichkeiten multiplizierten Stufennummern, sodass der Wert zwischen Stufen liegen kann), <code>legend</code> mit Stufenbeschreibungen, <code>probabilities</code> und <code>confidence</code>.</li><li><strong>Noul — Ja oder Nein.</strong> Ob eine Aussage zutrifft. Die Antwort <code>noul</code> ist die Wahrscheinlichkeit für „Ja“ von 0 bis 1: nahe 1 bedeutet ein sicheres „Ja“, nahe 0 ein sicheres „Nein“, nahe 0,5 schwankt das Modell. Ein separates <code>confidence</code> gibt es nicht: Eine Zahl beschreibt die Antwort vollständig. Optionales <code>criteria</code> präzisiert, was als „Ja“ und was als „Nein“ gelten soll.</li></ol><p>Zur Auswahl: bekannte ungeordnete Optionen — choice; Abstufungen eines Spektrums — score; reines „Ja/Nein“, bei dem die Wahrscheinlichkeit selbst zählt — noul. Noul 0,5 bedeutet gleiche Chancen für „Ja“ und „Nein“, nicht eine „mittlere Stufe“: Den Grad misst score. Sind zwei Typen geeignet, wählen Sie denjenigen, anhand dessen der Code direkt handelt: choice für Verzweigungen, score für Schwellenwerte, noul für <code>if</code>.</p><p>Typen lassen sich in einer Anfrage kombinieren. Die Antwort ist immer auf Ihre Optionen begrenzt und hängt nicht von anderen Fragen ab: 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 Dokumentabschnitt, ein Datenbankeintrag oder der Zustand Ihrer Anwendung.</p><ul><li><strong>String</strong> — für einen einzelnen Text: Nachricht, Artikel, Auszug.</li><li><strong>Objekt</strong> — benannte Felder, verknüpfte Einträge, Anwendungszustand. TypeSafe empfiehlt Objekte für die meisten Anfragen: Jeder Teil hat einen verständlichen Namen.</li><li><strong>Array</strong> — eine Folge von Nachrichten oder Einträgen.</li></ul><p>Bereiten Sie den Zustand wie Material für Fachleute vor: Legen Sie Korrespondenz, Bestellung und Rückgaberegeln zusammen ab, wenn eine Entscheidung ihren Vergleich erfordert. Inhalte gehören in den Zustand, Urteile in die Fragen. Betrifft eine Frage einen Zustandsteil, nennen Sie den Pfad dazu 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 eine fachkundige Person mit dem nötigen Kontext in einer Sekunde beantworten: „Enthält die Nachricht Dringlichkeit?“. „Analysiere die Nachricht und entscheide, was zu tun ist“ erfordert bereits langsames Reasoning und muss in einfache Fragen aufgeteilt werden.</li><li><strong>Die gesamte Frage gehört in <code>instructions</code>.</strong> Der Frageschlüssel, etwa <code>refund_requested</code>, wird nur von Ihrem Code benötigt und nicht an das Modell übermittelt.</li><li><strong>Alle Fragen zu einem Zustand in einer Anfrage.</strong> Das Modell bewertet sie parallel: Laut TypeSafe erhöhen zusätzliche Fragen die Antwortzeit kaum und kosten nur ihre eigenen Tokens. Eine Frage „für alle Fälle“ ist fast kostenlos — der Code entscheidet selbst, welche Antworten benötigt werden.</li><li><strong>Komplexe Urteile aufteilen.</strong> Statt „Bewerte den Startup-Antrag“ fragen Sie getrennt nach Marktgröße, technischer Machbarkeit und Unterschieden zu Wettbewerbern und berechnen das Ergebnis im Code mit Gewichten. Ändern sich Prioritäten, ändern Sie Gewichte statt die Frage umzuschreiben.</li><li><strong>Abhängige Fragen in einer zweiten Anfrage.</strong> Antworten einer Anfrage dienen einander nicht als Kontext. Eine zweite Anfrage ist nur nötig, wenn sie ohne die erste Antwort nicht aufgebaut werden kann: Daten müssen nachgeladen oder Optionen der nächsten Frage gewählt werden.</li><li><strong>Lange Fragen als Objekt.</strong> <code>instructions</code> und <code>criteria</code> sind normalerweise Strings, können aber Objekte oder Arrays sein: Die Frage steht in einem Feld, Daten in anderen. So lässt sich etwa ein Lebenslauf mit Datenbankeinträgen in einer Frage abgleichen.</li></ul><h4>Konfidenz</h4><p>Bei choice und score zeigt <code>confidence</code> von 0 bis 1, wie stark die Wahrscheinlichkeit auf eine Antwort konzentriert ist: 1 bedeutet alles auf einer Option, 0 eine gleichmäßige Verteilung auf alle. Bei score senkt eine benachbarte Stufe die Konfidenz weniger als eine entfernte. Bei noul ist der Wert selbst die Konfidenz: Je weiter er von 0,5 entfernt ist, desto entschiedener die Antwort.</p><p>TypeSafe empfiehlt drei Bereiche:</p><ol><li><strong>Hohe Konfidenz</strong> — automatisch handeln.</li><li><strong>Mittlere</strong> — vorsichtig handeln, beispielsweise den Nutzer um Bestätigung bitten.</li><li><strong>Niedrige</strong> — den Fall an einen Menschen weitergeben, die Anfrage präzisieren oder einen Ersatzweg verwenden, etwa ein leistungsfähigeres Reasoning-Modell.</li></ol><p>Je kostspieliger ein Fehler, desto strenger der Schwellenwert: Für irreversible Aktionen höher als für das Lesen. Die Antwort sagt, was gewählt werden soll, die Konfidenz, ob gehandelt werden sollte. Wählen Sie Schwellenwerte anhand eigener Daten und vergleichen Sie Konfidenz mit Genauigkeit.</p><h4>Ein System um Jev aufbauen</h4><p>Jev ist nicht auf Agenten ausgelegt, die selbst den nächsten Schritt wählen und in jeder Runde vom Weg abkommen können, sondern auf Programme, deren Ablauf vom Code gesteuert wird und in denen das Modell eng umrissene Bedeutungsfragen beantwortet. Acht Entwurfsschritte nach TypeSafe:</p><ol><li>Alles, was sich mit Code erledigen lässt, mit Code erledigen — zuverlässig und günstig.</li><li>Nur das in den Zustand aufnehmen, was die aktuellen Fragen benötigen; neue Fakten aus der eigenen Wissensdatenbank beziehen, nicht aus dem Modellgedächtnis.</li><li>Den Zustand strukturieren: verschachteltes JSON und in der Frage den Pfad zum benötigten Feld in Backticks, wenn das Mehrdeutigkeit verringert.</li><li>Möglichst enge und konkrete Fragen — laut TypeSafe wohl die wichtigste Regel: Eine breite Frage versteckt mehrere Urteile in einer Antwort.</li><li>Fragen strukturieren: Die Frage selbst ist kurz; Erklärungen, Beispiele und Datenbankwerte gehören in benachbarte Felder des Objekts <code>instructions</code> oder <code>criteria</code>, nicht in einen langen String.</li><li>Viele unabhängige Fragen zu einem Zustand in einer Anfrage — mehr Nutzen pro Dollar.</li><li>Antworten im Code zusammenführen: durch Regeln, eine gewichtete Summe oder als Merkmale für ein klassisches Machine-Learning-Modell.</li><li>Nach Konfidenz verzweigen: Unsichere Fälle an Menschen oder ein Reasoning-Modell weitergeben.</li></ol><p>Jev ist weder Chat noch Codevervollständigungsmodell und kann in einem Programmieragenten kein Sprachmodell ersetzen. 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 eine Million Mal ohne einen Menschen daneben ausgeführt werden.</li><li><strong>Echtzeit</strong> — laut TypeSafe dauern die meisten Anfragen ungefähr 100 ms: genug für Verarbeitung im laufenden Betrieb und Oberflächen.</li><li><strong>Große Datenmengen</strong> — Suche in riesigen Korpora, Annotation von Agentenlogs, Merkmale für Prognosen.</li><li><strong>Prüfung anderer Modelle</strong> — Anfragen, Extraktionen, Reasoning und Werkzeugaufrufe: Umgehung von Einschränkungen, Zitierfehler, erfundene Inhalte.</li><li><strong>Suche und Ranking</strong> — Relevanz eines Anfrage-Kandidaten-Paars, Reranking, Kontextauswahl.</li><li><strong>Verzweigung nach Absicht</strong> — was der Nutzer möchte und welcher Handler nötig ist: einfache Logik, Fachmodell oder Mensch; Thema, Komplexität und Risiko bestimmen, welches Sprachmodell die Anfrage erhält.</li><li><strong>Schutzprüfungen</strong> — Eingabe, Ausgabe und Werkzeugaufrufe eines Sprachmodells: eingeschleuste Anweisungen, Regelverstöße, Offenlegung persönlicher Daten.</li><li><strong>Support</strong> — Anfragegegenstand und Absicht, Dringlichkeit, Verärgerung, Abwanderungsrisiko, Rückerstattungswunsch, Warteschlange.</li><li><strong>Moderation</strong> — nach Plattformregeln: Toxizität, Belästigung, Spam, Betrug, gefährliche Ratschläge, persönliche Daten; abhängig von Schweregrad und Konfidenz 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 Reviews, semantische Codeprüfungen in CI.</li></ul><h4>Merkmale</h4><ul><li><strong><code>jev-latest</code></strong> — Alias der neuesten stabilen Version, derzeit Jev 1.13; die antwortende Version steht im Feld <code>model</code>, beispielsweise <code>jev-1.13.0</code>. Mit einer neuen Version wechselt der Alias zu ihr; Antworten können sich ohne Änderungen Ihrerseits verändern. Überwachen Sie dieses Feld, wenn Schwellenwerte auf eine Version abgestimmt sind.</li><li><strong>Kontext</strong> — 64K Tokens pro Anfrage: Zustand und alle Fragen zusammen; Zustand plus längste Frage bis zu 32K. Das Modell liest den Zustand einmal und prüft alle Fragen parallel gegen ihn.</li><li><strong>Eingabe</strong> — nur Text: String, JSON-Objekt oder Textarray. Bilder, Audio und Video werden noch nicht unterstützt — wandeln Sie sie vorher in Text um.</li><li><strong>Sprache</strong> — Haupttrainingssprache ist Englisch; darin ist die Genauigkeit derzeit am höchsten. Andere Sprachen, darunter Chinesisch, Japanisch und Koreanisch, werden akzeptiert, die Genauigkeit ist aber geringer — prüfen Sie anhand eigener 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 feinabgestimmt: Eigene Materialien gehören in <code>state</code>, Fachregeln in <code>instructions</code> und <code>criteria</code>.</li><li><strong>Daten</strong> — TypeSafe erklärt, dass Jev nicht mit Kundenanfragen und -antworten trainiert wird.</li></ul><h4>Bekannte Schwächen von Jev 1.13</h4><p>TypeSafe nennt die Schwächen der aktuellen Version offen und verspricht, viele in folgenden Versionen zu beheben. Das Modell ist schnell, kalibriert und urteilt gut mit gesundem Menschenverstand, aber:</p><ol><li><strong>Wörtliches Lesen.</strong> Es beantwortet die geschriebene Frage, nicht die gemeinte: Einschränkungen, Verneinungen und implizite Bedingungen werden wörtlich verstanden. Schreiben Sie die genaue Bedingung und Grenzfälle in <code>criteria</code>; teilen Sie unvermeidliche Interpretationen in zwei wörtliche Fragen auf.</li><li><strong>Kein Rechner.</strong> Das Zählen von Zeichen, Wiederholungen und Listenelementen ist unzuverlässig; der Fehler wächst mit dem Umfang. Zählen Sie im Code und stellen Sie eine Frage pro Kandidat. Farben in hex oder RGB versteht das Modell schlechter als Namen. <code>score</code> eignet sich für Schwellenwerte, nicht für eine genaue Zahl zwischen Stufen.</li><li><strong>Datum und Zeit.</strong> Welches Datum früher liegt, wie viel Zeit dazwischen liegt oder ob ein Datum in einen Zeitraum fällt, ist unzuverlässig, besonders bei gemischten Formaten und relativen Daten. Extrahieren Sie Datumsteile mit choice (mit einer Option „Nicht angegeben“) und vergleichen Sie im Code.</li><li><strong>Indirektheit.</strong> Doppelte Verneinungen und Fragen nach Eigenschaften von Eigenschaften verringern die Genauigkeit. Formulieren Sie direkt und benennen Sie Zustandsteile.</li><li><strong>Überflüssiger Zustand.</strong> Fremder Text verringert die Genauigkeit. Filtern Sie im Code; falls das nicht möglich ist, schließen Sie Irrelevantes mit noul-Fragen aus.</li><li><strong>Feindseliger Text.</strong> Das Modell erwartet standardmäßig keine Täuschungen im Zustand: Eine eingeschleuste Anweisung oder ein Text, der über seine eigene Klassifikation diskutiert, kann die Antwort verschieben. Formulieren Sie genaue Kriterien und prüfen Sie Grenzfälle vor dem Start.</li><li><strong>Widersprüche.</strong> Verlangen <code>instructions</code> und <code>criteria</code> Unterschiedliches — etwa wenn bei noul „Ja“ als „Nein“ beschrieben wird — sinkt die Genauigkeit. Kriterien sind eine Fortsetzung der Frage.</li><li><strong>Optionsreihenfolge.</strong> Manchmal neigt das Modell zur ersten choice-Option. Ordnen Sie die Optionen um und prüfen Sie, dass sich die Antwort nicht verändert.</li><li><strong>Generierung.</strong> Jev wurde nicht zum Schreiben von Text trainiert. Finden Sie Kandidaten für Datenextraktion mit einem regulären Ausdruck oder generativen Modell und lassen Sie Jev mit choice den richtigen auswählen.</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>Eingabetypen</dt><dd><code>text</code></dd></div><div><dt>Ausgabetypen</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, die null zulassen, für true/false; choice: Kriterienobjekt; score: nicht leeres Kriterienarray</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Feld\" scope=\"row\"><span class=\"card-cell-label\">Feld</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Typ\" data-field-type><span class=\"card-cell-label\">Typ</span><code>boolean|null</code></td><td data-cell-label=\"Anforderung\"><span class=\"card-cell-label\">Anforderung</span>Optional</td><td data-cell-label=\"Werte und Limits\"><span class=\"card-cell-label\">Werte und Limits</span><div>false, null</div></td><td data-cell-label=\"Standard\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standard</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinationen von Eingabematerialien</summary><p class=\"note-s\"><b>noul</b> · Erforderlich: state, questions.&lt;id&gt;.type=noul</p><p class=\"note-s\"><b>choice</b> · Erforderlich: state, questions.&lt;id&gt;.type=choice, criteria object</p><p class=\"note-s\"><b>score</b> · Erforderlich: state, questions.&lt;id&gt;.type=score, nonemptycriteriaarray</p></details><details class=\"note-s\" data-method-contract><summary>Methodenparameter und Lebenszyklus</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Vertrag</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>text</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>model, state, questions</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>optional_controls</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>null</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>content_type</code></th><td data-cell-label=\"Vertrag\"><span class=\"card-cell-label\">Vertrag</span>application/json</td></tr></tbody></table></div><p>Lebenszyklus: <code>exact retained published method</code></p><p class=\"note-s\">Methodenstrukturen und IDs sind exakt; die Fähigkeiten des Anbieters sind von der Zulassung einer Anfrage zu unterscheiden.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tarife</h3><h4>Ailoot-Methodentarife</h4><section class=\"meth\" data-route=\"Core\"><header><b><span class=\"alias\">Ailoot</span> System One</b><code>POST /v1/systemone</code></header><dl><div><dt>Eingabe</dt><dd>≈0,000084 $ <em>/ 1K</em></dd></div><div><dt>Ausgabe</dt><dd>0,00 $ <em>/ 1K</em></dd></div></dl></section><p class=\"note-s\">Ailoot reserviert vor einer Anfrage einen geschätzten Betrag. Nach dem Ergebnis rechnet Ailoot die endgültige Gebühr anhand des gemessenen Verbrauchs ab. Bei Streaming erfolgt die Abrechnung anhand des abschließenden Verbrauchsdatensatzes. <a href=\"/docs/de/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 bereitgestellten Fragen-ID, Wahrscheinlichkeit und Legende auf; die Konfidenzformel mit n erfordert n&gt;1, ohne damit eine API-Regel für eine Mindestanzahl von Auswahlmöglichkeiten festzulegen.</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 bereitgestellten Fragen-ID, Wahrscheinlichkeit und Legende auf; die Konfidenzformel mit n erfordert n>1, ohne damit eine API-Regel für eine Mindestanzahl von Auswahlmöglichkeiten festzulegen.",
              "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, die null zulassen, für true/false; choice: Kriterienobjekt; score: nicht leeres Kriterienarray",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "questions.<id>.criteria",
                "required": false,
                "type": "object|array|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  null
                ],
                "enum_known": true,
                "name": "stream",
                "required": false,
                "type": "boolean|null"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "stream=true",
              "duplicateandcase-variedcanonicalkeys"
            ]
          },
          "hints": [
            "Methodenstrukturen und IDs sind exakt; die Fähigkeiten des Anbieters sind von der Zulassung einer Anfrage zu unterscheiden."
          ],
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": [
              "model",
              "state",
              "questions"
            ]
          },
          "lifecycle": {
            "mode": "exact retained published method"
          },
          "method": {
            "http": "POST",
            "path": "/v1/systemone"
          },
          "operation_modes": [
            "systemone"
          ],
          "output": {
            "family": [
              "structured"
            ],
            "format": "structured decisions JSON",
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": 64000,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 customer message}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"jev-latest\", \"state\": \"\", \"questions\": {\"is_urgent\": {\"type\": \"noul\", \"instructions\": \"Does the supplied customer message express urgency?\"}}}')\nf=Path(os.environ[\"AILOOT_TEXT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 source material\")\ntext=f.read_text(encoding=\"utf-8\")\nif not text.strip():raise SystemExit(\"Source material must contain text\")\np[\"state\"]=text\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/systemone \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"result.json\").read_text()),ensure_ascii=False,indent=2))\nPY_RESULT\n",
            "label": "Classify your actual customer message",
            "language": "bash"
          }
        ],
        "family": "systemone",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "systemone",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": 0.084,
        "input": [
          "text"
        ],
        "label": "System One",
        "max_out": 0,
        "max_tool_calls": null,
        "out": 0,
        "output": [
          "structured"
        ],
        "path": "/v1/systemone",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.084,
                "amount_unit": "usd_per_million_tokens",
                "key": "in",
                "label": "Input",
                "side": "in"
              },
              {
                "amount": 0,
                "amount_unit": "usd_per_million_tokens",
                "key": "out",
                "label": "Output",
                "side": "out"
              }
            ]
          }
        ],
        "request_model_id": "jev-latest",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "token",
        "units": []
      }
    }
  ],
  "model_id": "jev-latest",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "8a026e3f61a250c8a9d62bafec6209b7e5a2c4f301b8d5927a3f7809f7add3ce",
    "input_html_sha256": "aaeac8bcd9387394628f854df81a65bbaecdab7f360b3de23254f3f0eeb83857",
    "private_audit_sha256": "d14701267ba73e1384f2e69c3355b05cd4dfcdb8ee61ba00e1c888029458d4ca",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/de/jev-latest/",
    "description": "Entscheidungsmodell von TypeSafe: Schreibt keinen Text, sondern beantwortet typisierte Fragen zu Text oder JSON — Optionsauswahl, Skalenbewertung oder „Ja/Nein“ mit Wahrscheinlichkeiten. Geeignet für Routing, Anfragensortierung, Moderation und Scoring; alle Fragen einer Anfrage werden parallel bewertet.",
    "locale": "de",
    "md_url": "https://ailoot.ai/models/de/jev-latest/index.md",
    "title": "jev-latest — Ailoot",
    "url": "https://ailoot.ai/models/de/jev-latest/"
  },
  "rawModel": {
    "about": "Jev ist das Flaggschiff 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 einen Satz von **Fragen** und erhalten typisierte Werte mit kalibrierten Wahrscheinlichkeiten zurück.\n\nSprachmodelle schreiben Worte für Menschen; Jev ist laut TypeSafe näher an Code: Die Antwort liegt sofort in der vom Code benötigten Form vor, mit hoher Geschwindigkeit und ohne Werte außerhalb der vorgegebenen Optionen. Das Modell ist darauf ausgelegt, bei wiederholten Anfragen stabile Antworten zu liefern.\n\n### Wie sich System One von einem Sprachmodell unterscheidet\n\n- **Keine Generierung.** Jev schreibt keine Nutzerantworten, keinen Code und erklärt keine Gedankengänge. Sie geben die möglichen Antworten durch einen von drei Fragetypen vor.\n- **Auf kalibrierte Entscheidungen trainiert.** TypeSafe trainiert das Modell mit RLCD (Reinforcement Learning for Calibrated Decisions): Wahrscheinlichkeiten werden an tatsächliche Ergebnisse angepasst und spiegeln Unsicherheit wider. Unter vielen Antworten mit einer Wahrscheinlichkeit von 0,8 sollten ungefähr 80% richtig sein. Kalibrierung ist eine Eigenschaft großer Stichproben, keine Garantie für eine einzelne Antwort.\n- **Anderes Trainingsziel.** Chatmodelle werden darauf trainiert, Menschen zu gefallen (RLHF); nach Beobachtung von TypeSafe begünstigt das Gefälligkeit und selbstsicher klingende Fehler. Einer der RLHF-Mitautoren, Diogo Almeida, ist Mitgründer von TypeSafe.\n\nDer Name verweist auf „System 1“ aus Daniel Kahnemans Buch „Schnelles Denken, langsames Denken“: schnelles intuitives Urteilen im Gegensatz zum langsamen bewussten Denken von „System 2“. Jev wurde für schnelle, eng umrissene Urteile entwickelt.\n\n### Drei Fragetypen\n\nEine Frage ist ein einzelnes Urteil über den Zustand; die Antwort ein Wert, den Code mit einem Schwellenwert vergleicht, sortiert oder weitergibt.\n\n1. **Choice — Optionsauswahl.** Zuständige Abteilung einer Anfrage, Produktkategorie, Sprache eines Codeabschnitts. Die Optionen sind ein Wörterbuch „Option → Beschreibung“ mit bis zu 255 Einträgen. Die Antwort enthält das gewählte `choice`, `probabilities` für alle Optionen (zusammen 1) und `confidence`. Deckt die Liste möglicherweise nicht alle Fälle ab, ergänzen Sie „Sonstiges“ oder „Keine der genannten Optionen“.\n2. **Score — Skalenbewertung.** Eine Position auf einer von Ihnen beschriebenen geordneten Skala: Fehlerschwere, Kundenverärgerung, Fähigkeitsniveau. Es gibt 2 bis 10 Stufen von der niedrigsten zur höchsten; jede Stufe wird separat bewertet, ohne dass das Modell ihre Nummer oder Nachbarstufen sieht. Die Antwort enthält `score` (die Summe der mit ihren Wahrscheinlichkeiten multiplizierten Stufennummern, sodass der Wert zwischen Stufen liegen kann), `legend` mit Stufenbeschreibungen, `probabilities` und `confidence`.\n3. **Noul — Ja oder Nein.** Ob eine Aussage zutrifft. Die Antwort `noul` ist die Wahrscheinlichkeit für „Ja“ von 0 bis 1: nahe 1 bedeutet ein sicheres „Ja“, nahe 0 ein sicheres „Nein“, nahe 0,5 schwankt das Modell. Ein separates `confidence` gibt es nicht: Eine Zahl beschreibt die Antwort vollständig. Optionales `criteria` präzisiert, was als „Ja“ und was als „Nein“ gelten soll.\n\nZur Auswahl: bekannte ungeordnete Optionen — choice; Abstufungen eines Spektrums — score; reines „Ja/Nein“, bei dem die Wahrscheinlichkeit selbst zählt — noul. Noul 0,5 bedeutet gleiche Chancen für „Ja“ und „Nein“, nicht eine „mittlere Stufe“: Den Grad misst score. Sind zwei Typen geeignet, wählen Sie denjenigen, anhand dessen der Code direkt handelt: choice für Verzweigungen, score für Schwellenwerte, noul für `if`.\n\nTypen lassen sich in einer Anfrage kombinieren. Die Antwort ist immer auf Ihre Optionen begrenzt und hängt nicht von anderen Fragen ab: 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 Dokumentabschnitt, ein Datenbankeintrag oder der Zustand Ihrer Anwendung.\n\n- **String** — für einen einzelnen Text: Nachricht, Artikel, Auszug.\n- **Objekt** — benannte Felder, verknüpfte Einträge, Anwendungszustand. TypeSafe empfiehlt Objekte für die meisten Anfragen: Jeder Teil hat einen verständlichen Namen.\n- **Array** — eine Folge von Nachrichten oder Einträgen.\n\nBereiten Sie den Zustand wie Material für Fachleute vor: Legen Sie Korrespondenz, Bestellung und Rückgaberegeln zusammen ab, wenn eine Entscheidung ihren Vergleich erfordert. Inhalte gehören in den Zustand, Urteile in die Fragen. Betrifft eine Frage einen Zustandsteil, nennen Sie den Pfad dazu in Backticks, beispielsweise `ticket.messages[0].text`.\n\n### Fragen formulieren\n\n- **Ein schnelles Urteil pro Frage.** Eine gute Frage kann eine fachkundige Person mit dem nötigen Kontext in einer Sekunde beantworten: „Enthält die Nachricht Dringlichkeit?“. „Analysiere die Nachricht und entscheide, was zu tun ist“ erfordert bereits langsames Reasoning und muss in einfache Fragen aufgeteilt werden.\n- **Die gesamte Frage gehört in `instructions`.** Der Frageschlüssel, etwa `refund_requested`, wird nur von Ihrem Code benötigt und nicht an das Modell übermittelt.\n- **Alle Fragen zu einem Zustand in einer Anfrage.** Das Modell bewertet sie parallel: Laut TypeSafe erhöhen zusätzliche Fragen die Antwortzeit kaum und kosten nur ihre eigenen Tokens. Eine Frage „für alle Fälle“ ist fast kostenlos — der Code entscheidet selbst, welche Antworten benötigt werden.\n- **Komplexe Urteile aufteilen.** Statt „Bewerte den Startup-Antrag“ fragen Sie getrennt nach Marktgröße, technischer Machbarkeit und Unterschieden zu Wettbewerbern und berechnen das Ergebnis im Code mit Gewichten. Ändern sich Prioritäten, ändern Sie Gewichte statt die Frage umzuschreiben.\n- **Abhängige Fragen in einer zweiten Anfrage.** Antworten einer Anfrage dienen einander nicht als Kontext. Eine zweite Anfrage ist nur nötig, wenn sie ohne die erste Antwort nicht aufgebaut werden kann: Daten müssen nachgeladen oder Optionen der nächsten Frage gewählt werden.\n- **Lange Fragen als Objekt.** `instructions` und `criteria` sind normalerweise Strings, können aber Objekte oder Arrays sein: Die Frage steht in einem Feld, Daten in anderen. So lässt sich etwa ein Lebenslauf mit Datenbankeinträgen in einer Frage abgleichen.\n\n### Konfidenz\n\nBei choice und score zeigt `confidence` von 0 bis 1, wie stark die Wahrscheinlichkeit auf eine Antwort konzentriert ist: 1 bedeutet alles auf einer Option, 0 eine gleichmäßige Verteilung auf alle. Bei score senkt eine benachbarte Stufe die Konfidenz weniger als eine entfernte. Bei noul ist der Wert selbst die Konfidenz: Je weiter er von 0,5 entfernt ist, desto entschiedener die Antwort.\n\nTypeSafe empfiehlt drei Bereiche:\n\n1. **Hohe Konfidenz** — automatisch handeln.\n2. **Mittlere** — vorsichtig handeln, beispielsweise den Nutzer um Bestätigung bitten.\n3. **Niedrige** — den Fall an einen Menschen weitergeben, die Anfrage präzisieren oder einen Ersatzweg verwenden, etwa ein leistungsfähigeres Reasoning-Modell.\n\nJe kostspieliger ein Fehler, desto strenger der Schwellenwert: Für irreversible Aktionen höher als für das Lesen. Die Antwort sagt, was gewählt werden soll, die Konfidenz, ob gehandelt werden sollte. Wählen Sie Schwellenwerte anhand eigener Daten und vergleichen Sie Konfidenz mit Genauigkeit.\n\n### Ein System um Jev aufbauen\n\nJev ist nicht auf Agenten ausgelegt, die selbst den nächsten Schritt wählen und in jeder Runde vom Weg abkommen können, sondern auf Programme, deren Ablauf vom Code gesteuert wird und in denen das Modell eng umrissene Bedeutungsfragen beantwortet. Acht Entwurfsschritte nach TypeSafe:\n\n1. Alles, was sich mit Code erledigen lässt, mit Code erledigen — zuverlässig und günstig.\n2. Nur das in den Zustand aufnehmen, was die aktuellen Fragen benötigen; neue Fakten aus der eigenen Wissensdatenbank beziehen, nicht aus dem Modellgedächtnis.\n3. Den Zustand strukturieren: verschachteltes JSON und in der Frage den Pfad zum benötigten Feld in Backticks, wenn das Mehrdeutigkeit verringert.\n4. Möglichst enge und konkrete Fragen — laut TypeSafe wohl die wichtigste Regel: Eine breite Frage versteckt mehrere Urteile in einer Antwort.\n5. Fragen strukturieren: Die Frage selbst ist kurz; Erklärungen, Beispiele und Datenbankwerte gehören in benachbarte Felder des Objekts `instructions` oder `criteria`, nicht in einen langen String.\n6. Viele unabhängige Fragen zu einem Zustand in einer Anfrage — mehr Nutzen pro Dollar.\n7. Antworten im Code zusammenführen: durch Regeln, eine gewichtete Summe oder als Merkmale für ein klassisches Machine-Learning-Modell.\n8. Nach Konfidenz verzweigen: Unsichere Fälle an Menschen oder ein Reasoning-Modell weitergeben.\n\nJev ist weder Chat noch Codevervollständigungsmodell und kann in einem Programmieragenten kein Sprachmodell ersetzen. 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 eine Million Mal ohne einen Menschen daneben ausgeführt werden.\n- **Echtzeit** — laut TypeSafe dauern die meisten Anfragen ungefähr 100 ms: genug für Verarbeitung im laufenden Betrieb und Oberflächen.\n- **Große Datenmengen** — Suche in riesigen Korpora, Annotation von Agentenlogs, Merkmale für Prognosen.\n- **Prüfung anderer Modelle** — Anfragen, Extraktionen, Reasoning und Werkzeugaufrufe: Umgehung von Einschränkungen, Zitierfehler, erfundene Inhalte.\n- **Suche und Ranking** — Relevanz eines Anfrage-Kandidaten-Paars, Reranking, Kontextauswahl.\n- **Verzweigung nach Absicht** — was der Nutzer möchte und welcher Handler nötig ist: einfache Logik, Fachmodell oder Mensch; Thema, Komplexität und Risiko bestimmen, welches Sprachmodell die Anfrage erhält.\n- **Schutzprüfungen** — Eingabe, Ausgabe und Werkzeugaufrufe eines Sprachmodells: eingeschleuste Anweisungen, Regelverstöße, Offenlegung persönlicher Daten.\n- **Support** — Anfragegegenstand und Absicht, Dringlichkeit, Verärgerung, Abwanderungsrisiko, Rückerstattungswunsch, Warteschlange.\n- **Moderation** — nach Plattformregeln: Toxizität, Belästigung, Spam, Betrug, gefährliche Ratschläge, persönliche Daten; abhängig von Schweregrad und Konfidenz 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 Reviews, semantische Codeprüfungen in CI.\n\n### Merkmale\n\n- **`jev-latest`** — Alias der neuesten stabilen Version, derzeit Jev 1.13; die antwortende Version steht im Feld `model`, beispielsweise `jev-1.13.0`. Mit einer neuen Version wechselt der Alias zu ihr; Antworten können sich ohne Änderungen Ihrerseits verändern. Überwachen Sie dieses Feld, wenn Schwellenwerte auf eine Version abgestimmt sind.\n- **Kontext** — 64K Tokens pro Anfrage: Zustand und alle Fragen zusammen; Zustand plus längste Frage bis zu 32K. Das Modell liest den Zustand einmal und prüft alle Fragen parallel gegen ihn.\n- **Eingabe** — nur Text: String, JSON-Objekt oder Textarray. Bilder, Audio und Video werden noch nicht unterstützt — wandeln Sie sie vorher in Text um.\n- **Sprache** — Haupttrainingssprache ist Englisch; darin ist die Genauigkeit derzeit am höchsten. Andere Sprachen, darunter Chinesisch, Japanisch und Koreanisch, werden akzeptiert, die Genauigkeit ist aber geringer — prüfen Sie anhand eigener 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 feinabgestimmt: Eigene Materialien gehören in `state`, Fachregeln in `instructions` und `criteria`.\n- **Daten** — TypeSafe erklärt, dass Jev nicht mit Kundenanfragen und -antworten trainiert wird.\n\n### Bekannte Schwächen von Jev 1.13\n\nTypeSafe nennt die Schwächen der aktuellen Version offen und verspricht, viele in folgenden Versionen zu beheben. Das Modell ist schnell, kalibriert und urteilt gut mit gesundem Menschenverstand, aber:\n\n1. **Wörtliches Lesen.** Es beantwortet die geschriebene Frage, nicht die gemeinte: Einschränkungen, Verneinungen und implizite Bedingungen werden wörtlich verstanden. Schreiben Sie die genaue Bedingung und Grenzfälle in `criteria`; teilen Sie unvermeidliche Interpretationen in zwei wörtliche Fragen auf.\n2. **Kein Rechner.** Das Zählen von Zeichen, Wiederholungen und Listenelementen ist unzuverlässig; der Fehler wächst mit dem Umfang. Zählen Sie im Code und stellen Sie eine Frage pro Kandidat. Farben in hex oder RGB versteht das Modell schlechter als Namen. `score` eignet sich für Schwellenwerte, nicht für eine genaue Zahl zwischen Stufen.\n3. **Datum und Zeit.** Welches Datum früher liegt, wie viel Zeit dazwischen liegt oder ob ein Datum in einen Zeitraum fällt, ist unzuverlässig, besonders bei gemischten Formaten und relativen Daten. Extrahieren Sie Datumsteile mit choice (mit einer Option „Nicht angegeben“) und vergleichen Sie im Code.\n4. **Indirektheit.** Doppelte Verneinungen und Fragen nach Eigenschaften von Eigenschaften verringern die Genauigkeit. Formulieren Sie direkt und benennen Sie Zustandsteile.\n5. **Überflüssiger Zustand.** Fremder Text verringert die Genauigkeit. Filtern Sie im Code; falls das nicht möglich ist, schließen Sie Irrelevantes mit noul-Fragen aus.\n6. **Feindseliger Text.** Das Modell erwartet standardmäßig keine Täuschungen im Zustand: Eine eingeschleuste Anweisung oder ein Text, der über seine eigene Klassifikation diskutiert, kann die Antwort verschieben. Formulieren Sie genaue Kriterien und prüfen Sie Grenzfälle vor dem Start.\n7. **Widersprüche.** Verlangen `instructions` und `criteria` Unterschiedliches — etwa wenn bei noul „Ja“ als „Nein“ beschrieben wird — sinkt die Genauigkeit. Kriterien sind eine Fortsetzung der Frage.\n8. **Optionsreihenfolge.** Manchmal neigt das Modell zur ersten choice-Option. Ordnen Sie die Optionen um und prüfen Sie, dass sich die Antwort nicht verändert.\n9. **Generierung.** Jev wurde nicht zum Schreiben von Text trainiert. Finden Sie Kandidaten für Datenextraktion mit einem regulären Ausdruck oder generativen Modell und lassen Sie Jev mit choice den richtigen auswählen.",
    "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 bereitgestellten Fragen-ID, Wahrscheinlichkeit und Legende auf; die Konfidenzformel mit n erfordert n>1, ohne damit eine API-Regel für eine Mindestanzahl von Auswahlmöglichkeiten festzulegen.",
              "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, die null zulassen, für true/false; choice: Kriterienobjekt; score: nicht leeres Kriterienarray",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "questions.<id>.criteria",
                "required": false,
                "type": "object|array|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  null
                ],
                "enum_known": true,
                "name": "stream",
                "required": false,
                "type": "boolean|null"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "stream=true",
              "duplicateandcase-variedcanonicalkeys"
            ]
          },
          "hints": [
            "Methodenstrukturen und IDs sind exakt; die Fähigkeiten des Anbieters sind von der Zulassung einer Anfrage zu unterscheiden."
          ],
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": [
              "model",
              "state",
              "questions"
            ]
          },
          "lifecycle": {
            "mode": "exact retained published method"
          },
          "method": {
            "http": "POST",
            "path": "/v1/systemone"
          },
          "operation_modes": [
            "systemone"
          ],
          "output": {
            "family": [
              "structured"
            ],
            "format": "structured decisions JSON",
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": 64000,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 customer message}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"jev-latest\", \"state\": \"\", \"questions\": {\"is_urgent\": {\"type\": \"noul\", \"instructions\": \"Does the supplied customer message express urgency?\"}}}')\nf=Path(os.environ[\"AILOOT_TEXT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 source material\")\ntext=f.read_text(encoding=\"utf-8\")\nif not text.strip():raise SystemExit(\"Source material must contain text\")\np[\"state\"]=text\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/systemone \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"result.json\").read_text()),ensure_ascii=False,indent=2))\nPY_RESULT\n",
            "label": "Classify your actual customer message",
            "language": "bash"
          }
        ],
        "family": "systemone",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "systemone",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": 0.084,
        "input": [
          "text"
        ],
        "label": "System One",
        "max_out": 0,
        "max_tool_calls": null,
        "out": 0,
        "output": [
          "structured"
        ],
        "path": "/v1/systemone",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.084,
                "amount_unit": "usd_per_million_tokens",
                "key": "in",
                "label": "Input",
                "side": "in"
              },
              {
                "amount": 0,
                "amount_unit": "usd_per_million_tokens",
                "key": "out",
                "label": "Output",
                "side": "out"
              }
            ]
          }
        ],
        "request_model_id": "jev-latest",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "token",
        "units": []
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "jev-latest",
        "request_model_id": "jev-latest",
        "route_label": "Core"
      }
    ],
    "name": "jev-latest",
    "price": {
      "in": 0.084,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "sort_in": 0.084,
      "sort_out": 0,
      "varies": false
    },
    "short": "Entscheidungsmodell von TypeSafe: Schreibt keinen Text, sondern beantwortet typisierte Fragen zu Text oder JSON — Optionsauswahl, Skalenbewertung oder „Ja/Nein“ mit Wahrscheinlichkeiten. Geeignet für Routing, Anfragensortierung, 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 — Optionsauswahl, Skalenbewertung oder „Ja/Nein“ mit Wahrscheinlichkeiten. Geeignet für Routing, Anfragensortierung, Moderation und Scoring; alle Fragen einer Anfrage werden parallel bewertet.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "ec384e888d87bfafa5215baa9b7802547844ce919a25905fa8ea78c55fe190c2",
    "renderer_sha256": "8bd3076b303b7b3aa4d961032854071403a471ec26a4f50c64e3a32556ea2925"
  },
  "sourceRevision": "800987d64c12d63acee21d293a725b00669fb6045ca6b05e45762ba1c05b837a"
}
