Jev 消息意图识别:聊天分类完整实战指南
·约 5 分钟
Jev 消息意图识别:聊天分类完整实战指南
消息意图识别是典型的人一眼就能判断、规则却永远写不准的问题。同事发来:「那个方案我看了,有点想法。不过按你们团队的风格,我以为会更成熟一些。先这样吧~」——这不是提问,也不是夸奖,而是阴阳怪气。关键词路由对此无能为力。
本指南完整走一遍 Jev 消息意图识别方案:状态文本、问题措辞、概率阈值,以及如何在不把大模型放进热路径的前提下上生产。
一句话总结:把原始聊天文本当作
state,问一个选择题,三个互斥选项(真诚提问 / 阴阳怪气 / 随口聊聊),用confidence做分支。低于 0.55–0.7 转人工或走慢路径。典型延迟 约 140ms。
为什么消息意图是「快思考」问题
卡尼曼在《思考,快与慢》里区分了两种判断模式。系统一快速、直觉、靠模式匹配——人读语气就是这样。系统二是慢推理。产品里大量「急不急 / 像不像讽刺 / 是不是垃圾信息」都是系统一的工作。
大模型能做,但它是为系统二式生成训练的:长回答、解释、调工具。在高吞吐聊天意图分类里,你为用不到的 token 付费,还要解析一段并不想要的散文。
Jev 正相反:在固定标签集上给出类型化的概率决策。
三分类意图体系
选项要互斥,且像人话:
| 选项 | 覆盖什么 | 典型信号 |
|---|---|---|
| 真诚提问 | 真实的信息请求或求助 | 问号、明确诉求 |
| 阴阳怪气 | 间接批评、礼貌的敌意 | 明褒暗贬、「先这样吧~」、省略号 |
| 随口聊聊 | 低风险社交噪音 | 表情、寒暄、跑题闲聊 |
为什么不加「其他」?
「其他」会吸走一切不确定。你看不清模型到底在哪个真实标签上犹豫。宁可让真实选项分布摊平,再用置信度阈值接住未知。
第一步:设计状态文本
{
"state": "同事:那个方案我看了,有点想法。不过按你们团队的风格,我以为会更成熟一些。先这样吧~"
}
消息意图识别的状态文本原则:
- 保留语气标记。 标点、语气词、委婉语、表情——它们就是信号。
- 有说话人就写上(「同事:」「客户:」)。
- 不要先摘要。 「同事在批评我们」等于删掉了证据。
- 合规要求下脱敏——订单号有用,完整支付信息没必要。
第二步:定义问题
{
"type": "choice",
"text": "这条消息真正的意图是什么?",
"options": ["真诚提问", "阴阳怪气", "随口聊聊"]
}
选项措辞清单
- 用标注员不用指南也会选的词(「阴阳怪气」可以;「间接框架下的负面社交信号」不行)。
- 选择题控制在 3–5 个选项。
- 一个问题只做一个决策。回复紧急度是另一个问题(评分或选择),不要塞进本题选项。
紧急度通常这样问:
{
"type": "score",
"text": "多久之内回复比较合适?",
"options": ["今天", "三天内", "不着急"]
}
第三步:调用 Jev(经 OpenRouter)
模型 ID:typesafe/jev-1.13
curl https://openrouter.ai/api/v1/chat/completions \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "typesafe/jev-1.13",
"messages": [{
"role": "user",
"content": {
"state": "…原始聊天文本…",
"questions": [{
"type": "choice",
"text": "这条消息真正的意图是什么?",
"options": ["真诚提问", "阴阳怪气", "随口聊聊"]
}]
}
}]
}'
响应示例
{
"answers": [{
"type": "choice",
"text": "这条消息真正的意图是什么?",
"selected": "阴阳怪气",
"confidence": 0.71,
"distribution": {
"阴阳怪气": 0.71,
"随口聊聊": 0.15,
"真诚提问": 0.14
}
}]
}
confidence 是最高选项的概率。务必记录完整 distribution——熵是漂移的预警信号。
聊天意图分类的阈值调优
用 50–100 条标注样本试:
| 最高概率 | 动作 |
|---|---|
| ≥ 0.85 | 自动分流 / 自动定优先级 |
| 0.55 – 0.85 | 软动作(界面建议标签) |
| < 0.55 | 人工复核或更慢的模型 |
意图分类往往是高频低风险——直到某天不是。客服语气标错只是烦人;合规把威胁标错就不是了。
消息意图识别生产清单
- 记录
selected、confidence、distribution、延迟、模型 ID - 周环比平均熵升高就告警(漂移往往先于准确率下降)
- 新业务上线后重看阈值(词汇分布会变)
- 留 30 条难例作回归
- 超时转人工——不要卡住用户
什么时候改用大模型
需要改写回复、多步推理或开放式标签时,用大模型。标签固定、需要能 switch 的值时,用 Jev。很多栈两者都用:大模型起草,Jev 下判断。
FAQ
Jev 能区分讽刺和阴阳怪气吗?
选项里分开就能分。需要的话加「讽刺」作第四项,重调阈值。
多语言有影响吗?state 保持原文,选项跟你的标签语言一致。
和关键词情感分析有何不同?
情感是极性,意图是说话人在做什么。「先这样吧~」是正面词+负面意图。