JEV 场景方案

用 Jev 做意图识别与工单分流

分流这件事的输出是一个枚举值加一个优先级,不是一段话。用生成模型做,你要写提示词约束它只输出这几个值,还要处理它偶尔发挥一下的情况;用 Jev,答案空间是你在调用里定义的,返回的就是那个枚举。

为什么这件事适合交给 Jev

文中所有数字来自我们自己跑的 2,390 题实测,方法和局限见 实测报告

方案 1

客服工单分流

一次拿到部门、紧急度和是否需要真人。

一次调用,问完全部 3 道

选项写清楚边界很重要。criteria 里每个选项的描述就是给模型的判据,写「支付、账单与退款」比只写「billing」准得多。

看代码
import { experimental_evaluate as evaluate } from 'ai';

const { answers } = await evaluate({
  model: 'typesafe-ai/jev',
  state,                     // 粘一条用户提交的工单
  questions: {
    dept: { type: 'choice', instructions: '这条工单应当分派给哪个团队?',
      criteria: { logistics: '物流与发货', billing: '支付、账单与退款', technical: '产品功能故障', account: '账号与登录', other: '以上都不是' } },
    urgency: { type: 'score', instructions: '这条工单的紧急程度如何?',
      criteria: ['可以排队处理', '今天内回复', '几小时内回复', '立刻介入'] },
    escalate: { type: 'boolean', instructions: '用户的情绪或诉求是否已经到了必须由真人接手的程度?' },
  },
});
方案 2

用户反馈归类

把产品反馈自动分成 bug、需求、夸奖、抱怨、疑问,并判断要不要建 issue。

一次调用,问完全部 3 道
看代码
import { experimental_evaluate as evaluate } from 'ai';

const { answers } = await evaluate({
  model: 'typesafe-ai/jev',
  state,                     // 粘一条用户反馈
  questions: {
    type: { type: 'choice', instructions: '这条反馈属于哪一类?',
      criteria: { bug: '报告了一个故障或错误', feature: '提出了新功能或改进需求', praise: '表达满意或称赞', complaint: '表达不满但没有具体问题', question: '在提问或求助' } },
    actionable: { type: 'boolean', instructions: '这条反馈是否具体到足以直接建一条开发任务?' },
    priority: { type: 'score', instructions: '如果要排期,这件事有多值得做?',
      criteria: ['可以不做', '有空再说', '应该排期', '优先处理'] },
  },
});
方案 3

销售线索打分

从一段沟通记录里判断成交意向、客户规模和下一步动作。

一次调用,问完全部 3 道
看代码
import { experimental_evaluate as evaluate } from 'ai';

const { answers } = await evaluate({
  model: 'typesafe-ai/jev',
  state,                     // 粘一段线索或沟通记录
  questions: {
    intent: { type: 'boolean', instructions: '对方是否表达了明确的采购意向?' },
    fit: { type: 'score', instructions: '这条线索和一款面向中型企业的 B2B 软件的匹配程度如何?',
      criteria: ['完全不匹配', '勉强沾边', '比较匹配', '高度匹配'] },
    next: { type: 'choice', instructions: '销售应当采取什么动作?',
      criteria: { call: '立刻安排电话或上门', demo: '发送方案并约演示', nurture: '放进培育池定期触达', drop: '不值得跟进' } },
  },
});

常见问题

选项能有多少个?

实测四选一能到 88%,77 选 1 掉到 68%。建议控制在十个以内。类别多的时候做两级:先分大类,再在大类里分小类,两次调用加起来仍然比一次大模型调用便宜得多。

需要训练或者给例子吗?

不需要训练。每个选项的描述就是判据,把边界写清楚比给例子更有效。

分类结果稳定吗?

同一道题重复问 5 次、换 3 种问法,实测判断一次都没翻转,概率最大只差 0.09。做对比的 GPT-5.6 Terra 和 Luna 会把同一道题答反。

能同时做分类和抽取吗?

能做分类、打分、是/否,但抽取不行——Jev 不生成文本,它只在给定的答案空间里选。订单号这类信息还是用正则或让大模型抽。

这么用的真实开源项目

这些项目的源码里都能找到真正调用 Jev 的那一行。更多项目见 awesome-jev-verified

换成你自己的题

上面的问题是固定的。想写自己的判据、自己的选项、自己的打分档位,去 试验场 里随便改。

打开试验场

其他场景