Die OpenAI Decisions API und TypeSafe’s Jev erledigen dieselbe Aufgabe: Eine Eingabe und eine Reihe von Fragen senden, getypte Antworten mit Wahrscheinlichkeiten anstelle von zu parsendem Text zurückerhalten und nur für Eingabe-Tokens bezahlen. Decisions kostet 0,10 $ pro 1 Mio. Eingabe-Tokens, befindet sich in der öffentlichen Beta, akzeptiert Text und Bilder und läuft auf GPT-6 Luna. Jev kostet 0,042 $ pro 1 Mio. Eingabe-Tokens, befindet sich im frühen Zugang hinter einem TypeSafe Konsolenkonto, ist nur für Text verfügbar und begrenzt jede Anfrage auf 64.000 Tokens.
Für die Grundlagen beginnen Sie mit was die Decisions API ist und wie man Jev verwendet. Dieser Beitrag vergleicht sie Zeile für Zeile und integriert dann beide in ein Apidog-Projekt hinter einer einzigen Konfidenzregel.
Direkter Vergleich
Jede Zelle stammt von den Anbieterseiten in den Referenzen.
| OpenAI Decisions API | TypeSafe Jev | |
|---|---|---|
| Endpunkt | POST /v1/decisions |
POST /v1/systemone |
| Modell | Nur gpt-6-luna |
jev-1.13.0 (jev-latest) |
| Status | öffentliche Beta, GA „in den kommenden Wochen“ | früher Zugang (Launch-Post), direkter Zugang über ein Konsolenkonto |
| Eingabe | Text + Bilder (Base64-Daten-URL; Referenz listet auch öffentliche URLs auf) | nur Text, 64k pro Anfrage |
| Fragetypen | predicate / choice (2 bis 255 Optionen) / score |
noul / choice / score |
| Fragenform | Array mit optionalem name |
Objekt, durch ID geschlüsselt |
| Ausgabefelder | probability; choice oder score + probabilities + confidence; refusal |
noul; choice oder score + confidence + probabilities |
| Preis | 0,10 $ pro 1 Mio. Eingabe, keine Ausgabegebühr | 0,042 $ pro 1 Mio. Eingabe, keine Ausgabegebühr |
| Caching | noch nicht verfügbar (OpenAI-Forum) | nicht veröffentlicht |
| Ratenbegrenzungen | pro-Organisation-Limits-Seite | 100K TPS / 80 RPS, dynamisch |
| Geschwindigkeitsangabe | „etwa 10x schneller als die Responses API“ (OpenAI) | 70 bis 500 ms Ende-zu-Ende (TypeSafe) |
| Daten | ZDR + HIPAA für berechtigte Kunden; US/EU-Residenz | ZDR für Unternehmen; nicht auf Anfragen trainiert |
Decisions ist ein Endpunkt, kein Modell; es läuft auf GPT-6 Luna. Jev ist TypeSafes „System One Modell“, trainiert mit RLCD, um kalibrierte Entscheidungen zurückzugeben, und kein allgemeines LLM.
Die gleiche Ticket-Routing-Anfrage in beiden Formen
Ein Support-Ticket kommt an; Sie möchten eine Abteilung und ein Ja/Nein, ob der Kunde eine Rückerstattung wünscht. Zuerst Decisions: Fragen sind ein Array, jede mit einem type, instructions und einem optionalen name, den die API zurückgibt.
curl https://api.openai.com/v1/decisions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-luna",
"input": "I was charged twice for my order.",
"questions": [
{
"type": "choice",
"name": "department",
"instructions": "Which team should handle this ticket?",
"choices": [
{"value": "billing", "description": "Charges, refunds"},
{"value": "technical", "description": "Bugs, errors"},
{"value": "other"}
]
},
{
"type": "predicate",
"name": "wants_refund",
"instructions": "Is the customer asking for money back?"
}
]
}'
Nun Jev: Das Eingabefeld ist state, die Fragen sind ein Objekt, das nach von Ihnen gewählten IDs geschlüsselt ist, choice nimmt eine criteria-Zuordnung von Option zu Beschreibung, und der Ja/Nein-Typ ist noul.
curl https://api.typesafe.ai/v1/systemone \
-H "Authorization: Bearer $TYPESAFE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "jev-latest",
"state": "I was charged twice for my order.",
"questions": {
"department": {
"type": "choice",
"instructions": "Which team should handle this ticket?",
"criteria": {
"billing": "Charges, refunds",
"technical": "Bugs, errors",
"other": "Anything else"
}
},
"wants_refund": {
"type": "noul",
"instructions": "Is the customer asking for money back?"
}
}
}'
Was zurückkommt
Decisions gibt model, answers und usage zurück. Antworten kommen in der Reihenfolge der Anfrage an, jede mit ihrem name; die Wahrscheinlichkeiten pro Option sind ein Array von Objekten. Beachten Sie output_tokens: 0.
{
"model": "gpt-6-luna",
"answers": [
{
"type": "choice",
"name": "department",
"choice": "billing",
"probabilities": [
{"value": "billing", "probability": 0.95},
{"value": "technical", "probability": 0.02},
{"value": "other", "probability": 0.03}
],
"confidence": 0.93
},
{"type": "predicate", "name": "wants_refund", "probability": 0.95}
],
"usage": {
"input_tokens": 42,
"input_tokens_details": {"cached_tokens": 0, "cache_write_tokens": 0},
"output_tokens": 0,
"output_tokens_details": {"reasoning_tokens": 0},
"total_tokens": 42
}
}
Jev gibt model (die versionierte ID), ein answers-Objekt, das durch Ihre Fragen-IDs geschlüsselt ist, und usage mit input_tokens und output_tokens zurück. Sie lesen answers.department.choice, dessen confidence und probabilities, die nach Optionsname geschlüsselt sind, sowie answers.wants_refund.noul. Nur auf der OpenAI-Seite kann eine refusal-Antwort pro Frage erscheinen, während die anderen weiterhin Antworten erhalten.
Preis pro Million und was eine Million Tickets kosten
OpenAIs Formulierung: Mit gpt-6-luna kosten Eingaben 0,10 $ pro 1 Mio. Tokens, ohne Gebühren für Cache-Lesen, Cache-Schreiben oder Ausgabe-Tokens. TypeSafe listet 0,042 $ pro 1 Mio. Eingabe-Tokens und kostenlose Ausgabe auf.
Nehmen Sie ein 500-Token-Ticket mit den beiden oben genannten Fragen:
- Decisions: 500 / 1.000.000 x 0,10 $ = 0,00005 $ pro Anfrage. Eine Million Tickets = 50 $.
- Jev: 500 / 1.000.000 x 0,042 $ = 0,000021 $ pro Anfrage. Eine Million Tickets = 21 $.
Zwei Multiplikatoren gelten auf der OpenAI-Seite: Eingaben mit langem Kontext (über 272.000 Tokens) sind 2x, also 0,20 $ pro 1 Mio., abgeleitet von der Preisseite, und regionale Verarbeitung fügt 10 % hinzu. Es ist kein Batch-, Flex- oder Fast-Tier für /v1/decisions dokumentiert, und laut OpenAI-Forum gibt es noch kein Prompt-Caching, obwohl usage die Felder cached_tokens und cache_write_tokens enthält. Jev veröffentlicht nichts über Caching.
Eingaben: Bilder auf der einen Seite, Text auf der anderen
Decisions akzeptiert einen String oder ein Array von Benutzernachrichten, die input_text- und input_image-Teile mischen. Der Leitfaden besagt, dass Bilder inline Base64-Daten-URLs sein müssen; die API-Referenz listet auch öffentliche HTTP(S)-URLs und bis zu 128 Bilder pro Anfrage auf, behandeln Sie Base64 also als den sicheren Weg und testen Sie gehostete URLs, bevor Sie sich darauf verlassen. file_id, Dateien und Audio werden nicht unterstützt.
Jev ist nur für Text: ein String, ein JSON-Objekt oder ein Array von Text, ohne Bild-, Audio- oder Videoeingabe gemäß der Modellseite von TypeSafe. Im OpenAI-Forum drückte es sam.saffron deutlich aus: Bildverständnis wird von Jev noch nicht unterstützt. Wenn Ihre Entscheidung von einem Foto abhängt, kann nur Decisions es berücksichtigen.
Kontext- und Ratenbegrenzungen
Jev veröffentlicht ein Limit von 64.000 Tokens pro Anfrage, davon 32.000 für state plus die längste Frage, und sagt, dass es den Status einmal aufnimmt und jede Frage parallel bewertet. Die Modellseite listet 100.000 Tokens pro Sekunde und 80 Anfragen pro Sekunde auf, die sich dynamisch anpassen, mit einer 429er-Fehlermeldung bei Überschreitung des Limits. Diese Zahlen haben sich seit September geändert, lesen Sie daher die aktuelle Seite.
OpenAI veröffentlicht keine Kontextfensterzahl und keine Decisions-spezifische Ratenbegrenzung; Lunas 1.050.000-Token-Fenster ist eine Modellseitenzahl, keine Endpunktzahl. Überprüfen Sie Einstellungen > Organisation > Limits (Ratenbegrenzungs-Leitfaden); unser Ratenbegrenzungs-Leitfaden behandelt die 429er-Behandlung auf beiden Seiten.
Status und Zugang
Decisions ging am 06.10.2026 in die öffentliche Beta, offen für alle Entwickler gemäß der Ankündigung; der Leitfaden besagt, dass OpenAI GA „in den kommenden Wochen“ erwartet, ohne Datum.
Jev befindet sich im frühen Zugang gemäß TypeSafes Launch-Post, der eine Warteliste erwähnt, und der direkte Zugang zu api.typesafe.ai ist hinter einem TypeSafe-Konsolenkonto geschützt; wie man auf Jev zugreift beschreibt die Routen und Jev API-Schlüssel behandelt die Schlüsselerstellung. Die zweite Route ist Vercel AI Gateway, wo Jev typesafe-ai/jev ist, aufgerufen über experimental_evaluate im AI SDK (7.0.105 oder höher), gemäß dem Vercel Changelog; Vercels Evaluierungsdokumentation besagt, dass es nicht am OpenAI-kompatiblen Endpunkt des Gateways verfügbar ist, und dort ist der Ja/Nein-Typ boolean, der die Wahrscheinlichkeit von wahr zurückgibt.
Datenkontrollen
OpenAI gibt an, dass Decisions Zero Data Retention und HIPAA-Nutzung für berechtigte Kunden unterstützt, mit Datenresidenz und regionaler Verarbeitung in den Vereinigten Staaten und Europa (EWR plus Schweiz); die Datenschutzseite fügt hinzu, dass Missbrauchsüberwachungsprotokolle für /v1/decisions standardmäßig bis zu 30 Tage aufbewahrt werden. TypeSafe gibt an, dass Jev nicht auf Kundenanfragen oder -antworten trainiert wird, ZDR für Unternehmenskunden anbietet und dieselben Gewichte für jedes Konto verwendet.
Keiner der Anbieter veröffentlicht Genauigkeits- oder Kalibrierungsdaten; OpenAIs Leitfaden empfiehlt, Schwellenwerte anhand eigener gelabelter Beispiele festzulegen, und das gilt auch für Jev.
Geschwindigkeit, dann die Wahl
OpenAI sagt, Decisions sei etwa 10x schneller als die Responses API und veröffentlicht keine absolute Latenzzeit; ein Entwickler im OpenAI-Forum berichtete von Bild-Input-Entscheidungen in etwa 0,8 Sekunden bei langsamer Verbindung. TypeSafe gibt für Jev 70 ms bis 500 ms End-to-End an. Dies sind keine vergleichbaren Messungen, also messen Sie beide an Ihren eigenen Tickets.
Wählen Sie Decisions, wenn die Eingabe Bilder enthält, wenn Sie bereits OpenAI nutzen und einen Schlüssel und eine Rechnung wünschen, oder wenn Sie HIPAA-Abdeckung unter einem OpenAI BAA benötigen. Wählen Sie Jev, wenn die Eingabe Text ist, wenn der niedrigere Preis pro Token bei Ihrem Volumen wichtig ist, oder wenn Sie bereits das Vercel AI Gateway nutzen.
Beide für ein paar Wochen zu betreiben ist sinnvoll: Bewerten Sie jede mit demselben gelabelten Datensatz, behalten Sie die bessere Schwellenwertkurve und halten Sie die andere als Fallback bereit. Wenn die eigentliche Frage Decisions versus ein Structured Outputs Label ist, siehe Decisions vs. Responses; wenn keiner der Anbieter Ihre Datenrichtlinie erfüllt, gibt es Open-Source-Jev-Alternativen.
Beide in einem Apidog-Projekt testen
Zwei Umgebungen. Erstellen Sie OpenAI mit OPENAI_API_KEY und TypeSafe mit TYPESAFE_API_KEY, jeweils mit dem Wert im lokalen Feld, sodass er niemals mit dem Team synchronisiert wird (Umgebungen und geheime Variablen behandelt den Gültigkeitsbereich).
Zwei gespeicherte Anfragen. POST https://api.openai.com/v1/decisions mit Bearer {{OPENAI_API_KEY}} und dem ersten oben genannten Body; POST https://api.typesafe.ai/v1/systemone mit Bearer {{TYPESAFE_API_KEY}} und dem zweiten.
Eine Assertionsregel, zweimal angewendet. Die Geschäftsregel: Vertrauen über 0,8 leitet das Ticket automatisch weiter, alles darunter geht in eine Überprüfungswarteschlange. Bei der Decisions-Anfrage behaupten Sie Status 200, $.answers[0].choice gleich billing, $.answers[0].confidence größer als 0,8 und $.usage.output_tokens gleich 0. Bei der Jev-Anfrage behaupten Sie $.answers.department.choice gleich billing und $.answers.department.confidence größer als 0,8.
Ein datengesteuertes Szenario. Legen Sie zwanzig gelabelte Tickets in eine CSV-Datei mit der erwarteten Abteilung, führen Sie beide Anfragen als Testszenario darüber aus und sehen Sie, welche API-Konfidenz bei den mehrdeutigen Zeilen unter 0,8 fällt. So wählen Sie Schwellenwerte aus, und es fängt eine Modelländerung ab, bevor Tickets falsch weitergeleitet werden.
Beide Formen simulieren. Speichern Sie eine Decisions-Antwort und eine Jev-Antwort als Mocks, damit das Frontend mit einem stabilen answers-Array und answers-Objekt erstellt werden kann; bedingte API-Antworten simulieren gibt den Fall mit geringem Vertrauen auf Abruf zurück, um den Überprüfungswarteschlangen-Zweig zu testen.
In CI ausführen. Führen Sie das Szenario mit der Apidog CLI (apidog run mit dem cli- oder junit-Reporter) bei jeder Bereitstellung aus, sodass eine Feldänderung bei GA oder ein jev-latest-Update den Build rot werden lässt, nicht die Support-Warteschlange. Laden Sie Apidog herunter, um dies einzurichten.
FAQ
Ist Jev ein LLM wie GPT-6 Luna? Nein. TypeSafe beschreibt Jev als ein System One Modell, das mit RLCD trainiert wurde, um kalibrierte Entscheidungen zurückzugeben; es generiert keinen Text. Decisions ist ein Endpunkt auf dem Allzweckmodell Luna.
Hat OpenAI die Decisions API als Reaktion auf Jev entwickelt? OpenAIs Seiten sagen das nicht, und wir behaupten es auch nicht. Beide verfolgen dieselbe Idee: getypte Antworten mit Wahrscheinlichkeiten, abgerechnet nach Eingabe.
Welches ist günstiger? Jev, mit 0,042 $ pro 1 Mio. Eingabe-Tokens gegenüber 0,10 $; bei einer Million 500-Token-Tickets 21 $ gegenüber 50 $.
Kann eines der beiden mein eigenes JSON-Schema zurückgeben? Nein. Beide geben feste Antwortformen zurück; für extrahierte Felder oder eine schriftliche Erklärung verwenden Sie Structured Outputs auf der Responses API.
Nächster Schritt
Senden Sie die beiden obigen Curl-Anfragen mit demselben Ticket, speichern Sie beide in Apidog und fügen Sie jeder die 0,8-Konfidenzassertion hinzu. Tauschen Sie dann zwanzig Ihrer eigenen Tickets ein und sehen Sie, welche API Ihren Schwellenwert häufiger überschreitet. Der Anleitungsleitfaden enthält die Python- und JavaScript-Versionen.
