Entwicklerleitfaden
Jev-SDK-Leitfaden
Integration auf dieser Site? Starten Sie mit dem gehosteten API-Leitfaden und Prepaid-Preisen. Diese Seite erklaert Choice / Score / Noul und Hintergrundzugang — nicht der Hauptweg zu einem jv_live_-Schluessel.
Konzeptschicht: Primitive, Preise, Implementierungshinweise. Fuer fertige Calls gegen unseren Endpoint siehe Getting-Started-Beitrag und die gehostete API-Doku.
Zugang
Schnellster Weg hier: anmelden, Pack kaufen, jv_live_ anlegen, POST an /api/v1/decide. Upstream-TypeSafe-Keys bleiben auf unseren Servern. Warteliste und Gateways sind optional.
Zugangsoptionen
- Gehostet auf dieser Site (empfohlen): Preise + Konto — Prepaid-Tokens und jv_live_-Keys fuer /api/v1/decide und Tools.
- Offiziell / Gateways: TypeSafe-Warteliste auf typesafe.ai, plus OpenRouter, Vercel AI Gateway und Cloudflare AI, falls Sie dort bereits abrechnen.
Wichtige Einschraenkung: Keine herunterladbare Modelldatei. Kein lokales Self-Hosting. Alle Inferenz laeuft in der Cloud.
Preishinweis
Input-Tokens kosten 0,042 USD pro Million Tokens. Output-Tokens sind vollständig gratis. Jev-Entscheidungsoutputs werden laut TypeSafe-Tarif nicht extra berechnet.
Gateways können Aufschläge oder andere Abrechnungseinheiten haben. Prüfen Sie deren Preisseite vor Produktionsschätzungen. Siehe auch Preis-FAQ.
Drei Kern-Primitive von Jev
Jev-Anfragen bestehen aus drei primitiven Fragetypen. Jede Anfrage sendet state (Eingabekontext oder Programmdaten) plus typisierte Fragen. Jev liefert strukturierte typisierte Ergebnisse mit kalibrierten Wahrscheinlichkeiten.
- Choice: Wählen Sie eine Antwort aus vordefinierten Optionen. Typisch für Agent-Routing und Klassifikation.
- Score: Numerische Position auf einer Skala oder Rubrik. Typisch für Risiko-Scoring und Schweregrad.
- Noul: Wahrscheinlichkeit für Ja/Nein-Urteil. Typisch für Moderations-Gates und boolesche Filter.
Kurzdefinitionen auch im Glossar.
Installation
Es gibt kein verpflichtendes offizielles npm-/pip-Paket nur für eine Anfrage. Minimal ist HTTP-POST zum System-One-Endpoint. Node.js 18+ nutzt eingebautes fetch. Für Python installieren Sie requests:
pip install requestsBei Jev über OpenRouter: dokumentierte Decisions-API und eigener Schlüssel. Keine erfundenen Paketnamen wie @typesafe/jev-sdk.
# Store keys outside source control
export JEV_API_KEY="YOUR_API_KEY"
# Or, when calling through OpenRouter:
# export OPENROUTER_API_KEY="YOUR_OPENROUTER_KEY"Minimales vollständiges API-Request-JSON
Endpoint in den Beispielen: POST https://jevtypesafe.org/api/v1/decide. Pfad und Feldnamen vor Produktionsstart mit TypeSafe-Docs abgleichen.
{
"state": "Customer message: my order has not arrived",
"questions": {
"ticket_routing": {
"type": "choice",
"options": ["support", "logistics", "billing"]
},
"is_urgent": {
"type": "noul"
},
"severity_level": {
"type": "score",
"criteria": ["calm", "frustrated", "angry"]
}
}
}Kopierbare API-Beispiele
Minimale Community-Beispiele mit Raw HTTP, kein offizielles SDK. Ersetzen Sie die Umgebungsvariable durch einen echten Schlüssel von Warteliste oder Gateway.
Node.js
// Minimal raw API call — hosted decide on this site
// Replace with a jv_live_ key from Account
async function callJev() {
const apiKey = process.env.JEV_API_KEY;
const payload = {
state: "Customer message: my order has not arrived",
questions: {
ticket_routing: {
type: "choice",
instructions: "Route this ticket",
criteria: { support: "product help", logistics: "shipping", billing: "payment" },
},
},
};
const res = await fetch("https://jevtypesafe.org/api/v1/decide", {
method: "POST",
headers: {
Authorization: `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify(payload),
});
if (!res.ok) {
throw new Error(`Jev request failed: ${res.status}`);
}
return res.json();
}Python
# Minimal raw API call — hosted decide on this site
# Requires: pip install requests
# Replace with a jv_live_ key from Account
import os
import requests
def call_jev():
api_key = os.environ["JEV_API_KEY"]
payload = {
"state": "Customer message: my order has not arrived",
"questions": {
"ticket_routing": {
"type": "choice",
"instructions": "Route this ticket",
"criteria": {"support": "product help", "logistics": "shipping", "billing": "payment"},
}
},
}
response = requests.post(
"https://jevtypesafe.org/api/v1/decide",
headers={
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
},
json=payload,
timeout=30,
)
response.raise_for_status()
return response.json()SDK Best Practices
- API-Schlüssel in Umgebungsvariablen, nie im Frontend.
- Caching für wiederholte Entscheidungen, weniger Aufrufe und Kosten.
- Retry-Logik bei transienten Netzwerkfehlern.
- Eingabe-Schemas vor dem Senden validieren.
- Choice / Score / Noul statt Freitext-Prompts für Automatisierung.
Implementierungshinweise
Cache nach Entscheidungsidentität, nicht Rohtext-Prompt
Hash aus Fragesatz und normalisierten State-Feldern. Gleiche Routing-Entscheidung → vorheriges Ergebnis wiederverwenden. Besonders für Moderation und Tool-Auswahl.
Fail closed bei Schema-Mismatch
Passt die Antwort nicht zum erwarteten Entscheidungsschema, nicht still in Default-Zweig zwingen. Loggen, sichere Fallback-Route, Alert.
Generative LLMs hinter dem Entscheidungs-Gate
Zuerst Jev. Chat-Modell erst nach bekannter Route. Beispiele unter Produktions-Anwendungsfällen.
Quellenangabe: