Comparações / JevModel
Classificação de e-mails com IA: regras, prompts LLM ou uma API de decisão tipada para o e-mail recebido
Roteie o e-mail recebido para suporte, vendas, cobrança, fornecedores ou filas de baixo valor: limpe threads e assinaturas, compare regras, prompts LLM e APIs tipadas e envie a faixa média a pessoas.
Última atualização:
Resposta rápida: classifique a mensagem mais recente, não a caixa inteira
- A classificação de e-mails atribui cada mensagem recebida a uma rota limitada—suporte, vendas, cobrança, fornecedor ou prospecção de baixo valor—antes que qualquer automação responda, reembolse ou encaminhe.
- O trabalho específico de e-mail acontece antes do modelo: remova respostas citadas, assinaturas e rodapés legais; mantenha assunto, domínio do remetente e alias do destinatário; descreva anexos como metadados, pois um modelo só de texto não os abre.
- Regras resolvem remetentes e aliases conhecidos com baixo custo; prompts LLM lidam com texto bagunçado mas derivam; uma API de decisão tipada como Choice mais Noul do JevModel retorna rótulos fixos com probabilidades, para rotear a faixa alta e mandar a média a pessoas.
O que diferencia a classificação de e-mails da de tickets ou de intenção?
Um ticket de suporte costuma chegar como uma descrição limpa. Um e-mail chega como um envelope: cabeçalhos From, To e Reply-To, um assunto que pode dizer “Re: Fwd: Fatura”, a resposta nova no topo, várias mensagens citadas embaixo, uma assinatura, um rodapé de confidencialidade e às vezes anexos. A rota depende principalmente do último parágrafo escrito por uma pessoa e de alguns cabeçalhos: para qual alias foi enviado, se o domínio do remetente é de cliente ou fornecedor, e se é resposta automática ou devolução. Se você envia a mensagem bruta, o modelo lê o histórico citado e o rodapé como evidência e muitas vezes classifica pelo assunto de um e-mail de três semanas atrás. Classificação de intenção pergunta o que quem escreve quer; a de e-mails primeiro decide qual parte do e-mail é a fala atual dessa pessoa. Para desenho de filas, veja support-triage; para rótulos de intenção entre canais, intent-classification.
Route customer support with JevClassificação de intenção em texto de produto e suporte: regras, LLMs e APIs tipadasE-mail recebido: regras vs prompts LLM vs API de decisão tipada
A maioria das caixas em produção acaba com as três camadas: regras para fatos conhecidos, um modelo para o texto e código que aplica limiares. A tabela compara manutenção e modos de falha; não é benchmark, e nenhuma opção substitui um conjunto rotulado com seus próprios e-mails.
How to classify text with the JevModel APIJev or rules?Jev vs GPT and Claude: choosing a decision layer| Dimensão | Regras / filtros de e-mail | Prompt LLM + parsing | API tipada (JevModel Choice/Noul) |
|---|---|---|---|
| Melhor sinal | Cabeçalhos: alias de destino, domínios conhecidos, marcas de resposta automática e devolução | O corpo: paráfrases, pedidos misturados, redação indireta | Corpo limpo mais cabeçalhos, avaliados contra critérios escritos por rota |
| Falha típica | Perde redações novas; as regras crescem até ninguém saber qual disparou | Lê o histórico citado como atual; inventa rótulos; o JSON deriva após editar o prompt | Critérios fracos geram probabilidades espalhadas; threads longas precisam ser cortadas para caber no limite de state |
| Incerteza | Nenhuma: a regra dispara ou não | Confiança autodeclarada em texto, difícil de calibrar | Probabilidades por opção, com limiares verificáveis contra rótulos |
Como preparar um e-mail antes de enviá-lo a um classificador?
Faça o parsing do e-mail no seu código e envie um state JSON pequeno. Mantenha: o assunto sem prefixos “Re:” e “Fwd:”, o alias de destino (billing@, sales@), o domínio do remetente e se ele está na sua lista de clientes ou fornecedores, e o corpo da mensagem mais recente. Remova: respostas citadas (linhas com “>” e blocos após “On … wrote:”), assinaturas, rodapés de confidencialidade, pixels de rastreamento e HTML. Numa cadeia encaminhada, mantenha a nota de quem encaminhou mais um trecho curto do primeiro parágrafo do remetente original, marcado como encaminhado. De anexos, passe só nome e tipo: o JevModel aceita texto ou JSON, não arquivos nem imagens, então “invoice.pdf anexado” é uma pista, não evidência do que o PDF diz. No JevModel, o state serializado e a requisição completa devem caber cada um em 8.000 caracteres, o que um e-mail limpo quase sempre cumpre. O exemplo faz uma pergunta Choice para a rota e uma Noul para saber se uma pessoa deve olhar agora.
JevModel API: request and responseChoice, Score, and NoulJev é multimodal / baixável? O que o JevModel realmente é{
"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."
}
}
}
}Como os limiares de confiança devem rotear e-mails para pessoas?
Use três faixas por rota, definidas com seus próprios e-mails reservados. Faixa alta: mova o e-mail para a pasta ou fila da equipe e aplique um rótulo—ações de baixo risco e reversíveis. Faixa média: uma visão de revisão compartilhada com as duas rotas sugeridas principais; é aqui que caem os e-mails mistos (“obrigado pela demo, e nossa fatura está errada”). Faixa baixa ou quase empate entre duas rotas: deixe na caixa geral. Nunca deixe um rótulo de rota disparar sozinho um passo irreversível como reembolso, resposta contratual ou exclusão da mensagem; exija uma verificação separada no código e use uma pergunta Noul como needs_person_now para adiantar e-mails urgentes, qualquer que seja a rota. Reajuste as faixas por alias, porque billing@ e info@ recebem misturas muito diferentes. O padrão geral está em confidence-and-abstention.
Jev probability, confidence and human-review thresholdsAI Decision Flows with Jev and human reviewComo fazer testes de regressão de um classificador de e-mails?
Monte fixtures com e-mails reais anonimizados e congele-os. Cubra os formatos que quebram o roteamento de e-mail: uma resposta cujo histórico citado trata de outro assunto, uma cadeia encaminhada em que quem encaminha só escreve “veja abaixo”, uma resposta de ausência, uma devolução de entrega, uma fatura de fornecedor enviada a billing@ (vendor, não billing), um cliente escrevendo de um endereço pessoal, uma mensagem em segundo idioma e um pedido misto que deve cair na faixa média. Rode parser e classificador juntos, pois a maioria das regressões vem de mudanças no recorte, não do modelo. No Console → Batch do JevModel você pode enviar linhas CSV, TXT ou JSONL com uma pergunta fixa, exportar respostas por linha e juntá-las aos rótulos com um script; o Batch não calcula acurácia para você. Reprove a mudança se rotas ouro mudarem ou se fixtures da faixa média deixarem de se abster. Veja evaluation e batch-text-classification-api.
Evaluate a Jev workflowBatch text classification with the JevModel APIQuando o JevModel serve para roteamento de e-mail e quando não?
O JevModel é uma API de decisão hospedada: você faz POST em /api/v1/systemone com o e-mail limpo como state e 1–8 perguntas nomeadas, e ele chama o modelo fixo typesafe/jev-1.13 via OpenRouter. Serve quando vários serviços—um worker de e-mail, um help desk, uma sincronização com CRM—precisam compartilhar uma definição de rotas com probabilidades, e quando você quer que a faixa média chegue a pessoas em vez de chutar. Choice aceita 2–12 rotas, Score avalia níveis ordenados como urgência e Noul responde sim/não com probabilidade. Não serve como filtro de spam ou phishing: mantenha na frente os filtros de spam e a autenticação de remetente do seu provedor. Não lê anexos, imagens nem PDFs escaneados, não é open source nem tem pesos para download, e contas gratuitas verificadas têm 5 execuções bem-sucedidas por dia UTC, então uma caixa compartilhada movimentada precisa de plano pago ou processamento em lote planejado. Para help desks, veja zendesk-ai-ticket-classification.
JevModel pricing and free Jev runsClassificação e roteamento de tickets Zendesk AI: Intelligent Triage nativo vs classificador próprioLLM-as-a-judge: prompts livres, pontuação por rubrica ou um juiz tipado com abstençãoRoute customer support with JevClassificação de intenção em texto de produto e suporte: regras, LLMs e APIs tipadasJev probability, confidence and human-review thresholdsBatch text classification with the JevModel APIClassificação de feedback de clientes: um tema, uma prioridade e por que sentimento não bastaPerguntas frequentes
Um classificador de e-mails com IA consegue ler anexos?
O JevModel não: aceita apenas texto ou JSON. Se um anexo importa, extraia antes o texto com seu próprio OCR ou parser e passe um trecho curto no state; caso contrário, passe só nome e tipo como pista.
Devo usar um LLM ou uma API de decisão como filtro de spam?
Não. Deixe spam, phishing e autenticação de remetente com seu provedor de e-mail. Use o classificador depois, para categorias de negócio como prospecção fria, newsletters ou notificações automáticas: e-mails legítimos que não precisam de resposta.
Qual a diferença para os guias support-triage e Zendesk?
Esses guias partem de um ticket já existente. Esta página cobre o passo anterior: transformar um e-mail bruto com cabeçalhos, histórico citado, assinaturas e anexos num state limpo e roteá-lo entre equipes além do suporte.
Como escolho o limiar da faixa média para e-mails?
Rotule um conjunto reservado por alias, execute-o e escolha a menor probabilidade em que o e-mail roteado automaticamente ainda acerta com a frequência que sua equipe tolera. Tudo entre esse ponto e a faixa baixa vai para revisão; verifique de novo após mudar parser ou critérios.
JevModel é independente e não é afiliado à TypeSafe AI.