Jev versus um LLM
Eles não disputam a mesma vaga. Um LLM escreve; o Jev decide. A comparação útil não é qual é mais esperto, mas o que seu código precisa fazer com a resposta — e essa diferença é grande o bastante para mudar como o programa ao redor é escrito.
A mesma decisão, escrita das duas formas
Rotear um chamado de suporte para uma de quatro filas. Aqui está o que cada lado realmente custa em código.
Com um modelo de linguagem
const res = await llm.chat({
messages: [{ role: "user", content:
`Route this ticket. Reply with JSON: {"queue": "Billing"|"Technical"|"Account"|"Sales"}
Ticket: ${ticket}` }],
response_format: { type: "json_object" }
});
let queue;
try {
queue = JSON.parse(res.content).queue; // may not be JSON
} catch {
return retry(); // ...so there is a retry
}
if (!QUEUES.includes(queue)) return retry(); // may be a queue you never had
// and no idea how close the call wasCom o Jev
const { answers } = await jev.systemOne({
state: ticket,
model: "jev-latest",
questions: { queue: { type: "choice", instructions:
"Which team should own this ticket?", criteria: QUEUES } }
});
const { choice, probabilities, confidence } = answers.queue;
// choice is one of QUEUES. It cannot be anything else.
if (confidence < 0.7) return humanReview(ticket, probabilities);
route(choice);O laço de retentativa é o sinal. Ele existe na primeira versão porque a resposta chega como texto que pode não parsear, ou parsear numa fila que nunca esteve na lista. Na segunda ele não tem onde morar: a resposta é uma de QUEUES por construção. O que entra no lugar é um ramo totalmente diferente — um que dispara quando o modelo está inseguro, não quando está malformado.
O que a segunda versão consegue ver
Aquele chamado, passado pelo Jev de verdade. A vencedora não surpreende; a segunda colocada é a parte que um rótulo cru teria jogado fora.
Técnico vence com 87%, mas Conta fica com 13% — e essa é exatamente a discordância certa, porque uma falha de SSO fica mesmo na fronteira entre os dois. Um rótulo cru teria escondido isso. Se errar o roteamento tem custo, 13% é o número sobre o qual colocar o limiar.
Lado a lado
- O que você envia
- Jev
Um state mais um mapa de perguntas tipadas.
LLMUm prompt, normalmente carregando o esquema e as regras como prosa.
- O que volta
- Jev
Uma resposta tipada por pergunta, com probabilidade para cada opção.
LLMTexto. JSON se você pediu com jeitinho e o modo é suportado.
- Sua próxima linha de código
- Jev
Um switch sobre um valor que só pode ser um dos seus.
LLMUm parse, depois uma validação, depois um ramo para quando qualquer um dos dois falhar.
- Como ele falha
- Jev
Ele pode errar sobre o seu texto. Não pode devolver uma forma que você não definiu.
LLMEle também pode errar na forma — um campo faltando, um rótulo que você nunca listou, prosa embrulhando o JSON.
- Perguntar dez coisas
- Jev
Dez perguntas numa requisição, avaliadas contra o state em paralelo.
LLMUm prompt lotado, ou dez chamadas.
- Incerteza
- Jev
Uma distribuição e um valor de confiança em cada Choice e Score.
LLMO que o texto afirmar sobre a própria certeza.
Os números
A TypeSafe publica estes; são números do fornecedor, não medições nossas.
resposta de ponta a ponta, contra 3–329 s dos modelos de fronteira
mais rápido em consultas no formato Sistema Um
por milhão de tokens de entrada, saída gratuita
O que dá para medir: ao longo de 14 execuções feitas por este site, a mediana da ida e volta é 329 ms — e a maioria dessas requisições carregava nove perguntas, não uma.
Quando o LLM é a ferramenta certa
Na maior parte do tempo, se o que você precisa é de linguagem. O Jev não tem opinião para explicar nem nada a dizer.
- Você precisa de prosa — uma resposta, um resumo, uma mensagem de commit, uma explicação da decisão em vez da decisão.
- Você precisa de código escrito, de um plano, ou de qualquer coisa aberta em que o conjunto de respostas não seja conhecido antes da chamada.
- O conjunto de respostas possíveis é genuinamente ilimitado. Extrair um nome arbitrário não é um Choice sobre 255 opções.
- Você precisa de uma cadeia de raciocínio inspecionável. O Jev devolve um julgamento, não os passos por trás dele.
- O volume é baixo e a forma é frouxa. Um laço de retentativa que roda duas vezes por dia não vale o esforço de projetar para eliminar.
Os dois se combinam melhor do que competem. O próprio enquadramento da TypeSafe é Sistema Um para o julgamento estruturado e rápido e um modelo comum como Sistema Dois atrás dele — filtre a entrada com um Noul, roteie com um Choice e passe o que sobreviver para o modelo que sabe mesmo escrever.
Continue lendo
Faça você mesmo a comparação
Cole um chamado, um rascunho, um prompt — qualquer coisa em volta da qual você teria escrito um laço de parsing — e veja nove respostas tipadas voltarem de uma única requisição.
Abrir o playground