意图识别:判断一条客户消息想要什么
贴上一条客户或聊天机器人消息,用自然语言列出你处理的意图,Jev 会返回每个意图的概率,以及是否需要人工处理。不需要训练数据,也不需要标注语料。下面用一条银行客服消息直接试用,不用注册。
用你自己的文本试试
修改示例后运行。无需账号,每天免费 3 次。
场景
从你定义的意图中,识别一条客户消息想要什么。
可以随意修改,Jev 会针对这里的内容回答该场景的问题。
这个工具检查什么
示例消息同时符合两个意图:客户被扣了两次款(重复扣款),其中一笔还在处理中,而"待处理交易"在大多数银行流程里是另一个独立意图。只返回一个标签的分类器会把这一点藏起来。一次评估问两个问题:
| 问题 | 类型 | 返回什么 |
|---|---|---|
intent | Choice | 八个意图(含 other)各自的概率,以及置信度 |
needs_human | Noul | 需要人工而不是自动回复来处理的概率 |
这些意图仿照 Banking77 的风格编写,Banking77 是一个公开的银行客服消息数据集,所以下面公布的结果可以作为合理的参照。它们都没有经过训练,每个意图旁边那行文字就是它的全部定义。
为什么意图识别需要概率
只按第一意图分流的聊天机器人,会把 0.95 的答案和 0.45 的答案一视同仁。每个意图都有概率时,你可以做三件不同的事:
- 自动处理:某个意图遥遥领先,置信度高。
- 追问澄清:两个意图很接近时,问一句"您是想取消那笔待处理的扣款,还是对重复扣款提出申诉?"比瞎猜好。
- 转人工:
other概率高,或needs_human概率高。
Jev 只能用你定义的选项作答,所以不会造出新的意图名,也没有要解析的输出,分流代码读一个键和一个数字就够了。
效果对比
我们知道的唯一独立测量是 jev-benchmarks,一项预先登记的试验:每个数据集取 100 条留出样本,比较 jev-1.13.0 和零样本模型 GLiNER。在 Banking77 上(样本中含 72 个意图):
| 模型 | 准确率 | 错误率 ≤5% 时可自动处理的消息 | 中位延迟 |
|---|---|---|---|
| Jev | 0.870 | 86% | 246 ms |
| GLiNER | 0.610 | 27% | 296 ms |
GLiNER 在 Apple M4 Max 的 CPU 上本地运行,Jev 是通过网络调用的托管 API,所以延迟这一列比较的是两种部署方式,而不是两个模型。这只是一项 100 条消息的试验,不是排行榜,也没有纳入提示式大模型或在 Banking77 上训练过的分类器,后者的门槛会更高。在 JevStation 上一个 Choice 最多 12 个选项,所以像这样 72 个意图的集合需要用下面说的两层结构。
怎么定义意图
描述客户想要什么,而不是他们用的词。 "客户为同一笔消费被扣款不止一次"能覆盖"扣了两次""重复收费""一个订单付了两笔",不用逐条列举说法。
会导向不同动作的意图要分开。 如果重复扣款和待处理交易走同一个流程,就合并;走不同流程就都保留,让概率告诉你一条消息什么时候同时涉及两者。
始终加上 other。 它的概率告诉你真实消息有多少落在流程之外,这直接提示下一个该加的意图。
意图多时分两层。 先用一个 Choice 判断领域(银行卡、转账、账户、其他),再用该领域专属的 Choice 判断具体意图。一次评估最多可以问 12 个问题,所以你可以把领域问题和每个领域的意图问题一起发出去,只读取胜出领域对应的那个意图问题。
更多措辞技巧见设计 Jev 能回答的问题。
从试用到流水线
- 从日志里抽样。 几百条真实消息,每条标上团队会给的意图,就能看出定义哪里有歧义。
- 一次跑完。 批量页面可以对 CSV 的每一行跑同一组问题,不用写代码。
- 选定阈值。 选出机器人可以独立处理的置信度,以及需要转人工的
needs_human概率。 - 线上消息走 API。 同样的评估可以用 API Key 通过 System One API 调用,扣点和试验台相同。
哪些时候 Jev 不是合适的工具
- 你还需要实体抽取。 Jev 只做分类,不会提取金额、商户或日期。这些请用代码或生成式模型提取。
- 答案取决于算术。 "我被扣的钱超过限额了吗?"是数字比较,这是 TypeSafe 明确记录的弱项。请在代码里比较。
- 你已经有大量标注数据且意图稳定。 在该任务上,用自己数据训练的分类器通常会胜过零样本模型。
- 消息不能离开你的基础设施。 Jev 是托管模型。
如果要按团队和紧急程度给整张客服工单分流,而不是按意图分类,请看客服工单分流工具。
常见问题
- 什么是意图识别?
- 意图识别(intent classification / intent detection)是把用户消息映射到它要求的动作上,比如查余额、取消付款、重置密码。聊天机器人和客服系统用它决定由哪个流程、哪条回复或哪个团队来处理。
- 用 Jev 做意图识别需要训练数据吗?
- 不需要。你用一行自然语言定义每个意图,Jev 就按这些定义分类。不过在正式依赖它之前,需要几百条已标注的消息来测量准确率、选定阈值,但让它跑起来并不需要。
- Jev 做意图识别准不准?
- 在一项预先登记的独立试验中,Jev 在银行意图数据集 Banking77 的 100 条消息上准确率为 0.870,零样本模型 GLiNER 为 0.610;在错误率不超过 5% 的前提下,Jev 能自动处理 86% 的消息。这只是一项小规模试验,请用自己的消息测量。
- 最多能定义多少个意图?
- 在 JevStation 上,一个 Choice 问题最多 12 个意图。意图更多时分两层:先分大类(如银行卡、转账、账户),再在大类里识别具体意图。
- 这个意图识别工具免费吗?
- 可以免费试用:本页的工具不用注册,每天可跑 3 次,示例可以修改,上限 2,000 字符。要用自己的意图,免费注册 JevStation 账号即送 200 点,30 天内有效,每条消息扣 1 点。
相关页面
把它接进你的流程
注册即送 200 点,保存自己的问题集,并通过 API 调用同样的评估。