Referenz
Jev API Docs
Referenz für den Jev-Entscheidungs-Endpoint auf dieser Website. Jev ist das System-One-Modell von TypeSafe AI; diese Website ist ein unabhängiger API-Dienst, der Zugang dazu bereitstellt. Senden Sie einen Zustand und eine Fragen-Map und erhalten Sie für jede eine typisierte Antwort.
Aktualisiert
Endpoint
Senden Sie POST an /api/v1/decisions auf diesem Host. Es gibt keinen chat-completions-Pfad und keine Streaming-Antwort. GET /api/v1/models listet die Modell-ID. Der kompatible POST /v1/systemone wird weiter unten behandelt.
POST https://jev-api.org/api/v1/decisions
Authorization: Bearer YOUR_API_KEY
Content-Type: application/jsonAuthentifizierung
Setzen Sie den Dashboard-Schlüssel in Authorization: Bearer. Ein fehlender oder abgelehnter Schlüssel ergibt 401. Der Playground legt beim Ausführen einen Schlüssel für das Konto an.
Schnellstart
Setzen Sie JEV_API_KEY auf einen Schlüssel aus Ihrem Dashboard und senden Sie die Anfrage unten.
curl https://jev-api.org/api/v1/decisions \
-H "Authorization: Bearer $JEV_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "jev-1.13",
"state": "Thanks for the refund. Still annoyed it took three emails.",
"questions": {
"sentiment": {
"type": "choice",
"instructions": "What is the overall sentiment of this message?",
"criteria": {
"positive": "Satisfied or thankful overall.",
"mixed": "Both satisfied and unhappy.",
"negative": "Unhappy overall."
}
},
"needs_follow_up": {
"type": "noul",
"instructions": "Should a person reply to this message?"
}
}
}'Mit KI-Coding-Tools verwenden
Kopieren Sie einen Prompt mit dem vollständigen Anfragevertrag und fügen Sie ihn zusammen mit Ihrer Aufgabe in Cursor, Claude Code oder ChatGPT ein. Dieselbe Referenz liegt unter /llms.txt.
Anfrage-Body
model ist jev-1.13 oder jev-latest. state ist ein String, JSON-Objekt oder Textarray, bis 60.000 Zeichen. questions ist eine Map von 1 bis 6 snake_case-IDs. Die ID ist nur das Label, unter dem Ihre Antwort zurückkommt, keine Frage. Die echte Frage steht in instructions als Text von 1 bis 2.000 Zeichen.
{
"model": "jev-1.13",
"state": "Thanks for the refund. Still annoyed it took three emails.",
"questions": {
"sentiment": {
"type": "choice",
"instructions": "What is the overall sentiment of this message?",
"criteria": {
"positive": "Satisfied or thankful overall.",
"mixed": "Both satisfied and unhappy.",
"negative": "Unhappy overall."
}
},
"needs_follow_up": {
"type": "noul",
"instructions": "Should a person reply to this message?"
}
}
}Fragetypen
Noul
type noul braucht nur instructions. Das Feld noul ist die Wahrscheinlichkeit von 0 bis 1, dass die Aussage wahr ist. Es gibt kein separates confidence-Feld. Senden Sie criteria bei einer noul-Frage, ignoriert dieser Endpoint es.
Choice
type choice braucht instructions und criteria: ein Objekt von 2 bis 8 snake_case-IDs, jeweils mit einer Beschreibung von bis zu 300 Zeichen. Die Antwort enthält choice, probabilities jeder Option und confidence.
Score
type score braucht instructions und criteria als geordnetes Array von 2 bis 10 Stufen, die niedrigste zuerst. Die Antwort enthält score, legend, probabilities und confidence.
Antwort
Ein erfolgreicher Body hat model, answers unter Ihren Frage-IDs, usage mit input_tokens und output_tokens, und credits_used. model meldet jev-1.13, auch wenn Sie jev-latest gesendet haben. Unten eine Beispielantwort auf die Schnellstart-Anfrage, usage ausgelassen.
{
"model": "jev-1.13",
"answers": {
"sentiment": {
"type": "choice",
"choice": "mixed",
"probabilities": { "mixed": 0.79, "negative": 0.2, "positive": 0.01 },
"confidence": 0.61
},
"needs_follow_up": { "type": "noul", "noul": 0.83 }
},
"credits_used": 1
}Wahrscheinlichkeiten und confidence lesen
Noul ist die Wahrscheinlichkeit, dass die Aussage in instructions wahr ist. Choice und Score liefern eine Wahrscheinlichkeit je Option oder Stufe, plus confidence.
Der Zweite ist das Signal zur Übergabe. Wenn confidence niedrig ist oder zwei Optionen nah beieinander liegen, geben Sie den Fall an eine Person oder stellen Sie eine genauere Frage. Senken Sie den Cutoff nicht, bevor Sie diese knappen Fälle gesehen haben.
Limits
| Eintrag | Dieser Endpoint |
|---|---|
| Endpoint | POST /api/v1/decisions, Bearer-Schlüssel |
| Modell | jev-1.13 (jev-latest ist ein Alias) |
| Fragen pro Aufruf | 1 bis 6 |
| Choice-Optionen | 2 bis 8 |
| Score-Stufen | 2 bis 10, niedrigste zuerst |
| State | String, JSON-Objekt oder Array, bis 60.000 Zeichen |
| Instructions | Text, 1 bis 2.000 Zeichen |
| Abrechnung | 1 Credit pro erfolgreichem Aufruf; fehlgeschlagene sind kostenlos |
| Streaming | Nicht unterstützt |
Unterschiede zu TypeSafes API
TypeSafe AI stellt Jev unter POST https://api.typesafe.ai/v1/systemone mit einem TypeSafe-Schlüssel bereit und rechnet pro Input-Token ab. POST /v1/systemone dieser Site akzeptiert denselben Body unverändert; der einfachere POST /api/v1/decisions weicht wie folgt ab:
- Pfad und Schlüssel: POST /api/v1/decisions auf jev-api.org, mit einem Schlüssel aus dem Dashboard dieser Website. TypeSafe-Schlüssel funktionieren hier nicht, und Schlüssel dieser Website funktionieren nicht bei TypeSafe.
- Modell-ID: auf /api/v1/decisions senden Sie jev-1.13 oder jev-latest; eine versionierte ID wie jev-1.13.0 liefert 422. /v1/systemone akzeptiert jev-latest, jev-preview, jev-1.13, jev-1.13.0 und typesafe/jev-1.13.
- Limits: /api/v1/decisions erlaubt 1 bis 6 Fragen pro Aufruf und 2 bis 8 Choice-Optionen. /v1/systemone akzeptiert die vollen TypeSafe-Bereiche — bis zu 256 Fragen und 255 Choice-Optionen.
- Felder: auf /api/v1/decisions muss instructions Text sein und jede Choice-Option braucht eine Beschreibung. /v1/systemone akzeptiert auch Objekt- oder Array-instructions und null-Optionsbeschreibungen.
- Abrechnung: 1 Credit pro erfolgreichem Aufruf, unabhängig von der Token-Zahl.
TypeSafe-SDK-kompatibler Endpoint
POST /v1/systemone auf diesem Host nimmt den TypeSafe-Request-Body unverändert entgegen — model, state und questions — und liefert die TypeSafe-Antwortform: model, answers, usage. Richten Sie einen TypeSafe-kompatiblen Client auf die Base URL https://jev-api.org oder rufen Sie https://jev-api.org/v1/systemone direkt auf. GET /v1/models listet die bedienten Modelle ohne Schlüssel.
POST https://jev-api.org/v1/systemone
GET https://jev-api.org/v1/modelsAkzeptierte Modell-IDs: jev-latest, jev-preview, jev-1.13, jev-1.13.0, typesafe/jev-1.13. Dieser Pfad akzeptiert die weiteren TypeSafe-Bereiche — 1 bis 256 Fragen, 2 bis 255 Choice-Optionen, 2 bis 10 Score-Stufen, Objekt- oder Array-instructions — und die Limits von 64k Tokens pro Request und 32k für State plus die längste Frage. Die Abrechnung ist gleich: 1 Credit pro erfolgreichem Aufruf.
Python
from typesafe_sdk import Noul, TypeSafeClient
with TypeSafeClient(api_key="YOUR_JEV_API_KEY", base_url="https://jev-api.org") as client:
response = client.system_one(
state="The invoice total does not match the quote.",
questions={"is_billing": Noul(instructions="Is this about billing?")},
)
print(response.answers["is_billing"])JavaScript
const res = await fetch('https://jev-api.org/v1/systemone', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.JEV_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: 'jev-latest',
state: 'The invoice total does not match the quote.',
questions: { is_billing: { type: 'noul', instructions: 'Is this about billing?' } },
}),
})
const { answers } = await res.json()Fehler
- 401 — fehlender oder abgelehnter API-Schlüssel.
- 402 — der Schlüssel ist gültig, das Guthaben reicht nicht. Ein Upstream-Fehler verbraucht kein Credit.
- 422 — der Body hat die Prüfung nicht bestanden. Die Meldung nennt das Feld.
- 429 — der Entscheidungsdienst ist begrenzt. Später erneut versuchen.
- 502 — der Dienst hat keine Antworten geliefert. Es wird kein Credit verwendet.
Modell-ID
Diese API stellt jev-1.13 bereit. Senden Sie diese ID, wenn ein Schwellenwert von einer Verteilung abhängt. Auf dieser API ist jev-latest ein Alias derselben ID.