文档 · 模型
Jev(TypeSafe System One)
Jev 1.14 返回什么、怎么用文字或图片调 POST /v1/systemone、Box 问题、TypeSafe 官方线路密钥下方那条一键接入命令、价格多少。
Jev 是 TypeSafe 的 System One 模型。它不生成文字:你发一个 state 和一组带类型的问题,它返回带类型的答案和概率。目录里的模型 id 是 jev-1.14.0,2026-10-16 起替换 jev-1.13.0,价格不变。jev-latest 和 jev-preview 仍可作为别名使用,TopxAI 按 jev-1.14.0 计费,发给 TypeSafe 的也是 jev-1.14.0,所以响应里的 model 字段始终是 jev-1.14.0。当天在 TypeSafe 自己的 API 上,jev-latest 指向的还是 1.13;走 TopxAI 的话,三个名字到的是同一个模型。这里不再提供 jev-1.13.0,请求它会收到 403。如果你的阈值是在 1.13 上调的,换到 1.14 后请重新核对。密钥的允许模型列表里写了 jev-1.13.0 的,要把 jev-1.14.0 加进去;在这个列表里,jev-latest 和 jev-preview 都算作 jev-1.14.0。
四种问题类型
noul:是非题。答案是「是」的概率,接近 1 表示是,接近 0 表示否,0.5 附近表示拿不准。没有单独的 confidence。choice:从你定义的选项表里选一个,最多 255 个选项。答案带choice、confidence,以及每个选项的probabilities。score:在你用文字描述的 2 到 10 级量表上定位。答案按概率加权,可以落在两级之间,字段有score、confidence、legend、probabilities。box:找出某样东西在图里的位置。instructions写清找什么、在哪张图里找(比如 "the coffee mug inphoto"),不带criteria。答案是box,含top、bottom、left、right四条边,分别是占图片高度和宽度的比例,另附confidence。Box 要求请求里有图片,并且只有 Jev 1.14 支持。
同一个请求里的问题彼此独立、并行评估,所以把可能用到的问题都放进一次调用。问题的 id 不会发给模型,完整的问题要写在 instructions 里。
请求与响应
curl -X POST https://api.topxai.xyz/v1/systemone \
-H "Authorization: Bearer sk-xxxx" \
-H "Content-Type: application/json" \
-d '{
"state": "I have asked three times now. Can I please just talk to a real person?",
"model": "jev-1.14.0",
"questions": {
"is_human_escalation": {
"type": "noul",
"instructions": "Is the customer asking for a human agent?"
}
}
}'
{
"model": "jev-1.14.0",
"answers": {
"is_human_escalation": { "type": "noul", "noul": 0.99 }
},
"usage": { "input_tokens": 296, "output_tokens": 20 }
}
请求体和 TypeSafe 官方 API 完全一样,只有 base URL 和密钥换成 TopxAI 的。POST /v1/system_one 是同一个端点的另一种写法。在这个端点上请求目录里的其他模型,会收到 400。
图片与 Box
能放文字的地方都能放图片,包括 state 和问题的 instructions、criteria。每张图在顶层的 assets 里登记一次,键是一个引用字符串,然后在需要这张图的位置写上这个字符串。下面这个请求在照片里找杯子,同时问一句杯子到底在不在,因为 Box 永远会返回一个框,目标不存在时也一样:
{
"model": "jev-1.14.0",
"state": { "photo": "3f9c2e1a-kitchen" },
"assets": {
"3f9c2e1a-kitchen": {
"type": "image",
"format": "jpg",
"data_base64": "/9j/4AAQSkZJRg..."
}
},
"questions": {
"mug_visible": {
"type": "noul",
"instructions": "Is there a coffee mug in `photo`?"
},
"mug": { "type": "box", "instructions": "the coffee mug in `photo`" }
}
}
{
"model": "jev-1.14.0",
"answers": {
"mug_visible": { "type": "noul", "noul": 0.94 },
"mug": {
"type": "box",
"box": { "top": 0.25, "bottom": 0.82, "left": 0.44, "right": 0.84 },
"confidence": 0.92
}
},
"usage": { "input_tokens": 1618, "output_tokens": 52 }
}
要裁图或画框,把 left、right 乘以图片宽度的像素数,top、bottom 乘以高度。
图片也可以用 multipart/form-data 的文件段上传,TypeSafe 的 SDK 就是这么发的:第一段叫 request,放 JSON 请求体,每张图单独一段,对应的 asset 用 "part": "<段名>" 指向它,不再写 data_base64。multipart 省掉了 base64 多出来的三分之一体积。两种写法走 TopxAI 都能用,SDK 默认开启的 zstd 请求体压缩也能用。
TypeSafe 把图片和 Box 标为 "Dreamer-ready":适合做原型,还没达到它自己的生产标准,请求格式、答案和限制在版本之间都可能变。在 TypeSafe 官方 API 上,这类请求都要带请求头 TypeSafe-Danger-Zone-Images: true。请求里只要有 assets 或 Box 问题,TopxAI 会自动加上这个头,所以你可以不写;写了也没影响。
TypeSafe 的图片限制原样适用:只收 PNG 或 JPEG 静态图,每条边不超过 1568 像素,总像素数在 78,400 到 2,458,624 之间,单个文件不超过 16 MiB。它的文档写最短边可以到 256 像素,但我们 2026-10-16 实测,任何一条边不到 280 像素都会被拒(279 × 400 失败,280 × 400 通过),所以两条边都保持在 280 像素以上。超出限制的图片会直接拒收,不会自动缩放,一张图不合格,整个请求都失败。发送前先把最长边缩到 1568 像素以内,并把像素本身转正:API 会去掉 EXIF,也不理会里面的方向标记。引用字符串每出现一次,图片就多算一份,几个问题看同一张图时,把它放进 state 一次,再按路径引用。
限制与报错
预留额度之前,中转服务先检查请求体:必须有 model、state 和非空的 questions 对象,state 加 questions 不超过 1 MiB,整个请求体(含 base64 图片)不超过 32 MiB,带 assets 时它必须是对象,最多 1,024 张图,每个引用字符串非空、不超过 1,024 字节,合计不超过 64 KiB。请求体超过 32 MiB 返回 413,其他不满足的情况返回 400。multipart 格式不对也返回 400,比如第一段不叫 request、段名重复、文件段既不是 PNG、JPEG 也不是无类型字节。
TypeSafe 用 400、413 或 422 拒绝请求时(图片读不出来、某个 asset 没人引用、超出上下文长度等),你会原样收到它的说明,预留的额度随即释放。429 会连同 Retry-After 一起转给你,退避后重试。上游故障或上游密钥失效,统一返回 503。
上下文限制按 TypeSafe 的默认值:单次请求 64k token,state 加任意一个问题不超过 32k,图片的 token 也算在内。TypeSafe 的长上下文请求头不会转发。
一条命令接入
在 API 密钥 页面上创建密钥。在 分组 里找到 TypeSafe 区块,选 官方线路(旁注「官方密钥 · 固定价格」)。自动路由 密钥也能调 Jev(Jev 只在这一条路由上提供),但下面这条接入命令只在 TypeSafe 线路的密钥上显示。在密钥所在行点开完整密钥的弹层,或者打开密钥详情抽屉,都能看到 Jev 一键接入:
curl -fsSL https://api.topxai.xyz/install/typesafe.sh | sh -s -- --key sk-xxxx
脚本会安装 typesafe-ai agent skill,把 TYPESAFE_BASE_URL=https://api.topxai.xyz 和 TYPESAFE_API_KEY=<你的密钥> 写进 ~/.config/topxai/typesafe.env,在 ~/.zshrc 和 ~/.bashrc(哪个存在改哪个)里加一段读取这个文件的托管配置,~/.claude/settings.json 存在的话再把这两个变量合并进它的 env。最后发一次测试请求:这是一次真实计费的调用,用 jev-latest 问一道 noul 题;返回 401 说明密钥不对。
不带 --key 时,脚本先取环境变量 TOPXAI_API_KEY,再复用上次运行保存的密钥,都没有才在终端里让你输入,输入过程不回显。一个密钥都没有时,skill 和配置照常安装,只跳过测试请求。--no-skill 和 --no-verify 分别跳过装 skill 和测试请求两步,--base-url 指向别的中转地址,-h 打印帮助。可以重复运行,涉及的文件每次都原地重写,settings.json 会先留一份带时间戳的 .bak 备份。
官方 SDK(pip install typesafe-sdk、npm install @typesafe-ai/sdk)会读 TYPESAFE_BASE_URL 和 TYPESAFE_API_KEY 两个变量,然后自己调用 /v1/systemone;用 TYPESAFE_DEFAULT_MODEL 指定模型。要用图片和 Box,Python SDK 需要 0.7.5,JavaScript SDK 需要 0.7.0(Node.js 22 或更高)。
价格
自 2026-11-12 起,每 100 万输入 token 收 0.055 美元(此前是 0.04494 美元)。TypeSafe 自己的牌价是 0.042 美元。输出 token 免费。图片不单独收费:图片的 token 按同样的价格算作输入 token,usage.input_tokens 里已经包含。TypeSafe 还没公布图片 token 的算法;我们 2026-10-16 实测,一张图每被引用一次,计 ⌈宽 / 28⌉ × ⌈高 / 28⌉ × 2 个 token。800 × 600 的照片是 1,276 个,1568 × 1568 的满尺寸图是 6,272 个,约 0.00034 美元。费用按供应商返回的 usage.input_tokens 结算;响应里没有 usage 时,按调用前预估并预留的 token 数收,预估包括文字和上面这套图片算法。
备用线路
自 2026-11-12 起,Jev 跑在两条线路上。主线路调用 TypeSafe 官方接口;另一条是成本更高的备用线路,提供同一个模型。主线路在回答之前出错时,请求可能自动转到备用线路,这笔请求按备用价计费:每 100 万输入 token 0.058 美元,输出仍然免费。这种情况很少,密钥、接口地址和请求都不用改。
这样的请求在用量日志里能认出来:条目标着 备用部署,并显示它按哪个备用单价计费。首页和模型页的价格表在 备用部署 一行列出同一个单价。走备用线路时,网关会在转发前检查已知的越狱模板,见可接受使用政策。
已知短板
以下都来自 TypeSafe 自己的文档:
- 按字面回答你写下的问题,不猜你想问什么。
- 不会算术;日期当文本读,不当数值比较。
- 双重否定、多跳推理、state 里的无关内容都会拉低准确率。
- 互相矛盾的判据会让答案不可靠。
- 没有训练过生成文字。
- 英文是主要训练语言,中日韩文本「能处理,但效果不一样好」。
- 图片和 Box 还在实验阶段,Box 的 confidence 也没有推荐阈值。大图里只有几十像素宽的目标可能找不到,先裁出大致区域再问。
- 不同问题类型之间的阈值不能互相套用。
有问题可以点网站右下角的帮助按钮,或者写信到 support@topxai.xyz。
模型:jev-1.14.0 · 模型与价格
相关
- TopxAI 上线 Jev 1.14:能看图、能框位置,图片怎么计费
- TypeSafe Jev:只给判断、不写文字的 System One 模型
- 我暂停了一个 AI 项目:架构图里没有的缓存账单
- Hosted MCP servers
- API 参考:全部端点,附 OpenAPI 规范
- Jev 1.14.0 API pricing
上一页:看懂用量日志 · 下一页:GLM-5.3-Abliterated 与 GLM-5.3-Flash-Abliterated
其他语言:English