对比 / JevModel

用 AI 做邮件分类:入站邮件该用规则、LLM 提示还是类型化决策 API

把入站邮件分到客服、销售、账单、供应商或低价值队列:如何裁剪线程与签名、对比规则/LLM 提示/类型化 API,并把中间置信带交给人工。

最近更新:

速读:分类的是最新一封,而不是整串邮件

  • 邮件分类是在任何自动回复、退款或转发之前,把每封入站邮件分到一个有界路由——例如客服、销售、账单、供应商或低价值外联。
  • 邮件特有的工作发生在模型之前:去掉引用回复、签名和法律页脚,保留主题、发件域名和收件别名,并把附件写成元数据——纯文本模型打不开附件。
  • 规则能低成本处理已知发件人和别名;LLM 提示能处理杂乱文字但会漂移;像 JevModel 的 Choice + Noul 这样的类型化决策 API 返回固定标签集和概率,便于高置信带自动分流、中间带交给人。

邮件分类和工单分类、意图分类有什么不同?

客服工单通常是一段干净的描述;邮件则像一个信封:From、To、Reply-To 头,可能写着“Re: Fwd: 发票”的主题,最上面是最新回复,下面叠着多封引用邮件,再加签名、保密声明,有时还有附件。路由主要取决于最新那段人写的话加上少数几个头信息——发到了哪个别名、发件域名属于客户还是供应商、是不是自动回复或退信。如果直接发送原始邮件,模型会把引用历史和页脚当成证据,常常按三周前那封邮件的话题来分类。意图分类问的是“写信人想要什么”;邮件分类首先要判断“哪一部分才是写信人此刻说的话”。队列设计本身见 support-triage;跨渠道意图标签见 intent-classification。

用 Jev 进行客服分流产品与客服文本的意图分类:规则、LLM 与类型化 API

入站邮件:规则 vs LLM 提示 vs 类型化决策 API

大多数生产邮箱最终三层都会用:规则处理已知事实,模型处理正文,代码执行阈值。下表比较的是维护成本与失败模式,不是基准测试;任何方案都不能替代用你自己邮件做的带标注测试集。

如何用 JevModel API 分类文本Jev 与规则引擎怎么选?Jev vs GPT 与 Claude:如何选择判断层
入站邮件:规则 vs LLM 提示 vs 类型化决策 API
维度邮件规则 / 过滤器LLM 提示 + 解析类型化 API(JevModel Choice/Noul)
最擅长的信号头信息:收件别名、已知发件域名、自动回复与退信标记正文:改写、混合请求、委婉间接的措辞裁剪后的正文加头信息,按每个路由的书面标准打分
典型失败漏掉新措辞;规则越堆越多,没人知道是哪条触发的把引用历史当成当前内容;自创标签;改提示后 JSON 结构漂移标准写得弱,概率就会分散;长线程必须裁剪才能放进 state 上限
不确定性没有——规则要么触发要么不触发自述的置信度文字,难以校准每个选项都有概率,可设阈值并对照标签检查

把邮件交给分类器之前应该如何预处理?

邮件解析放在你自己的代码里做,然后只发送一个小的 JSON state。保留:去掉“Re:”“Fwd:”前缀的主题、收件别名(billing@、sales@)、发件域名及其是否在客户或供应商名单中、最新一封的正文。删除:引用回复(“>”开头的行,以及“On … wrote:”之后的块)、签名、保密声明、追踪像素和 HTML。对于转发链,保留转发人的附言,再加原发件人第一段的简短摘录,并标注为转发内容。附件只传文件名和类型——JevModel 接受文本或 JSON,不接受文件或图片,所以“附有 invoice.pdf”只是线索,不是 PDF 内容的证据。JevModel 要求序列化后的 state 与完整请求各自不超过 8,000 字符,裁剪后的邮件几乎总能满足。下例用一个 Choice 问题选路由,再用一个 Noul 问题判断是否需要人工立即查看。

JevModel API:请求与响应Choice、Score 与 NoulJev 是多模态 / 可下载模型吗?JevModel 实际是什么
{
  "state": {
    "subject": "Invoice 2291 charged twice",
    "to_alias": "billing@",
    "sender_domain": "customer-example.com",
    "sender_known_as": "customer",
    "latest_message": "Hi, our card was charged twice for invoice 2291 this morning. Can you refund the duplicate?",
    "attachments": [
      "receipt.png (not read)"
    ]
  },
  "questions": {
    "route": {
      "type": "choice",
      "instructions": "Which team should own the newest message in this email? Ignore attachment names as evidence.",
      "criteria": {
        "support": "Product questions, bugs, how-to or account access problems.",
        "sales": "Pricing, plans, demos, procurement or purchase questions from prospects.",
        "billing": "Charges, refunds, invoices, receipts or payment method changes.",
        "vendor": "Messages from suppliers or partners about their own services or invoices to us.",
        "low_value": "Cold outreach, newsletters, automatic notifications needing no action."
      }
    },
    "needs_person_now": {
      "type": "noul",
      "instructions": "Should a person read this email today instead of waiting in a queue?",
      "criteria": {
        "true": "Money, access, legal or a clear deadline is at stake today.",
        "false": "It can wait in the normal queue."
      }
    }
  }
}

