Jev API:几乎所有教程都写错的那个端点
Jev API 不在一个 OpenAI 兼容客户端以为它在的地方。把那样的客户端指向 Jev,服务端在模型读到你的文字之前就把你打发走——key 没问题,模型名也没问题,端点错了。这一页只讲 HTTP 这一层:能用的路径、它要的请求体,以及四个接入渠道怎么选。Python 和 JavaScript 的库代码在Jev SDK,模型本身从Jev AI 是什么开始。
为什么 chat/completions 会失败
试一个新模型通常就是把一个字符串换进你写好的调用里。这招对 Jev API 不管用,而且失败得很响。通过 OpenRouter 把 Jev 发到常规聊天端点,返回体是这个:
typesafe/jev-1.13 is a decisions model and cannot be used with the
chat/completions endpoint. Use the /api/alpha/decisions endpoint instead.报错点名了怎么修。原因值得两句话,这一页其余的古怪都由它推出来:聊天端点的契约是 messages 进去、生成的 token 出来;Jev 从不生成 token,它把输入读一遍,每道问题返回一个类型确定的值。没有 messages 数组可接,没有 assistant 轮次可追加,也没有东西可流式推送,所以那条同时要求这三样的路由干脆拒收,而不是半吊子地跑。
实际后果是 Jev API 在每个渠道上都有一条自己的 decisions 路径,而且彼此不同。走 OpenRouter 是 POST /api/alpha/decisions;直接跟 TypeSafe 说话,官方 SDK 发往 https://api.typesafe.ai/v1/systemone。不同域名、不同路径,但请求体里是同样的三个字段——那才是值得学一次的部分。
Jev 要的请求体长什么样
一个完整的 Jev API 调用,三种问题类型装在同一个请求里,也是本站演练场发的形状:
curl -X POST https://openrouter.ai/api/alpha/decisions \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "typesafe/jev-1.13",
"state": "I paid yesterday by card and still have no activation code. I need it tomorrow.",
"questions": {
"category": {
"type": "choice",
"instructions": "Which queue should handle this message",
"criteria": {
"not_received": "Paid but has not received the product",
"refund": "Asking for a refund",
"presale": "Has not bought yet, asking about price"
}
},
"urgency": {
"type": "score",
"instructions": "How time-sensitive is this",
"criteria": ["Just asking", "Wants it resolved today", "Needs it immediately"]
},
"is_frustrated": {
"type": "noul",
"instructions": "The customer sounds frustrated or angry"
}
}
}'三个键,没有外层封装:model、state、questions。温度、最大 token、停止词、system prompt,这些概念在这里一个都不存在。
state —— 你交给它看的东西
被判断的材料:一张工单、一封邮件、一次表单提交、一份文档。常见的是纯文本,结构化 JSON 也收——要分类的东西本来就带字段时这很重要。钱花在 state 上,因为 Jev API 只按输入 token 计费。
questions —— choice、score、noul
一张从你自己起的名字到类型化问题的映射,在同一次调用里一起回答,只收一次输入费。choice 收一组带标签的判据,返回其中一个标签外加每个标签的概率;score 收一列从低到高排好的描述,返回一个可能落在两级之间的数;noul 收一条指令,返回 0 到 1 的一个概率。名字是你起的,答案也按这些名字回来,所以要为你的代码起名。
通往 Jev API 的四条路
两条公布价格的路,token 单价一样。不一样的是你要开什么账号、token 之外还交什么钱,以及你把多少东西交出去。
TypeSafe 直连
在 console.typesafe.ai 用 Google 账号或邮箱验证码注册,没有等候名单也没有邀请这一步——首页那个 Join Waitlist 按钮并不拦着控制台,栽在这上面的人不少。key 放在 TYPESAFE_API_KEY 环境变量里,请求发往 api.typesafe.ai。官方库默认认这条路,想让 SDK 零配置跑起来就选它。
OpenRouter
OpenRouter 按 TypeSafe 自己的价转卖——每百万输入 token $0.042,输出免费,token 本身不加价。成本落在账号那边:最低充值 $10,刷卡另收 5.5% 的支付处理费且不低于 $0.80,加密货币付是 5%。已经在那儿存着余额的话,这是改一行的事。本站也走这条路调 Jev API,所以我们公布的延迟是 OpenRouter 的数字,不是直连的。
Vercel AI Gateway
应用本来就部署在 Vercel 上,这个网关把管 key 这一步整个省掉。Jev 上线 24 小时内触达了将近 13% 的 Vercel 付费团队,是那个网关历史上被采用得最快的模型。这该读成关于分发的事实,不是关于质量的:网关握着你的凭据时试一个模型只要一行,那些团队里不少只是在试,没有在发版。
第三方转售商
有若干站点把 Jev 包在自己的托管界面后面转卖,在直连价之上加一层。我们刻意不点名也不给倍数:查到的报价在不同页面之间自相矛盾,说改就改,公布一个站不住的数字比不公布更糟。要用之前先看转售商自己的价格页。这条路诚实的适用面很窄:你想要现成的界面,又不想自己开账号。
并排看:每条路各自要你付出什么
四条路通向同一个 Jev API、同一份权重,变的是周围的手续。
| 渠道 | 端点 | token 之外的成本 |
|---|---|---|
| TypeSafe 直连 | api.typesafe.ai/v1/systemone | 未公布 |
| OpenRouter | openrouter.ai/api/alpha/decisions | 最低充值 $10;刷卡 5.5%,下限 $0.80;加密货币 5% |
| Vercel AI Gateway | 由网关托管 | 看你的 Vercel 套餐怎么计费 |
| 转售商 | 转售商自己的 | 一笔没公布的加价 |
费率与注册细节核对于 2026-09-20。跟小语言模型逐次调用的算术在价格与获取方式。不想先写代码就想看到真实返回,本站的演练场会发出上面那个请求,并导出成 curl。
常见问题
Jev API 的端点是什么?
两个,取决于你从谁那里买。走 OpenRouter 是 POST https://openrouter.ai/api/alpha/decisions;直接走 TypeSafe、也就是官方 SDK 用的那个,是 POST https://api.typesafe.ai/v1/systemone。两个收同样的请求体。
为什么 chat/completions 不行?
因为 Jev 是决策模型,服务端在拒绝文案里已经说了。它不收 messages 数组,也不产出 token,聊天那条路既没有东西递给它,也没有东西可返回。
拿 Jev API 的 key 需要等候名单邀请吗?
不需要。console.typesafe.ai 是开放注册,用 Google 账号或邮箱验证码。营销首页那个 Join Waitlist 按钮不会挡住控制台,OpenRouter 和 Vercel 网关同样开放。
Jev API 多少钱?
每百万输入 token $0.042,输出按零计费。一次一千 token 的分类,花掉的是一分钱的零头。要紧的比较是跟你本来会用的小模型比,在价格与获取方式。
哪条路最便宜?
TypeSafe 直连和 OpenRouter 在 Jev API 上按 token 收同一个价,差别在账号这一层:OpenRouter 多一条最低充值和一笔支付处理费,TypeSafe 直连两样都没公布。转售商比这两条都贵。
Jev API 支持流式返回吗?
没有东西可以流。流式存在的意义是让你在 token 被生成的同时显示它们,而 Jev 一个 token 都不生成——一次计算,然后是一整组做完的类型化答案。官方客户端根本没暴露流式方法。