Skip to main content

/v1/systemone

The same kind of request in the System One format

curl -X POST 'http://0.0.0.0:4000/v1/systemone' \
-H "Authorization: Bearer $LITELLM_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "jev",
"state": "Customer wrote: I was charged twice for my order #4411 and want one of the charges refunded today.",
"questions": {
"is_refund_request": {"type": "noul", "instructions": "Is the customer asking for a refund?"},
"urgency": {
"type": "choice",
"instructions": "How urgent is this?",
"criteria": {"low": "can wait a week", "high": "needs action today"}
},
"frustration": {
"type": "score",
"instructions": "How frustrated is the customer?",
"criteria": ["calm", "mildly annoyed", "angry"]
}
}
}'

Response

{
"model": "jev-1.13.0",
"answers": {
"is_refund_request": {"type": "noul", "noul": 0.99},
"urgency": {
"type": "choice",
"choice": "high",
"confidence": 1.0,
"probabilities": {"low": 0.0, "high": 1.0}
},
"frustration": {
"type": "score",
"score": 0.95,
"confidence": 0.86,
"legend": {"0": "calm", "1": "mildly annoyed", "2": "angry"},
"probabilities": {"0": 0.07, "1": 0.91, "2": 0.02}
}
},
"usage": {"input_tokens": 391, "output_tokens": 67}
}

Changing "model" to "luna" asks OpenAI instead and still returns System One answers keyed by question name

FieldTypeDescription
modelstringA proxy model name, or <provider>/<model> in the SDK
statestring, object or arrayThe thing being judged, such as a support ticket, a document or a chat transcript
questionsobject1 to 128 named questions. Each key becomes a key in answers
imagesarray, optionalImage URLs or data URLs. OpenAI and Cloudflare Clef only, with the rules in Image input
assetsobject, optionalImages keyed by a name you use in state, each {"type": "image", "format": "png", "jpg" or "jpeg", "data_base64": ...}. TypeSafe only, with the images header

Every question has a type and an optional instructions field. Extra fields on a question are forwarded to System One providers unchanged

typecriteriaAnswer fields
noulOptional object with true and false descriptions. A noul question needs instructions or criterianoul: probability that the answer is true
choiceRequired object mapping 1 to 255 labels to descriptionschoice, confidence, probabilities per label
scoreRequired array of 1 to 10 levels, lowest firstscore (0 to levels - 1), confidence, legend, probabilities per level
boxNone. TypeSafe jev-1.14.0 and jev-preview only, with the images headerbox with top, bottom, left and right, confidence

On both routes, requests that break these rules, such as no questions at all, duplicate choice values or a score question with 11 levels, are rejected by LiteLLM with a 400 before any provider is called