Wie man einen Jev API Schlüssel erhält (TypeSafe AI)?

Schritt-für-Schritt: Erstellen Sie ein TypeSafe AI-Konto und einen Jev API-Schlüssel, stellen Sie Ihre erste Entscheidungsanfrage mit curl und dem Python SDK, lesen Sie die Wahrscheinlichkeitsfelder und speichern, prüfen und simulieren Sie die Anfrage in Apidog.

INEZA Felin-Michel

INEZA Felin-Michel

18 September 2026

Wie man einen Jev API Schlüssel erhält (TypeSafe AI)?

Apidog für Unternehmen

On-Premises Bereitstellung

SSO & RBAC

SOC 2 konform

Apidog Enterprise entdecken

Jev ist das Entscheidungsmodell von TypeSafe AI. Sie senden ihm einen Teil des Zustands und eine Reihe von typisierten Fragen, und es antwortet mit Wahrscheinlichkeiten anstelle von Prosa. Dieser Leitfaden behandelt den Jev API-Schlüssel und Ihre erste Anfrage; für den Hintergrund, was Jev ist und warum es Zahlen anstelle von Text zurückgibt, lesen Sie zuerst was Jev ist. Zur Klarstellung, da die Suchergebnisse unübersichtlich sind: Dies ist Jev das TypeSafe AI-Modell, nicht FaZe Jev der YouTuber und auch nicht der JEV-Impfstoff.

Ein Jev API-Schlüssel funktioniert wie jeder andere Bearer-Token. Wenn Sie neu in diesem Muster sind, behandelt was ein API-Schlüssel ist die Grundlagen. Der direkte API-Zugriff befindet sich im Early Access, daher ist Schritt eins, von der Warteliste zu kommen. Danach erstellen Sie den Schlüssel, lernen die Anfrageform kennen, rufen den Endpunkt mit curl und dem Python SDK auf, lesen die Wahrscheinlichkeitsfelder und verdrahten die Anfrage in Apidog mit Zusicherungen auf diese Wahrscheinlichkeiten. Wenn Sie nicht warten können, ist dasselbe Modell im Vercel AI Gateway ohne Warteliste verfügbar; die FAQ behandelt diesen Weg.

Schaltfläche

Schritt 1: Early Access erhalten, dann den Schlüssel erstellen

Jev befindet sich zum Zeitpunkt der Erstellung dieses Artikels im Early Access. In TypeSafes Startbeitrag heißt es, dass sie „Entwickler so schnell wie möglich von der Warteliste holen“, melden Sie sich also auf typesafe.ai für die Warteliste an und warten Sie auf die Konsoleneinladung; es gibt noch keine Self-Service-Anmeldung. Sobald Ihr Konsolenkonto aktiv ist, gehen Sie zu console.typesafe.ai/settings/keys und erstellen Sie einen Schlüssel. Kopieren Sie ihn einmal und behandeln Sie ihn wie ein Passwort.

Exportieren Sie ihn als Umgebungsvariable, anstatt ihn in den Code einzufügen:

export TYPESAFE_API_KEY="ts_..."

Die offiziellen curl-Beispiele und das Python SDK lesen beide TYPESAFE_API_KEY aus der Umgebung, sodass eine Variable jedes Beispiel unten abdeckt. Sollte ein Schlüssel jemals in einem Commit landen, rotieren Sie ihn in der Konsole und führen Sie eine API-Schlüssel-Leck-Prüfung im gesamten Repository durch.

Schritt 2: die Form der Anfrage verstehen

Jeder Jev-Aufruf ist ein einzelner POST https://api.typesafe.ai/v1/systemone mit drei Body-Feldern, die in der TypeSafe API-Referenz dokumentiert sind:

Feld Typ Was es ist
model String jev-latest (löst heute zu jev-1.13.0 auf) oder jev-preview für den neuesten Build
state String, Objekt oder Array Der zu bewertende Inhalt: ein Ticket, ein JSON-Datensatz, ein Nachrichtenverlauf
questions Map von Name zu Frage Die typisierten Fragen, die Jev anhand des Zustands beantwortet

Jede Frage ist eines von drei Primitiven:

