Beslissingen

Beslissingen (Jev)

Stel getypeerde vragen over je data en krijg antwoorden waar je code mee verder kan: de kans op ja, één optie uit een reeks van een plek op een schaal, met gekalibreerde kansen, meestal binnen een seconde. Dit loopt via de eigen API van TypeSafe, dus de SDKs werken ongewijzigd.

POST/v1/systemone
ModelIDInvoer, per 1M tokensPrijs bij TypeSafeOutput
Jev 1.14jev-1.14$0.024$0.042Gratis
Jev 1.13jev-1.13$0.035$0.042Gratis

Jev is het beslismodel van TypeSafe, dat het een System One-model noemt: het begrijpt natuurlijke taal zoals een chatmodel, maar beantwoordt de vragen die je definieert in plaats van tekst te schrijven. jev-latest, jev-1.14.0 en typesafe/jev-1.14 werken ook als model-ID, en jev-1.13 blijft beschikbaar voor prompts die daarop zijn afgestemd.

Vragen stellen

# pip install typesafe-sdk
from typesafe_sdk import Choice, Noul, Score, TypeSafeClient
with TypeSafeClient(
base_url="https://api.zurelay.com",
api_key="YOUR_ZURELAY_KEY",
model="jev-1.14",
) as client:
response = client.system_one(
state={"ticket": "I was charged twice for October, please refund one today."},
questions={
"refund": Noul(instructions="Is the customer asking for money back?"),
"team": Choice(
instructions="Which team should handle this?",
criteria={"billing": "Charges and refunds", "technical": "Bugs and outages"},
),
"urgency": Score(
instructions="How urgent is it?",
criteria=["can wait", "this week", "today"],
),
},
)
print(response.nouls["refund"].noul) # 0.98
print(response.choices["team"].choice) # billing
print(response.scores["urgency"].score) # 1.9

Stel bij de SDKs van TypeSafe de basis-URL in op https://api.zurelay.com, zonder /v1: ze voegen zelf /v1/systemone toe. De omgevingsvariabelen TYPESAFE_BASE_URL en TYPESAFE_API_KEY werken ook. Met elke HTTP-client werkt het hetzelfde: stuur je Zurelay-sleutel mee als Bearer-token.

Het antwoord

Antwoord
{
"id": "req_8Kq2vXbN4tR7mWc1pLs9dYe3",
"model": "jev-1.14",
"answers": {
"refund": { "type": "noul", "noul": 0.98 },
"team": {
"type": "choice",
"choice": "billing",
"probabilities": { "billing": 1.0, "technical": 0.0 },
"confidence": 1.0
},
"urgency": {
"type": "score",
"score": 1.9,
"legend": { "0": "can wait", "1": "this week", "2": "today" },
"probabilities": { "0": 0.0, "1": 0.1, "2": 0.9 },
"confidence": 0.81
}
},
"usage": { "input_tokens": 396, "output_tokens": 61, "cost": 0.00001386 }
}

Elk antwoord komt terug onder de naam die je de vraag hebt gegeven. usage geeft aan waarop het verzoek is gefactureerd en cost wat het in Amerikaanse dollars heeft gekost. Bij hetzelfde verzoek kan het antwoord per aanroep een punt of twee verschillen.

Parameters

modelstringverplicht
jev-1.14, jev-latest (hetzelfde model) of jev-1.13.
statestring, object of arrayverplicht
De inhoud waarover je wilt beslissen: tekst of gestructureerde data, zoals een record, een chatlog of de huidige status van je app. Verwijs in een vraag naar een veld met de naam tussen backticks, zoals `ticket`.
questionsobjectverplicht
Je vragen, elk onder een zelfgekozen naam. De antwoorden komen terug onder dezelfde namen, en de namen worden niet naar het model gestuurd.
Per vraag
typestringverplicht
noul, choice of score.
instructionsstring, object of arrayverplicht
De vraag. Een object kan de vraag in één veld bevatten en de data waarnaar die verwijst in andere velden.
criteriaobject of array
Voor een choice (verplicht): een object met maximaal 255 opties, elk met een beschrijving of null. Voor een score (verplicht): een array met 2 tot 10 niveaus, het laagste eerst. Voor een noul (optioneel): true en false, wat ja en nee betekenen.

Vraagtypen

TypeVraagt naarAnswer
noulEen ja-neevraagnoul: de kans op ja, van 0 tot 1
choiceWelke van je opties pastchoice, de probabilities van elke optie en een confidence
scoreDe plek op je geordende schaalscore, die tussen niveaus kan vallen, een legend, de probabilities van elk niveau en een confidence

Je kunt alle drie combineren in één verzoek, en veel vragen stellen kost nauwelijks meer dan één: de status wordt één keer gelezen en alle vragen worden parallel op basis daarvan beantwoord.

Limieten

  • Maximaal 64K tokens per verzoek voor de status en alle vragen samen, en 32K voor de status plus de langste vraag.
  • Alleen tekst: een string, een JSON-object of een array. Zet afbeeldingen, PDFs of audio eerst om naar tekst.
  • Geen streaming: de antwoorden komen in hun geheel terug, meestal binnen een seconde.
  • Een ongeldig verzoek (een ontbrekende instructions, een score met één niveau) wordt met een 400 geweigerd voordat het het model bereikt en kost niets. Dat geldt ook voor een verzoek van meer dan 64K tokens, met de code context_length_exceeded.

Goede antwoorden krijgen

Jev leest instructies letterlijk, dus schrijf de exacte voorwaarde op en neem grensgevallen op in de criteria. Laat tellen, rekenen en datums vergelijken aan je code over en stuur alleen het deel van de status mee dat de vraag nodig heeft. Het model kan een voorkeur hebben voor de eerste optie van een keuze: controleer bij een belangrijke beslissing van het antwoord hetzelfde blijft als je de opties in een andere volgorde zet.

Betalen voor beslissingen

Jev wordt gefactureerd op basis van de invoertokens die het telt: je status en vragen, plus ongeveer 270 eigen tokens per verzoek. De antwoorden zijn gratis, net als bij TypeSafe. Een kort verzoek van ongeveer 300 tokens kost ongeveer $0.00001, dus een miljoen van zulke verzoeken kost ongeveer $10. Bij elk antwoord geven usage en de header x-zurelay-input-tokens aan waarop het verzoek is gefactureerd, elk verzoek staat in je verzoeklog en mislukte verzoeken kosten niets.

Probeer je eigen inhoud en vragen in de Playground van het dashboard: kies Jev, plak de inhoud, stel ernaast de vragen in en de knop Code ophalen schrijft hetzelfde verzoek in Python, Node.js of cURL.

Vragen, of ontbreekt er iets? Vraag het ons supportteam en je krijgt antwoord per e-mail, meestal binnen een minuut.