AI
JEV 结构化判断 API
使用 TypeSafe 的 System One 模型 JEV 分类消息、判断条件是否成立、评价内容。提供上下文和问题,同步获得应用可以直接使用的 JSON 答案。
分类消息
向 POST /v1/systemone 发送消息和分类选项。以下示例使用 jev-latest,为一条客户咨询选择处理团队。
curl https://api.sukidata.com/v1/systemone \
-H "Authorization: Bearer $SUKIDATA_API_KEY" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: decision-example-1' \
--data '{
"model": "jev-latest",
"state": "We plan to integrate your API next month, with around 100,000 requests per month. Which plan would fit our team?",
"questions": {
"team": {
"type": "choice",
"instructions": "Which team should handle this message?",
"criteria": {
"billing": "Payments and invoices",
"support": "Technical issues",
"sales": "Pricing and purchasing"
}
}
}
}'{
"id": "dec_example",
"model": "jev-1.13.0",
"answers": {
"team": {
"type": "choice",
"choice": "sales",
"confidence": 0.9,
"probabilities": {
"billing": 0.01,
"support": 0.02,
"sales": 0.97
}
}
},
"usage": {
"input_tokens": 400,
"output_tokens": 40,
"cost": 0.0000168
}
}从 answers.team.choice 获取分类结果,示例中的 sales 表示销售团队。答案随请求同步返回。
理解结果
answers 中的名称与请求里的问题名称对应,例如 team。Choice 的答案包括所选类别和概率分布:
probabilities包含各选项的概率,choice为概率最高的选项。confidence概括概率分布的集中程度,不等于选中项的概率,也不保证答案正确。model是实际使用的模型版本,id标识本次请求,usage提供 token 用量和美元费用。
选择问题类型
choice选择一个类别,例如处理团队或商品类型。在 criteria 对象中定义 1–255 个选项,答案返回选中的键名。noul判断一个是非条件,例如消息是否在咨询方案。返回条件成立的概率;可用 criteria 分别说明 true 和 false 的含义。score评价一个维度,例如紧急程度或相关性。在 criteria 数组中按从低到高的顺序定义 2–10 个等级,答案返回在此量表上的位置。在同一次请求中增加判断
如需同时识别购买意向和紧急程度,在 questions 中追加以下两项。三个问题共同使用 state 中的客户消息。
{
"plan_inquiry": {
"type": "noul",
"instructions": "Is this customer evaluating a plan for their team?"
},
"urgency": {
"type": "score",
"instructions": "How urgent is this message?",
"criteria": [
"Routine request with no time pressure or blocked work",
"An active issue needs attention, but work can continue",
"Critical work is blocked and needs immediate attention"
]
}
}answers 中新增的两项可能如下:
{
"plan_inquiry": {
"type": "noul",
"noul": 0.99
},
"urgency": {
"type": "score",
"score": 0.2,
"confidence": 0.7,
"legend": {
"0": "Routine request with no time pressure or blocked work",
"1": "An active issue needs attention, but work can continue",
"2": "Critical work is blocked and needs immediate attention"
},
"probabilities": {
"0": 0.85,
"1": 0.1,
"2": 0.05
}
}
}noul: 0.99表示条件很可能成立,接近 0 表示否,接近 0.5 表示不确定。它表示概率而非强弱程度,没有独立的 confidence 字段。score使用从 0 开始的等级索引,因此三个等级的范围是 0–2,而非固定的 0–1。得分是按概率加权的均值:0 × 0.85 + 1 × 0.1 + 2 × 0.05 = 0.2。legend将索引对应到你的标准。- Score 也会返回
confidence。低分可以很确定,高分也可以不确定,决定后续操作时要同时考虑两者。
如果一条内容可以同时具备多个独立标签,为每个标签分别使用 noul;需要从类别中选出一个时,再使用 choice。
写清判断标准
- 提供所需事实。 在
state中放入待判断的消息,以及必要的产品背景或文档内容。可使用文本、JSON 对象或数组。 - 每次只问一件事。 把实际问题写在
instructions中,问题名称只用于对应答案。主题、购买意向和紧急程度分别评价,再由代码组合。 - 说明类别和等级的边界。 Choice 的类别需要各有明确含义,必要时加入“其他”;score 的等级要描述可观察的差异,而不只是“低”“中”“高”。
同一请求中的每个问题独立读取相同上下文。如果后一个问题需要前一个答案作为输入,请将答案放入后续请求的上下文,再次调用。
一个请求最多包含 1,024 个问题,UTF-8 JSON 请求体不超过 1 MiB。instructions 也支持文本、对象或数组,完整字段约束见 API 参考。
使用答案
将成功响应保存为 result,根据分类结果分派消息,不确定时交给人工复核:
const { team } = result.answers;
const route = team.confidence >= 0.8
? team.choice
: 'manual_review';
console.log({ route });0.8 只是示例阈值。使用自己业务中已标注的案例验证判断标准和阈值,覆盖常见与模糊情况。不确定时补充上下文或人工复核;影响较大的操作应保留确认步骤。
可以先在 Playground 中测试代表性案例,查看概率并导出请求。智能体可通过 MCP 调用 evaluate_decision。
更多模型用法参阅 TypeSafe 的 choice、noul、score 和 confidence 指南。
模型与计费
JEV 是目前可用的 System One 模型。在 model 字段中,可以使用跟随更新的别名,也可以固定版本。
| 模型 ID | 适用方式 |
|---|---|
jev-latest | 跟随当前正式版本,上面的示例默认使用此名称。 |
jev-preview | 体验预览版本,可能先于 jev-latest 更新。 |
jev-1.13.0 | 固定版本,适合需要稳定复测、调整判断标准的应用。 |
目前两个别名都指向 jev-1.13.0,并非三款不同模型。响应中的 model 会返回实际使用的版本。可通过 GET /v1/models 发现模型 ID;固定版本也可能可调用,而目录只列出别名。
输入价格为 $0.042 / 百万 token,输出免费。通过 usage.input_tokens 查看输入用量,usage.cost 查看美元费用,计费规则见计费说明。
重试与错误
超时不代表请求失败。使用相同的 Idempotency-Key、API Key 和输入重试。成功的请求返回原结果,不重复执行或扣费;换键会创建新请求。
400 / 413检查模型、问题定义和请求大小,修正输入后再发起新判断。401 / 403检查 API Key 是否有效。402充值 AI 余额,再使用新键发起判断。409 request_in_progress原判断仍在处理中。等待后使用原键和原输入重试。409 idempotency_conflict该键已对应其他输入或 API Key。重试时恢复原值;如果确实要发起新的判断,则使用新键。502 provider_error本次判断失败。如需重新执行,使用新键创建新请求。503 / 无响应结果尚未确认。等待后保持原键和原输入重试,不要自动换键。限制重试次数,并逐步增加等待间隔。如果问题持续,保留错误响应和 X-Sukidata-Request-ID(如有),联系 support@sukidata.com。