Primitiv Anfragekriterien Antwortfelder
noul (Ja/Nein) optional {"true": "...", "false": "..."} noul: 0 (Nein) bis 1 (Ja)
choice erforderliche Map von Option zu Beschreibung, bis zu 255 Optionen choice, confidence, probabilities pro Option
score erforderliches geordnetes Array von 2 bis 10 Levelbeschreibungen score, confidence, legend, probabilities pro Level

Die Antwort enthält auch model und usage.input_tokens / usage.output_tokens. Fragen unterschiedlicher Typen können einen Zustand teilen und in einem einzigen Roundtrip zurückgegeben werden.

Schritt 3: die erste Anfrage mit curl stellen

Diese Anfrage führt alle drei Primitive gegen ein Support-Ticket aus:

curl https://api.typesafe.ai/v1/systemone \
  -H "Authorization: Bearer $TYPESAFE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jev-latest",
    "state": "My card was charged twice for one order and nobody has replied in three days.",
    "questions": {
      "needs_review": {
        "type": "noul",
        "instructions": "Does this ticket need a human agent?",
        "criteria": {
          "true": "money, legal, or an unanswered complaint",
          "false": "a routine question a bot can close"
        }
      },
      "route": {
        "type": "choice",
        "instructions": "Route this ticket to a team.",
        "criteria": {
          "billing": "payment or charge problems",
          "shipping": "delivery problems",
          "technical": "application bugs"
        }
      },
      "urgency": {
        "type": "score",
        "instructions": "How urgent is this ticket?",
        "criteria": ["low", "medium", "high"]
      }
    }
  }'

Eine Antwort sieht so aus (Werte sind beispielhaft):

{
  "model": "jev-1.13.0",
  "answers": {
    "needs_review": { "type": "noul", "noul": 0.97 },
    "route": {
      "type": "choice",
      "choice": "billing",
      "confidence": 0.98,
      "probabilities": { "billing": 0.98, "shipping": 0.01, "technical": 0.01 }
    },
    "urgency": {
      "type": "score",
      "score": 1.6,
      "confidence": 0.62,
      "legend": { "0": "low", "1": "medium", "2": "high" },
      "probabilities": { "0": 0.02, "1": 0.36, "2": 0.62 }
    }
  },
  "usage": { "input_tokens": 190, "output_tokens": 0 }
}

Schritt 4: die Wahrscheinlichkeitsfelder lesen

Lesen Sie die Zahlen genau:

Da die Ausgabe eine Verteilung und kein Label ist, legen Sie den Schwellenwert fest, nicht das Modell. Deshalb testen die Zusicherungen in Schritt 6 Zahlen.

Schritt 5: derselbe Aufruf mit dem Python SDK

Installieren Sie das SDK; der Client liest TYPESAFE_API_KEY aus der Umgebung aus:

pip install typesafe-sdk
from typesafe_sdk import Choice, Noul, Score, TypeSafeClient

with TypeSafeClient() as client:
    response = client.system_one(
        state="My card was charged twice for one order and nobody has replied in three days.",
        questions={
            "needs_review": Noul(
                instructions="Does this ticket need a human agent?",
                criteria={"true": "money, legal, or an unanswered complaint",
                          "false": "a routine question a bot can close"},
            ),
            "route": Choice(
                instructions="Route this ticket to a team.",
                criteria={"billing": "payment or charge problems",
                          "shipping": "delivery problems",
                          "technical": "application bugs"},
            ),
            "urgency": Score(
                instructions="How urgent is this ticket?",
                criteria=["low", "medium", "high"],
            ),
        },
    )

print(response.nouls["needs_review"].noul)
print(response.choices["route"].choice, response.choices["route"].probabilities)
print(response.scores["urgency"].score)

Antworten werden auf dem Antwortobjekt nach Typ gruppiert (nouls, choices, scores). Es gibt ein JavaScript SDK mit derselben Struktur, und wenn Sie bereits Vercel AI Gateway nutzen, ruft experimental_evaluate aus AI SDK 7 das Modell als typesafe-ai/jev auf, mit einem Unterschied: Der boolesche Fragetyp gibt ein probability-Feld anstelle von noul zurück.

Schritt 6: den Jev API-Schlüssel in Apidog speichern und testen

