JEV 场景方案
路由是花小钱省大钱的地方:花百分之一的成本先判断一下,就能决定这个请求要不要惊动那个每次一块多的大模型。前提是判断本身必须又快又便宜——否则路由器自己就成了瓶颈。
文中所有数字来自我们自己跑的 2,390 题实测,方法和局限见 实测报告。
判断任务复杂度和是否需要推理,决定路由到哪一档模型。
把 route 的概率配一个保守阈值:只有明确判为 small 且把握高时才走小模型,拿不准就走大的。路由省的钱远小于答错一次的代价。
import { experimental_evaluate as evaluate } from 'ai';
const { answers } = await evaluate({
model: 'typesafe-ai/jev',
state, // 粘一条用户请求
questions: {
needsReasoning: { type: 'boolean', instructions: '完成这个请求是否需要多步推理、规划或复杂计算?' },
complexity: { type: 'score', instructions: '这个请求的复杂程度如何?',
criteria: ['一步就能完成', '简单但需要一点判断', '需要多步处理', '复杂且开放'] },
route: { type: 'choice', instructions: '这个请求应当交给哪一档模型处理?',
criteria: { small: '小而快的模型足够', large: '需要旗舰级推理模型', tools: '需要调用外部工具或检索' } },
},
});判断这个问题是否需要检索知识库,省掉大量无谓的向量查询。
import { experimental_evaluate as evaluate } from 'ai';
const { answers } = await evaluate({
model: 'typesafe-ai/jev',
state, // 粘一条用户提问
questions: {
needsRetrieval: { type: 'boolean', instructions: '回答这个问题是否需要查询组织内部的、模型不可能知道的资料?' },
timeSensitive: { type: 'boolean', instructions: '这个问题的答案是否依赖最新数据?' },
chitchat: { type: 'boolean', instructions: '这条消息是否只是打招呼或闲聊,并不包含实际的信息需求?' },
},
});把自然语言请求分发到具体的业务 handler。
import { experimental_evaluate as evaluate } from 'ai';
const { answers } = await evaluate({
model: 'typesafe-ai/jev',
state, // 粘一条用户说的话
questions: {
handler: { type: 'choice', instructions: '这条请求应当由哪个业务模块处理?',
criteria: { refund: '退款与取消订单', order_query: '查询订单状态', modify: '修改订单内容', support: '需要人工客服', unknown: '意图不明确' } },
hasOrderRef: { type: 'boolean', instructions: '这条请求中是否包含可以定位到具体订单的线索(金额、日期、订单号等)?' },
confidence: { type: 'score', instructions: '用户的意图表述得有多清楚?',
criteria: ['完全不清楚', '需要追问', '基本清楚', '非常明确'] },
},
});中位 456ms、最慢 1% 不到 0.8 秒。相对于被路由的大模型调用(1.3–1.7 秒,尾部 6–7.6 秒)是划算的,但如果你的下游是本地小模型,这 450ms 可能就不划算了,要自己算账。
向量路由更快更便宜,但只能按「像不像」分;Jev 判的是「是不是」,能处理「这个请求需不需要多步推理」这种没法用相似度表达的判据。两者可以叠:先用向量粗筛,拿不准的交给 Jev。
可以,而且应该。一次调用把路由、是否需要检索、是否闲聊一起问完,成本和问一道差不多。
需要数数或算数的。实测计数题 Jev 只有 65–77%,而且错法很典型——会顺着题目里给的数字答「是」。这类判据用代码算。
这些项目的源码里都能找到真正调用 Jev 的那一行。更多项目见 awesome-jev-verified。
上面的问题是固定的。想写自己的判据、自己的选项、自己的打分档位,去 试验场 里随便改。
打开试验场