Jev contro un LLM
Non si contendono lo stesso lavoro. Un LLM scrive; Jev decide. Il confronto utile non è quale sia più intelligente, ma cosa deve farne il tuo codice — e quella differenza è abbastanza grande da cambiare come si scrive il programma attorno.
La stessa decisione, scritta in entrambi i modi
Instradare un ticket di assistenza verso una di quattro code. Ecco quanto ti costa davvero ciascuna strada in termini di codice.
Con un modello linguistico
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 wasCon 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);Il ciclo di ritentativi è il segnale. Esiste nella prima versione perché la risposta arriva come testo che potrebbe non essere analizzabile, o analizzarsi in una coda mai presente nell’elenco. Nella seconda non ha dove stare: la risposta è una di QUEUES per costruzione. Al suo posto arriva un ramo del tutto diverso — uno che scatta quando il modello è incerto anziché quando è malformato.
Cosa riesce a vedere la seconda versione
Quel ticket, passato per davvero attraverso Jev. La vincitrice non sorprende; la seconda classificata è la parte che un’etichetta nuda avrebbe buttato via.
Tecnico vince con l’87%, ma Account tiene il 13% — ed è esattamente il disaccordo giusto, perché un guasto SSO sta davvero al confine fra i due. Un’etichetta nuda lo avrebbe nascosto. Se sbagliare instradamento ha un costo, il 13% è il numero su cui mettere la soglia.
Fianco a fianco
- Cosa mandi
- Jev
Uno state più una mappa di domande tipizzate.
LLMUn prompt, che di solito porta schema e regole come prosa.
- Cosa torna
- Jev
Una risposta tipizzata per domanda, con una probabilità per ogni opzione.
LLMTesto. JSON se l’hai chiesto con garbo e la modalità è supportata.
- La tua riga di codice successiva
- Jev
Uno switch su un valore che può essere solo uno dei tuoi.
LLMUn’analisi, poi una validazione, poi un ramo per quando una delle due fallisce.
- Come sbaglia
- Jev
Può sbagliarsi sul tuo testo. Non può restituire una forma che non hai definito.
LLMPuò sbagliare anche la forma — un campo mancante, un’etichetta mai elencata, prosa avvolta attorno al JSON.
- Chiedere dieci cose
- Jev
Dieci domande in una richiesta, valutate contro lo state in parallelo.
LLMUn prompt affollato, oppure dieci chiamate.
- Incertezza
- Jev
Una distribuzione e un valore di confidenza, su ogni Choice e ogni Score.
LLMQuello che il testo dichiara sulla propria certezza.
I numeri
Li pubblica TypeSafe; sono cifre del fornitore, non nostre misurazioni.
risposta end to end, contro 3–329 s dei modelli di frontiera
più veloce su query di forma Sistema Uno
per milione di token in ingresso, uscita gratuita
Quello che possiamo misurare: su 14 esecuzioni fatte da questo sito, l’andata e ritorno mediano è 329 ms — e la maggior parte di quelle richieste portava nove domande, non una.
Quando l’LLM è lo strumento giusto
Quasi sempre, se quello che ti serve è linguaggio. Jev non ha un’opinione da spiegare né nulla da dire.
- Ti serve prosa — una risposta, un riassunto, un messaggio di commit, la spiegazione della decisione anziché la decisione.
- Ti serve del codice scritto, o un piano, o qualsiasi cosa aperta in cui l’insieme delle risposte non è noto prima della chiamata.
- L’insieme delle risposte possibili è davvero illimitato. Estrarre un nome arbitrario non è un Choice su 255 opzioni.
- Ti serve una catena di ragionamento ispezionabile. Jev restituisce un giudizio, non i passi che ci stanno dietro.
- Il volume è basso e la forma è lasca. Un ciclo di ritentativi che gira due volte al giorno non vale la pena di essere progettato via.
I due si compongono meglio di quanto competano. L’inquadramento di TypeSafe stesso è Sistema Uno per il giudizio strutturato e rapido e un modello ordinario come Sistema Due dietro — filtra l’input con un Noul, instrada con un Choice e passa ciò che sopravvive al modello che sa davvero scrivere.
Continua a leggere
Fai tu stesso il confronto
Incolla un ticket, una bozza, un prompt — qualsiasi cosa attorno a cui altrimenti avresti scritto un ciclo di analisi — e guarda tornare nove risposte tipizzate da una sola richiesta.
Apri il parco giochi