Jev laban sa isang LLM

Hindi sila naglalaban para sa parehong trabaho. Sumusulat ang LLM; nagdedesisyon ang Jev. Ang kapaki-pakinabang na paghahambing ay hindi kung alin ang mas matalino kundi kung ano ang kailangang gawin ng code mo sa sagot — at sapat na malaki ang pagkakaibang iyon para baguhin kung paano isinusulat ang buong programang nakapaligid.

Ang parehong desisyon, isinulat sa dalawang paraan

Iruta ang isang tiket sa suporta sa isa sa apat na pila. Ganito ang tunay na halaga ng bawat panig sa code.

Gamit ang isang language model

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 was

Gamit ang 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);

Ang retry loop ang nagsasato. Nariyan ito sa unang bersyon dahil dumarating ang sagot bilang tekstong maaaring hindi ma-parse, o ma-parse tungo sa pilang wala kailanman sa listahan. Sa pangalawa ay wala itong matitirhan: sa pagkakabuo pa lang, isa na sa QUEUES ang sagot. Ang pumapalit dito ay isang ganap na ibang sangay — isang sumasabog kapag hindi sigurado ang modelo sa halip na kapag sira ang output.

Ang nakikita ng pangalawang bersyon

Ang tiket na iyon, totoong pinatakbo sa Jev. Hindi nakagugulat ang nanalo; ang pangalawa ang bahaging itatapon sana ng hubad na label.

“Nagbibigay ng 500 ang SSO login namin mula nang ilabas ang 4.2 kaninang umaga. Walang makapasok sa team. Ganoon din sa Chrome at Safari, sa dalawang magkaibang tenant.”
Teknikal sa 87%, mula sa 4 pagpipilian
87% Teknikal

Panalo ang Teknikal sa 87%, pero hawak ng Account ang 13% — at tamang hindi pagkakasundo iyan, dahil talagang nasa hangganan ng dalawa ang pagpalya ng SSO. Itinago sana iyon ng hubad na label. Kung may halaga ang pagkakamali sa ruta mo, ang 13% ang numerong dapat lagyan ng threshold.

Magkatabi

Ang ipinapadala mo
Jev

Isang estado kasama ang mapa ng may-uring tanong.

LLM

Isang prompt, kadalasang dala ang schema at ang mga tuntunin bilang prosa.

Ang bumabalik
Jev

Isang may-uring sagot kada tanong, may probabilidad ang bawat pagpipilian.

LLM

Teksto. JSON kung magalang kang humingi at suportado ang mode.

Ang susunod mong linya ng code
Jev

Isang switch sa halagang maaari lamang maging isa sa mga sa iyo.

LLM

Isang pag-parse, tapos isang pagpapatunay, tapos isang sangay para kapag nabigo ang alinman.

Paano ito nabibigo
Jev

Maaari siyang magkamali tungkol sa teksto mo. Hindi siya makapagbabalik ng hugis na hindi mo itinakda.

LLM

Maaari rin siyang magkamali sa hugis — kulang na field, label na hindi mo kailanman inilista, prosang nakabalot sa JSON.

Magtanong ng sampung bagay
Jev

Sampung tanong sa isang kahilingan, sabay-sabay na sinusuri laban sa estado.

LLM

Isang siksikang prompt, o sampung tawag.

Kawalang-katiyakan
Jev

Isang distribusyon at isang halaga ng kumpiyansa, sa bawat Choice at Score.

LLM

Anuman ang inaangkin ng teksto tungkol sa sariling katiyakan nito.

Ang mga numero

Inilalathala ito ng TypeSafe; sila ang may-ari ng mga numero, hindi ito sukat namin.

70–500 ms

tugon mula dulo hanggang dulo, laban sa 3–329 s ng mga nangungunang modelo

40–200×

mas mabilis sa mga tanong na hugis-System One

$0.042

kada milyong input token, libre ang output

Ang kaya naming sukatin: sa 14 takbong ginawa sa site na ito, ang midyang oras ng balikan ay 329 ms — at karamihan sa mga kahilingang iyon ay may dalang siyam na tanong, hindi isa.

Kailan ang LLM ang tamang kasangkapan

Kadalasan, kung wika ang kailangan mo. Walang opinyon si Jev na kaya niyang ipaliwanag at wala siyang masasabi.

  • Kailangan mo ng prosa — isang sagot, isang buod, isang commit message, isang paliwanag sa desisyon sa halip na ang desisyon.
  • Kailangan mong may isulat na code, o isang plano, o anumang bukas-dulo kung saan hindi alam ang hanay ng sagot bago ang tawag.
  • Talagang walang hangganan ang hanay ng posibleng sagot. Ang pagkuha ng basta-bastang pangalan ay hindi Choice sa 255 pagpipilian.
  • Kailangan mo ng tanikala ng pangangatwirang kaya mong suriin. Nagbabalik ang Jev ng hatol, hindi ng mga hakbang sa likod nito.
  • Maliit ang dami at maluwag ang hugis. Ang retry loop na dalawang beses lang mo pinapatakbo kada araw ay hindi sulit na dinisenyong mawala.

Mas magkatugma sila kaysa magkaribal. Ang sariling balangkas ng TypeSafe ay System One para sa mabilis at nakaayos na paghatol at isang karaniwang modelo bilang System Two sa likuran — salain ang input gamit ang Noul, iruta gamit ang Choice, at ibigay ang nakaligtas sa modelong talagang marunong sumulat.

Magpatuloy sa pagbasa

Ikaw mismo ang magpatakbo ng paghahambing

I-paste ang isang tiket, isang burador, isang prompt — anumang pag-iikutan mo sana ng parsing loop — at panoorin ang siyam na may-uring sagot na bumabalik mula sa isang kahilingan.

Buksan ang palaruan