Curl beweist, dass der Schlüssel einmal funktioniert. Apidog macht die Anfrage für das gesamte Team wiederholbar, überprüfbar und mockbar.

Speichern Sie den Schlüssel als geheime Variable. Erstellen Sie eine Umgebung namens TypeSafe und fügen Sie TYPESAFE_API_KEY als Geheimnis hinzu, damit sein Wert in der Benutzeroberfläche und bei Exporten maskiert bleibt; Apidog-Umgebungen und geheime Variablen erklärt die Einrichtung. Setzen Sie die Authentifizierung der Anfrage auf Bearer Token mit {{TYPESAFE_API_KEY}} als Wert.

Erstellen Sie die POST-Anfrage. Fügen Sie eine POST-Anfrage an https://api.typesafe.ai/v1/systemone hinzu, fügen Sie den JSON-Body aus Schritt 3 ein und senden Sie sie ab. Das Antwortpanel rendert den Antwortbaum, sodass Sie die Wahrscheinlichkeiten überprüfen können, bevor Sie eine Zusicherung schreiben.

Prüfen Sie Wahrscheinlichkeiten, nicht Prosa. Im visuellen Zusicherungs-Builder zeigen Sie JSONPath-Ausdrücke auf die Felder, die Sie interessieren:

Wenn Sie Skripte bevorzugen, akzeptiert der Post-Prozessor die bekannte pm-API:

const body = pm.response.json();
pm.test("ticket flagged for a human", () => {
  pm.expect(body.answers.needs_review.noul).to.be.above(0.9);
});
pm.test("routed to billing", () => {
  pm.expect(body.answers.route.choice).to.eql("billing");
});

Speichern Sie es als Testszenario. Fügen Sie die Anfrage in ein Testszenario mit einer kleinen CSV-Datei von Tickets und erwarteten Routen ein und führen Sie es bei jeder Änderung Ihrer Anweisungen oder Kriterien aus. Prompt-Bearbeitungen sind Codeänderungen; ein Zehn-Zeilen-Szenario fängt die Bearbeitung ab, die leise eine 0.95 auf 0.6 verschiebt. Dasselbe Szenario läuft in CI über die Apidog CLI, sodass eine Regression das Mergen blockiert.

Simulieren Sie die deklarierte Antwortform. Definieren Sie das Antwortschema am Endpunkt (die drei Antwortobjekte plus usage), und Apidogs Smart Mock liefert sofort realistische gefälschte Wahrscheinlichkeiten. Das Frontend kann das „Review erforderlich“-Badge und die Routing-UI anhand des Mocks erstellen, bevor das Backend ausgeliefert wird, und dann die Mock-URL mit einer Umgebungsänderung gegen den echten Endpunkt austauschen.

Für die Planung der Plätze: Der kostenlose Plan von Apidog beinhaltet 4 Benutzer, und kostenpflichtige Stufen sind pro Platz.

Schwellenwerte im Code

Sobald die Zusicherungen erfolgreich sind, treiben dieselben Zahlen die Produktionslogik an. Halten Sie Schwellenwerte an einem Ort und benennen Sie sie:

REVIEW_THRESHOLD = 0.9
AUTO_ROUTE_CONFIDENCE = 0.85

needs_review = response.nouls["needs_review"].noul >= REVIEW_THRESHOLD
route = response.choices["route"]

if route.confidence >= AUTO_ROUTE_CONFIDENCE and not needs_review:
    assign(ticket, team=route.choice)
else:
    queue_for_human(ticket, suggested=route.choice)

Protokollieren Sie die vollständige probabilities-Map bei jeder Entscheidung, damit Sie Schwellenwerte später anhand realer Daten anpassen können, und machen Sie die menschliche Überprüfung zum Standard, wenn die Konfidenz niedrig ist; das Modell sagt Ihnen, dass es sich nicht sicher ist.

Limits, Preise und Modelle

Direkt von der TypeSafe-Modellseite:

