Jev kontra LLM
Nie konkurują o tę samą pracę. LLM pisze; Jev decyduje. Użyteczne porównanie nie dotyczy tego, który jest mądrzejszy, tylko tego, co twój kod musi zrobić z odpowiedzią — a ta różnica jest na tyle duża, że zmienia sposób pisania programu dookoła.
Ta sama decyzja, zapisana na oba sposoby
Skieruj zgłoszenie do wsparcia do jednej z czterech kolejek. Oto, ile każda strona naprawdę kosztuje cię w kodzie.
Z modelem językowym
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 wasZ Jevem
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);Pętla ponowień jest tu sygnałem. Istnieje w pierwszej wersji, bo odpowiedź przychodzi jako tekst, który może się nie sparsować albo sparsować na kolejkę, której nigdy nie było na liście. W drugiej nie ma gdzie mieszkać: odpowiedź jest z konstrukcji jedną z QUEUES. Zastępuje ją zupełnie inna gałąź — taka, która odpala, gdy model jest niepewny, a nie gdy jest zniekształcony.
Co widzi druga wersja
To zgłoszenie, naprawdę przepuszczone przez Jeva. Zwycięzca nie zaskakuje; drugie miejsce to ta część, którą goła etykieta by wyrzuciła.
Techniczny wygrywa z 87%, ale Konto trzyma 13% — i to jest dokładnie właściwa niezgoda, bo awaria SSO naprawdę leży na granicy między nimi. Goła etykieta by to ukryła. Jeśli pomyłka w routingu kosztuje, 13% to liczba, na której stawiasz próg.
Obok siebie
- Co wysyłasz
- Jev
Jeden state plus mapę typowanych pytań.
LLMPrompt, zwykle niosący schemat i reguły jako prozę.
- Co wraca
- Jev
Po jednej typowanej odpowiedzi na pytanie, z prawdopodobieństwem dla każdej opcji.
LLMTekst. JSON, jeśli ładnie poprosiłeś i tryb jest wspierany.
- Twoja następna linia kodu
- Jev
Switch na wartości, która może być tylko jedną z twoich.
LLMParsowanie, potem walidacja, potem gałąź na wypadek, gdy któreś zawiodło.
- Jak zawodzi
- Jev
Może się mylić co do twojego tekstu. Nie może zwrócić kształtu, którego nie zdefiniowałeś.
LLMMoże się mylić także co do kształtu — brakujące pole, etykieta, której nigdy nie wymieniłeś, proza owinięta wokół JSON-a.
- Pytanie o dziesięć rzeczy
- Jev
Dziesięć pytań w jednym żądaniu, ocenianych wobec state równolegle.
LLMJeden zatłoczony prompt albo dziesięć wywołań.
- Niepewność
- Jev
Rozkład i wartość pewności przy każdym Choice i Score.
LLMCokolwiek tekst twierdzi o własnej pewności.
Liczby
Publikuje je TypeSafe; to dane producenta, nie nasze pomiary.
odpowiedź od końca do końca, wobec 3–329 s dla modeli z czołówki
szybciej przy zapytaniach o kształcie Systemu Pierwszego
za milion tokenów wejściowych, wyjście za darmo
To, co możemy zmierzyć: na 14 przebiegach wykonanych przez tę stronę mediana czasu przelotu wynosi 329 ms — a większość tych żądań niosła dziewięć pytań, nie jedno.
Kiedy LLM jest właściwym narzędziem
Przez większość czasu, jeśli potrzebujesz języka. Jev nie ma opinii, którą mógłby wyjaśnić, ani niczego do powiedzenia.
- Potrzebujesz prozy — odpowiedzi, streszczenia, opisu commita, wyjaśnienia decyzji zamiast samej decyzji.
- Potrzebujesz napisanego kodu albo planu, albo czegokolwiek otwartego, gdzie zbiór odpowiedzi nie jest znany przed wywołaniem.
- Zbiór możliwych odpowiedzi jest naprawdę nieograniczony. Wyciągnięcie dowolnej nazwy własnej to nie Choice po 255 opcjach.
- Potrzebujesz łańcucha rozumowania, który da się obejrzeć. Jev zwraca osąd, a nie kroki, które do niego prowadzą.
- Wolumen jest mały, a kształt luźny. Pętli ponowień, która chodzi dwa razy dziennie, nie warto projektować na wylot.
Te dwa lepiej się składają, niż konkurują. Samo ujęcie TypeSafe to System Pierwszy do szybkiego, ustrukturyzowanego osądu i zwykły model jako System Drugi za nim — przesiej wejście Noulem, poroutuj Choice’em i przekaż to, co przetrwało, modelowi, który naprawdę potrafi pisać.
Czytaj dalej
Przeprowadź to porównanie sam
Wklej zgłoszenie, szkic, prompt — cokolwiek, wokół czego inaczej napisałbyś pętlę parsowania — i patrz, jak dziewięć typowanych odpowiedzi wraca z jednego żądania.
Otwórz plac zabaw