APIMODELSAPIMODELS
Docs/Jev API

Jev API (TypeSafe System One)

TypeSafe 的决策模型 Jev:发一个 state 和一组带类型的问题,拿回每个问题的答案与概率。输入每百万 token $0.05、输出免费。POST /v1/systemone,请求和响应与 TypeSafe 官方完全一致。

先看这个:它不是聊天模型

Jev 不生成文字,没有 messages、没有 prompt、没有流式。请求里是三样东西:model、state(描述当前情况的字符串、JSON 对象或数组)、questions(以你自定义名字为键的问题,每个带 type)。响应按同样的键返回答案。把 OpenAI SDK 指到这个端点是用不了的;用 TypeSafe 官方 SDK(改 base_url 和 key),或者直接发 HTTP。

POSThttps://api.apimodels.app/v1/systemone

代码示例

这是我们 2026-09-22 实际发出的请求:一个客服工单,两个问题 —— 该进哪个队列、是否紧急。

curl https://api.apimodels.app/v1/systemone \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jev",
    "state": "Support ticket: I was charged twice for my September invoice and need one of the payments refunded.",
    "questions": {
      "queue": {
        "type": "choice",
        "instructions": "Which support queue should handle this ticket?",
        "criteria": {
          "billing": "Payments, invoices, charges and refunds",
          "bug": "Something in the product is broken",
          "account_access": "Login, password or permission problems",
          "other": "Anything else"
        }
      },
      "urgent": {
        "type": "noul",
        "instructions": "The customer needs a response within the hour."
      }
    }
  }'
# 385 input tokens billed at $0.05 per 1M = $0.00001925; output is free

响应(原样)

{
  "model": "jev-1.13.0",
  "answers": {
    "queue": {
      "type": "choice",
      "choice": "billing",
      "confidence": 1.0,
      "probabilities": { "billing": 1.0, "bug": 0.0, "account_access": 0.0, "other": 0.0 }
    },
    "urgent": { "type": "noul", "noul": 0.29 }
  },
  "usage": { "input_tokens": 385, "output_tokens": 63 }
}
  • answers 按你的问题 id 返回。choice 给选中的选项、confidence 和每个选项的 probabilities;score 同理给等级;noul 是该陈述为真的概率(0–1)。
  • usage.input_tokens 是唯一计费的数;output_tokens 只是信息。
  • model 回的是上游实际版本(如 jev-1.13.0);请求里写 jev 即可,jev-latest / jev-preview 也接受。

请求参数

字段必填类型说明
model是string固定 jev(也接受 jev-latest / jev-preview)
state是string | object | array要判断的情况:一段文本、一个 JSON 对象或数组。单次请求上游预算 64k token。
questions是object以你自定义的问题 id 为键,每个值是一个带 type 的问题;至少一个
questions.<id>.type是stringchoice / score / noul
questions.<id>.instructions是string问题本身:要选什么、按什么打分、判断哪句话为真
questions.<id>.criteria否object | arraychoice:「选项名: 说明」,最多 255 个;score:2–10 级,每级一句说明。noul 不需要。

三种问题类型

choice

从最多 255 个带说明的选项里挑一个。返回选中的选项名、置信度和每个选项的概率。路由、分类、打标签用它。

score

把 state 放到你描述的 2–10 级量表上。返回等级、置信度和每级的概率。线索打分、严重程度、满意度用它。

noul

判断一句陈述为真的概率,返回 0–1 的数。审核标记、功能开关、是否升级用它。

所有问题针对同一个 state 并行求值,多加几个问题几乎不影响响应时间。

计费

项目apimodels
输入,每百万 token$0.05
输出免费
每次最低收费无,按 input_tokens 精确扣
  • 上面那条 385 token 的请求花 $0.00001925;一百万次这样的决策约 $19。
  • 调用失败不收费。零余额的账号进不来(请求前有余额门禁)。

错误

  • 400 — 我们这边就能判定的形状问题:model 不是 jev、没有 state、questions 不是非空对象、某个问题的 type 不认识、请求体超过 1MB。
  • 402 — 余额不足。
  • 422 — 上游的校验原文透传:问题数量、criteria 条数(choice ≤255,score 2–10 级)、单次 64k token 预算。

更多

常见问题

Jev API 兼容 OpenAI 格式吗?

不兼容。它有自己的接口 POST /v1/systemone:发 state 和一组带类型的问题,拿回带概率的答案。用 TypeSafe 官方 SDK 配我们的 base URL,或者像 cURL 示例那样直接发 HTTP。

Jev 一次调用怎么计费?

只按上游报回的输入 token 数,每百万 $0.05;输出免费,没有每次最低收费。调用失败不收钱。

Jev 支持哪几种问题?

三种:choice 从最多 255 个带说明的选项里挑一个,score 把 state 放到你描述的 2–10 级量表上,noul 返回一句陈述为真的概率。同一请求里的所有问题针对同一个 state 并行求值。