Punkt Wert
Preis 0,042 $ pro Million Input-Tokens; Output-Tokens werden nicht berechnet
Ratenbegrenzungen 250.000 Tokens pro Sekunde und 1.200 Anfragen pro Minute, dynamisch angepasst unter Last
Kontext 64k Tokens pro Anfrage; 32k für den Zustand plus die längste einzelne Frage
Eingabe Nur Text: ein String, JSON-Objekt oder Array. Keine Bilder, Audio oder Video
Sprache Englisch liefert die beste Genauigkeit; andere Sprachen funktionieren, aber nicht gleichermaßen gut
Aliase jev-latest ist der stabile Standard; jev-preview verfolgt die neueste Version

Zu diesem Preis kosten eine Million kurzer Tickets weniger als 10 $. TypeSafe gibt auch an, dass Jev nicht auf Kundenanfragen oder -antworten trainiert wird.

Häufige Fehler und wie man sie behebt

Status Bedeutung Lösung
401 Nicht autorisiert Fehlender oder ungültiger API-Schlüssel Überprüfen Sie den Authorization: Bearer-Header und stellen Sie sicher, dass die Umgebungsvariable in der Shell oder Umgebung, aus der Sie ausführen, gesetzt ist
422 Unverarbeitbare Entität Anfragekörper konnte nicht validiert werden Häufige Ursachen: ein choice ohne criteria, ein score mit weniger als 2 Levels, ein falsch geschriebener type oder questions als Array anstelle einer Map gesendet
429 Zu viele Anfragen Ratenbegrenzung überschritten Mit Jitter zurückweichen und wiederholen; mehrere Fragen in einer Anfrage bündeln, um die Anzahl der Anfragen zu reduzieren
529 Überlastet TypeSafe ist vorübergehend überlastet Mit exponentiellem Backoff wiederholen; die Anfrage kann sicher wiederholt werden

Ein 422er Fehler ist derjenige, auf den Sie beim Iterieren am häufigsten stoßen werden; das Endpunktschema aus Schritt 6 fängt die meisten davon ab, bevor die Anfrage Ihren Rechner verlässt.

FAQ

Gibt es eine kostenlose Stufe für die Jev API? Die öffentlichen Dokumente listen die Token-basierte Preisgestaltung auf und beschreiben keine kostenlose Stufe oder Startguthaben, und der Zugang selbst ist derzeit mit einer Warteliste versehen. Überprüfen Sie die Konsole, sobald Ihre Einladung eintrifft, um das aktuelle Angebot zu sehen, und betrachten Sie jede andere Zahl, die Sie anderswo sehen, als inoffiziell.

Kann ich mehrere Antworten mit einer Anfrage erhalten? Ja. questions ist eine Map, sodass ein Noul, eine Choice und ein Score alle in einem einzigen Aufruf gegen einen Zustand ausgeführt werden können. Das ist günstiger als drei Anfragen und hält die Antworten konsistent, da sie eine Eingabe teilen.

Wie unterscheidet sich das von strukturierten Ausgaben eines Chat-Modells? Strukturierte Ausgaben zwingen ein Sprachmodell, gültiges JSON auszugeben, aber die Werte darin sind immer noch generierte Tokens, und ein „confidence“-Feld ist Text, den das Modell über sich selbst geschrieben hat. Jev gibt gemessene Wahrscheinlichkeiten als native Ausgabe zurück, weshalb Sie noul > 0.9 zusichern und dem Vergleich vertrauen können.

Benötige ich das SDK von TypeSafe, wenn ich Vercel nutze? Nein. Das Vercel AI SDK stellt Jev über experimental_evaluate mit typesafe-ai/jev als Modell-ID bereit. Sie authentifizieren sich mit Ihrem AI Gateway-Schlüssel anstelle eines TypeSafe-Schlüssels, und die boolesche Antwort wird als probability zurückgegeben.

Nächste Schritte

Sie haben jetzt einen Jev API-Schlüssel, eine funktionierende Anfrage in curl und Python und ein klares Verständnis von noul, choice und score. Fügen Sie die Anfrage in Apidog ein, fügen Sie die Wahrscheinlichkeitszusicherungen hinzu und speichern Sie das Testszenario, damit Prompt-Bearbeitungen wie Code getestet werden. Laden Sie Apidog herunter, um mitzumachen.

Praktizieren Sie API Design-First in Apidog

Entdecken Sie eine einfachere Möglichkeit, APIs zu erstellen und zu nutzen