curl https://aireiter.com/api/v1/systemone \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "jev",
"input": {
"state": "The payment API timed out.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Does this need a person right now?"
}
}
}
}'
import os
import requests
response = requests.post(
"https://aireiter.com/api/v1/systemone",
headers={"Authorization": f"Bearer {os.environ['API_KEY']}"},
json={
"model": "jev",
"input": {
"state": "The payment API timed out.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Does this need a person right now?",
}
},
},
},
)
print(response.json()["result"]["result"]["answers"])
const response = await fetch("https://aireiter.com/api/v1/systemone", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "jev",
input: {
state: "The payment API timed out.",
questions: {
is_urgent: {
type: "noul",
instructions: "Does this need a person right now?",
},
},
},
}),
});
const data = await response.json();
console.log(data.result.result.answers);
{
"result": {
"state": "Completed",
"result": {
"model": "jev-1.13.0",
"answers": {
"is_urgent": {
"type": "noul",
"noul": 0.49
}
},
"usage": {
"input_tokens": 280,
"output_tokens": 23
}
}
},
"success": true,
"errors": [],
"messages": []
}
Jev
Jev Decision API
- Synchronous decision API, not a chat API, does not support streaming output
- Submit a piece of context
stateand several judgment questionsquestions, returning the probability, option, or score for each question in a single response - Set the model name to
jevwhen calling
POST
/
api
/
v1
/
systemone
curl https://aireiter.com/api/v1/systemone \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "jev",
"input": {
"state": "The payment API timed out.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Does this need a person right now?"
}
}
}
}'
import os
import requests
response = requests.post(
"https://aireiter.com/api/v1/systemone",
headers={"Authorization": f"Bearer {os.environ['API_KEY']}"},
json={
"model": "jev",
"input": {
"state": "The payment API timed out.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Does this need a person right now?",
}
},
},
},
)
print(response.json()["result"]["result"]["answers"])
const response = await fetch("https://aireiter.com/api/v1/systemone", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "jev",
input: {
state: "The payment API timed out.",
questions: {
is_urgent: {
type: "noul",
instructions: "Does this need a person right now?",
},
},
},
}),
});
const data = await response.json();
console.log(data.result.result.answers);
{
"result": {
"state": "Completed",
"result": {
"model": "jev-1.13.0",
"answers": {
"is_urgent": {
"type": "noul",
"noul": 0.49
}
},
"usage": {
"input_tokens": 280,
"output_tokens": 23
}
}
},
"success": true,
"errors": [],
"messages": []
}
Authorizations
string
required
API key, Bearer Token formatGet API Key:Visit the API Key management page to get your API Key
Authorization: Bearer YOUR_API_KEY
Body
string
required
Model name. Fixed value is
jev.The result.result.model in the response is the actual version number used upstream, such as jev-1.13.0. This field is returned by upstream; do not include the version number in the request.object
required
Evaluation content. Contains
state and questions.Show Field Descriptions
Show Field Descriptions
string | object | array
required
Material to be evaluated. Can be a single sentence, an object, or an array. Only include data necessary to complete the evaluation; do not include sensitive information such as API keys or passwords.
object
required
Questions table, cannot be empty. Key names are user-defined, and each question is an object.Each question must have
type and instructions.noul— Yes/No question. Returnsnoul, ranging from 0 to 1, indicating the probability of “yes”.criteriais optional, formatted as{ "true": "what qualifies as true", "false": "what qualifies as false" }.choice— Single choice.criteriais required, which is an object of “option name -> description”. The returnedchoiceis the selected option name.score— Scoring.criteriais required, which is an ordered array of at least two items from low to high. The returnedscoreis a number indicating which tier it falls into, where the first item is 0, and can be a decimal. For example, with three tiers,1.99indicates it almost falls into the third item.
noul, choice, and score questions simultaneously. Do not pass stream; this endpoint only returns a complete JSON response.
Response
The response body is the upstream raw JSON; this endpoint does not modify it. The evaluation results are inresult.result.answers.
boolean
Whether the request was successful
array
List of errors. Empty array on success
array
Additional messages. Empty array when there are no messages
object
Upstream execution results
Show Field Descriptions
Show Field Descriptions
string
Execution status.
Completed indicates completedobject
Model response
Show Field Descriptions
Show Field Descriptions
string
The actual version number used upstream, for example
jev-1.13.0object
Results for each question. Key names match the question names in the request.
noul:{ "type": "noul", "noul": 0.49 }.0.8and above can be considered “yes”,0.2and below can be considered “no”, and close to0.5indicates uncertainty.choice:choiceis the selected option name,probabilitiesare the probabilities of each option, andconfidenceis the confidence level.score:scoreis the score, andlegendmaps tier indices back to the text you submitted.
Examples
curl https://aireiter.com/api/v1/systemone \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "jev",
"input": {
"state": "The payment API timed out.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Does this need a person right now?"
}
}
}
}'
import os
import requests
response = requests.post(
"https://aireiter.com/api/v1/systemone",
headers={"Authorization": f"Bearer {os.environ['API_KEY']}"},
json={
"model": "jev",
"input": {
"state": "The payment API timed out.",
"questions": {
"is_urgent": {
"type": "noul",
"instructions": "Does this need a person right now?",
}
},
},
},
)
print(response.json()["result"]["result"]["answers"])
const response = await fetch("https://aireiter.com/api/v1/systemone", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "jev",
input: {
state: "The payment API timed out.",
questions: {
is_urgent: {
type: "noul",
instructions: "Does this need a person right now?",
},
},
},
}),
});
const data = await response.json();
console.log(data.result.result.answers);
{
"result": {
"state": "Completed",
"result": {
"model": "jev-1.13.0",
"answers": {
"is_urgent": {
"type": "noul",
"noul": 0.49
}
},
"usage": {
"input_tokens": 280,
"output_tokens": 23
}
}
},
"success": true,
"errors": [],
"messages": []
}
Multi-Question Example
choice and score can be included in the same request as noul.
{
"model": "jev",
"input": {
"state": {
"ticket": "Payment API intermittent timeout, database connection pool nearing exhaustion."
},
"questions": {
"next_action": {
"type": "choice",
"instructions": "Select the safest next step",
"criteria": {
"rollback": "Roll back recent changes",
"observe": "Continue observing and sampling logs"
}
},
"risk": {
"type": "score",
"instructions": "Assess the risk of this incident",
"criteria": ["Low", "Medium", "High", "Critical"]
},
"escalate": {
"type": "noul",
"instructions": "Whether manual escalation is required"
}
}
}
}
Notes
- This endpoint is not a chat endpoint and does not accept
messagesorstream. - The context window is 32,000 tokens.
- When a business failure occurs, the HTTP status code may still be 200. Please check both
successanderrors. Authentication failure returns401, missingmodelor invalid JSON returns400, and a non-existent model returns404.