Using the Jev Model
This document describes how to use Tencent Cloud EdgeOne Makers to call the Jev (TypeSafe System One) decision model for structured judgment, classification, and scoring of input content.
Overview
Jev is the flagship model of TypeSafe AI and its first System One model. It does not generate text. Instead, it evaluates a set of strongly typed questions in parallel against a piece of
state (the content to be judged) and directly returns structured results (options, tiers, probabilities, confidence scores) that can be consumed by code. After unified access through the built-in models of EdgeOne Makers, you can directly call @makers/jev without applying for and managing a TypeSafe account and keys yourself.Note:
1. Jev only provides the native TypeSafe System One protocol, which can only be called through
/v1/systemone and cannot be accessed through chat protocols such as /v1/chat/completions.2. Jev does not support streaming output (System One performs one-time structured evaluation).
3. Jev shares the monthly free Token quota of Makers Models with other built-in models under the same account. The actual quota and consumption are subject to what is displayed in the console.
Operation Steps
Step 1: Creating an API Key
1. Log in to the EdgeOne console.
2. After you enter the console, the page is already located at Makers - Models - API Key.
3. Click Create API Key, enter a name and confirm. After creation, keep the Key secure.

Step 2: Calling the Model
You can see
@makers/jev in the built-in model list on the Models & Keys page, marked as a built-in model.
Request parameters:
Parameter | Position | Type | Required | Description |
model | Body | string | No | Fixed to @makers/jev; defaults to @makers/jev when omitted. Passing any other value returns 400. |
state | Body | string / object / array | Yes | Content to be evaluated. It can be plain text or a structured object/array (such as a ticket, order, or policy combination). |
questions | Body | object | Yes | A collection of questions, where the key is your custom question ID and the value is the question definition. All questions in the same request are evaluated against the same state in parallel and in isolation from each other. |
Request header parameters:
Parameter | Position | Type | Required | Description |
Authorization | Header | string | Yes | Authentication information in the format of Bearer $MAKERS_MODELS_KEY. $MAKERS_MODELS_KEY is the API Key created and saved in step 1, for example, Authorization: Bearer sk-xxxx. |
Content-Type | Header | string | Yes | Fixed as application/json |
Question definition (questions.\<id\>):
Field | Type | Required | Description |
type | string | Yes | Question type. Values: noul / choice / score |
instructions | string / object / array | Yes | The question to be judged. The question ID is not sent to the model, and the judgment logic must be written here. |
criteria | object / array | Depends on the type | Possible answer set. See the following table for the format. |
Question type:
Type | What It Answers | criteria Format | Returned Field |
noul | Whether a statement is true | Optional. Object used to specify what yes / no mean. | noul (0 to 1, probability of yes) |
choice | Which option to select from the given options | Required. Object, option name → option description | choice,probabilities,confidence |
score | Which level it falls into (ordered grading) | Required. Array, provides descriptions of each level in the order of 0,1,2... | score,legend,probabilities,confidence |
curl example:
curl -i -X POST "https://ai-gateway.edgeone.link/v1/systemone" \-H "Authorization: Bearer $MAKERS_MODELS_KEY" \-H "Content-Type: application/json" \-d '{"model": "@makers/jev","state": "Hi, I have been trying to connect my Stripe account for 3 days and the integration keeps failing. I am losing sales. Please help ASAP.","questions": {"department": {"type": "choice","instructions": "Which team should handle this","criteria": {"billing": "Payment or subscription issues","technical": "Bugs or integration problems","sales": "Pricing or account questions"}},"frustration": {"type": "score","instructions": "How frustrated the customer appears","criteria": ["Calm, just stating facts","Frustrated but civil","Very angry, strong language"]},"is_urgent": {"type": "noul","instructions": "The message conveys urgency or time-sensitivity"}}}'
Response example:
{"model": "jev-1.13.0","answers": {"department": {"type": "choice","choice": "technical","confidence": 0.78,"probabilities": { "technical": 0.85, "billing": 0.15, "sales": 0 }},"frustration": {"type": "score","score": 1,"confidence": 1,"legend": { "0": "Calm, just stating facts", "1": "Frustrated but civil", "2": "Very angry, strong language" },"probabilities": { "0": 0, "1": 1, "2": 0 }},"is_urgent": { "type": "noul", "noul": 1 }},"usage": { "input_tokens": 392, "output_tokens": 65 }}
Response field description:
Field | Type | Description |
model | string | Actual model version used (the result of resolving the model alias, such as jev-1.13.0) |
answers | object | Answers that correspond one-to-one with the keys in the request questions |
answers.<id>.type | string | Type of the question to which the answer corresponds |
answers.<id>.noul | float | Result of the noul question, with a value range of [0, 1], indicating the probability of being yes |
answers.<id>.choice | string | Name of the option selected for the choice question, which must come from the criteria in the request |
answers.<id>.score | float | Grading result of the score question, which can fall between two levels |
answers.<id>.legend | object | Mapping between the number and description of each level for the score question |
answers.<id>.probabilities | object | Probability distribution across options / levels |
answers.<id>.confidence | float | Concentration degree of the probability distribution (returned only for choice / score) |
usage.input_tokens | int | Number of input tokens in this call |
usage.output_tokens | int | Number of output tokens in this call |
Viewing Model Usage
Go to the Makers Overview page. In the Model Usage Overview section, select Built-in Models to view the usage of
@makers/jev.
