So nutzt du die Jev API
Jev stellt einen einzigen Endpoint bereit. Du sendest einen State und eine Reihe von Fragen; es gibt typisierte Antworten mit Wahrscheinlichkeiten zurück. Hier ist alles, was du für deinen ersten Aufruf brauchst.
1. Der Endpoint
Jede Anfrage ist ein POST an https://api.typesafe.ai/v1/systemone, authentifiziert mit einem Bearer-Token. Offizielle SDKs lesen deinen Key aus der Umgebungsvariable TYPESAFE_API_KEY.
curl -X POST https://api.typesafe.ai/v1/systemone \
-H "Authorization: Bearer $TYPESAFE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "jev-latest",
"state": "Customer: I was charged twice and I am furious.",
"questions": {
"topic": {
"type": "choice",
"instructions": "What is the issue about?",
"criteria": { "billing": "money problems", "bug": "broken product" }
},
"urgent": {
"type": "noul",
"instructions": "Escalate to a human now?"
}
}
}'2. Der Anfrage-Body
Drei Felder:
- model — jev-latest, oder pinne eine Version wie jev-1.13.0, wenn du Schwellenwerte feinjustierst.
- state — der Kontext, als String, JSON-Objekt oder Array von Text. Bis zu ~64k Tokens kombiniert mit deinen Fragen.
- questions — eine Map von Fragenamen zu Frage-Objekten. Sie werden alle in einem Round-Trip ausgewertet.
3. Die drei Fragetypen
choice — wähle eine Option
Gib eine criteria-Map von bis zu 255 benannten Optionen an. Jev gibt den Gewinner-Key, eine Wahrscheinlichkeit pro Option und eine Konfidenz zurück.
"topic": {
"type": "choice",
"instructions": "What is the primary issue?",
"criteria": {
"billing": "billing or payment problem",
"bug": "the product is broken",
"account": "login or access"
}
}score — Position auf einer Skala
Gib ein geordnetes criteria-Array mit 2–10 Stufenbeschreibungen an. Jev gibt einen (möglicherweise bruchteiligen) score plus die vollständige Verteilung zurück.
"severity": {
"type": "score",
"instructions": "How urgent is this?",
"criteria": [
"routine",
"handle today",
"urgent",
"critical, about to churn"
]
}noul — kalibriertes Ja/Nein
Keine criteria — nur Instructions. Jev gibt noul zurück, eine Wahrscheinlichkeit von 0 bis 1.
"escalate": {
"type": "noul",
"instructions": "Escalate to a human immediately?"
}4. Die Antwort
Du erhältst das aufgelöste Modell, eine answers-Map und den Token-Verbrauch zurück:
{
"model": "jev-1.13.0",
"answers": {
"topic": { "type": "choice", "choice": "billing",
"confidence": 1.0,
"probabilities": { "billing": 1.0, "bug": 0.0, "account": 0.0 } },
"severity": { "type": "score", "score": 3.0, "confidence": 1.0,
"legend": { "0": "routine", "3": "critical, about to churn" },
"probabilities": { "0": 0.0, "3": 1.0 } },
"escalate": { "type": "noul", "noul": 0.8 }
},
"usage": { "input_tokens": 434, "output_tokens": 75 }
}Weil die Typen festgelegt sind, kannst du mit einfachem Code auf die Ergebnisse verzweigen — if (answers.escalate.noul > 0.7) — ohne Parsing, ohne Regex und ohne Risiko einer fehlerhaften Antwort.
5. Limits & bewährte Praktiken
- Rate-Limits: 250,000 Tokens/Sekunde und 1,200 Requests/Minute.
- Kontext: bis zu 64k Tokens für state + alle Fragen; 32k für state + eine einzelne längste Frage.
- Pinne Versionen in der Produktion, wenn deine Schwellenwerte wichtig sind — jev-latest kann das Verhalten verschieben.
- Bündle Fragen in einem Aufruf statt in vielen; sie laufen parallel und teilen sich die State-Kosten.
- Nutze die Konfidenz, um die einfachen Fälle automatisch zu bearbeiten und nur die unsicheren an einen Menschen oder ein größeres Modell weiterzuleiten.
Suchst du einen einfacheren Zugang?
Offizieller Jev-Zugang ist über eine Warteliste geregelt. Wenn du einen einfacheren, gehosteten Weg möchtest, Jev aufzurufen — höhere Demo-Limits, fertige Endpoints, keine Warteliste — hinterlasse deine E-Mail und erzähle uns, was du bauen würdest. Wir loten die Nachfrage aus, bevor wir es bauen.
Willst du es sehen, bevor du Code schreibst? Jedes Beispiel auf dieser Seite läuft live im Playground. Für offizielle Keys und die vollständige Dokumentation siehe docs.typesafe.ai.