← 返回博客
工单分流客服自动化分类生产实践运维

如何用 Jev 做客服工单分流(替代脆弱的关键词规则)

·约 3 分钟

如何用 Jev 做客服工单分流(替代脆弱的关键词规则)

大多数工单路由系统败法都一样:「扣了两次」进账务,「用不了」进技术,两个词都有的工单掷硬币。错队的成本,由处理时长和客户耐心买单。

Jev 工单分流读完整工单,返回各队列概率。混合型工单会呈现混合分布——可见、可调,不确定时还能安全交给人。

一句话总结:一个选择题,选项用真实队列名(billing、tech_support、sales)。confidence < 0.7 进人工分拣。记录完整分布,尽早发现漂移。


关键词路由为何会塌

失败模式 现象 代价
关键词重叠 工单命中 2+ 队列 错队 SLA
新产品词汇 未登录词被忽略 持续误路由
多问题工单 单关键词压倒一切 只解决一半
口语 / 黑话 规则漏匹配 静默失败

概率式工单分类天生处理重叠:分布就是不确定性。


能映射到代码的队列设计

标签就用下游队列键:

["billing", "tech_support", "sales"]

避免还要映射表的 UI 名(「Billing & Payments」→ billing)。非要做,就放唯一一处映射,不要每个 worker 都写一遍。

几个队列合适?

  • 3–5 是选择题甜区。
  • 超过约 7 个概率会摊薄。
  • 宁可单独加 human_only,也不要把「其他」硬塞进现有队列。

状态文本放什么

标题:订单 #4821 被扣了两次款

同一笔订单 #4821 扣了我两次钱,麻烦尽快处理。
我已经打过一次客服电话,没人解决。

建议包含: 标题、正文、产品名、套餐、错误码、订单号。
不要: 完整支付工具信息、无关 PII、不希望模型看到的内部备注。


路由请求

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": ["billing", "tech_support", "sales"]
        }]
      }
    }]
  }'

响应示例:

{
  "selected": "billing",
  "confidence": 0.94,
  "distribution": {
    "billing": 0.94,
    "tech_support": 0.04,
    "sales": 0.02
  }
}

置信度阈值与人工兜底

置信度 动作
≥ 0.9 自动分派
0.7 – 0.9 自动分派 + 对 SLA 敏感的知会负责人
< 0.7 人工分拣队列

在类客服语料的基准上,0.7 底线只少自动分流 8%–12%,却几乎消除错队事故。低置信度回落是能力,不是模型缺口。

if (answer.confidence < 0.7) return enqueue('human_triage');
return enqueue(answer.selected);

工单分流的生产监控

  1. 记录选中项、置信度、完整分布、延迟、工单 ID。
  2. 熵告警——平均熵上升,往往比准确率下降早数周。
  3. 队列占比看板——产品上线后 human_triage 短暂升高正常;缓慢泄漏不正常。
  4. 回归集——历史上难倒人工的 50 条工单,发布前重跑。

多标签 / 多问题工单

一张工单既有账务又有技术:优先两个问题(主队列、次队列),或单独一个是非题「是否多问题」。不要让一个选择题去平均两个判断。


与大模型路由的成本延迟

方案 延迟 输出 成本形态
聊天大模型路由 1–5 秒 要解析的散文 / JSON 提示 + 补全 token
Jev 路由 70–500ms 类型化 + 分布 仅输入(约 $0.042 / 百万 token)

每天 10 万工单时,这不是零头——工具界面上的延迟客服也感受得到。


FAQ

附件和截图怎么办?
Jev 吃文本状态。上游先抽取(OCR、表单字段)再写入 state。

邮件和在线聊天也能用吗?
可以,同一套模式。见消息意图识别。

队列很多(20+)怎么办?
先聚成 4–6 个宏队列,再第二次 Jev 调用(或规则)分到子队列。


相关阅读