置信度阈值应如何把邮件分给人工?

每个路由设三个置信带,并用你自己预留的邮件来设定。高置信带:把邮件移到团队文件夹或队列并打标签——低风险、可撤销的动作。中间带:放进共享复核视图,附上排名前两位的建议路由;混合型邮件(“谢谢演示,另外我们的发票有误”)就落在这里。低置信带或两个路由几乎打平:留在通用收件箱。绝不能只凭路由标签就触发不可逆操作,例如退款、合同回复或删除邮件;要在代码里加单独检查,并用 needs_person_now 这样的 Noul 问题把紧急邮件提前,不论它属于哪个路由。每个别名单独调阈值,因为 billing@ 和 info@ 的邮件构成差别很大。通用模式见 confidence-and-abstention。

Jev 概率、置信度与人工复核阈值Jev AI 决策流与人工复核分支

如何对邮件分类器做回归测试?

用真实、已匿名化的邮件构建测试夹具并冻结。覆盖那些专门会搞坏邮件路由的形态:引用历史话题与当前不同的回复;转发人只写了“见下文”的转发链;外出自动回复;投递退信;发到 billing@ 的供应商发票(应归 vendor 而不是 billing);客户用个人邮箱来信;第二语言写的邮件;以及应落入中间带的混合请求。把解析器和分类器一起跑,因为大多数回归来自裁剪逻辑的改动,而不是模型。在 JevModel 的 Console → Batch 中,可以上传 CSV、TXT 或 JSONL,每行用同一个固定问题,导出逐行答案,再用脚本与标签对齐;Batch 不会替你计算准确率。如果黄金样本的路由翻转,或中间带样本不再弃权,就判定此次改动失败。具体做法见 evaluation 和 batch-text-classification-api。

评估 Jev 工作流Jev API 批量文本分类:CSV 与 JSONL

JevModel 何时适合邮件路由,何时不适合?

JevModel 是托管的决策 API:把裁剪后的邮件作为 state,加上 1–8 个具名问题 POST 到 /api/v1/systemone,它会经 OpenRouter 调用固定模型 typesafe/jev-1.13。它适合多个服务——邮件 worker、帮助台、CRM 同步——需要共享同一套带概率的路由定义,并且你希望中间带交给人而不是硬猜。Choice 支持 2–12 个路由,Score 评估紧急度等有序等级,Noul 用概率回答是/否问题。它不适合做垃圾邮件或钓鱼过滤——请把邮件服务商自带的垃圾邮件过滤和发件人认证检查放在它前面。它无法读取附件、图片或扫描版 PDF,不开源、不提供权重下载;已验证免费账号每个 UTC 日 5 次成功运行,所以繁忙的共享邮箱需要付费套餐或批量规划。帮助台场景见 zendesk-ai-ticket-classification。

JevModel 价格与 Jev 免费额度Zendesk AI 工单分类与分流:内置 Intelligent Triage 与自定义分类器怎么选LLM-as-a-Judge:自由格式提示、量表评分,还是带弃权的类型化评审用 Jev 进行客服分流产品与客服文本的意图分类:规则、LLM 与类型化 APIJev 概率、置信度与人工复核阈值Jev API 批量文本分类:CSV 与 JSONL用户反馈分类:一个主题、一个优先级,以及为什么情感分析不够

常见问题

AI 邮件分类器能读取附件吗?

JevModel 不能:它只接受文本或 JSON。如果附件很重要,先用你自己的 OCR 或解析器提取文字,再把简短摘录放进 state;否则只传文件名和类型作为线索。

应该用 LLM 或决策 API 做垃圾邮件过滤吗?

不应该。垃圾邮件、钓鱼和发件人认证交给邮件服务商。分类器放在其后,处理冷启动外联、新闻通讯或自动通知等业务类别——这些是合法邮件,但无需回复。

这和 support-triage、Zendesk 指南有什么区别?

那些指南从已经存在的工单开始。本页讲的是之前一步:把带头信息、引用历史、签名和附件的原始邮件变成干净的 state,并在客服以外的多个团队间路由。

邮件的中间带阈值该怎么选?

按别名标注一份预留集并运行,选出自动分流仍能达到团队容忍度的最低概率。介于该点和低置信带之间的都进入复核;解析器或标准修改后重新检查。

JevModel 为独立项目,与 TypeSafe AI 无关联。