← 返回博客
意图识别聊天分类选择题教程生产实践

Jev 消息意图识别:聊天分类完整实战指南

·约 5 分钟

Jev 消息意图识别:聊天分类完整实战指南

消息意图识别是典型的人一眼就能判断、规则却永远写不准的问题。同事发来:「那个方案我看了,有点想法。不过按你们团队的风格,我以为会更成熟一些。先这样吧~」——这不是提问,也不是夸奖,而是阴阳怪气。关键词路由对此无能为力。

本指南完整走一遍 Jev 消息意图识别方案:状态文本、问题措辞、概率阈值,以及如何在不把大模型放进热路径的前提下上生产。

一句话总结:把原始聊天文本当作 state,问一个选择题,三个互斥选项(真诚提问 / 阴阳怪气 / 随口聊聊),用 confidence 做分支。低于 0.55–0.7 转人工或走慢路径。典型延迟 约 140ms。


为什么消息意图是「快思考」问题

卡尼曼在《思考,快与慢》里区分了两种判断模式。系统一快速、直觉、靠模式匹配——人读语气就是这样。系统二是慢推理。产品里大量「急不急 / 像不像讽刺 / 是不是垃圾信息」都是系统一的工作。

大模型能做,但它是为系统二式生成训练的:长回答、解释、调工具。在高吞吐聊天意图分类里,你为用不到的 token 付费,还要解析一段并不想要的散文。

Jev 正相反:在固定标签集上给出类型化的概率决策。


三分类意图体系

选项要互斥,且像人话:

选项 覆盖什么 典型信号
真诚提问 真实的信息请求或求助 问号、明确诉求
阴阳怪气 间接批评、礼貌的敌意 明褒暗贬、「先这样吧~」、省略号
随口聊聊 低风险社交噪音 表情、寒暄、跑题闲聊

为什么不加「其他」?

「其他」会吸走一切不确定。你看不清模型到底在哪个真实标签上犹豫。宁可让真实选项分布摊平,再用置信度阈值接住未知。


第一步:设计状态文本

{
  "state": "同事:那个方案我看了,有点想法。不过按你们团队的风格,我以为会更成熟一些。先这样吧~"
}

消息意图识别的状态文本原则:

  1. 保留语气标记。 标点、语气词、委婉语、表情——它们就是信号。
  2. 有说话人就写上(「同事:」「客户:」)。
  3. 不要先摘要。 「同事在批评我们」等于删掉了证据。
  4. 合规要求下脱敏——订单号有用,完整支付信息没必要。

第二步:定义问题

{
  "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 保持原文,选项跟你的标签语言一致。

和关键词情感分析有何不同?
情感是极性,意图是说话人在做什么。「先这样吧~」是正面词+负面意图。


相关阅读