Gå til innhold

Behovsstyrt KI-generering

$9 000 per måned → $700 per måned

Ved å flytte personaliserte kontaktmeldinger fra forhåndsberegning til brukerens faktiske behov ble antall modellanrop redusert med 96 %, og en foreldet batchkjede kunne fjernes.

4 min lesetidAv

Forhåndsberegningen vokste med produktets skala

Et eiendomssøk ga 50 til 500 kjøpere. Den gamle banen genererte kontaktmeldinger for hvert resultat før brukeren valgte noen å kontakte.

Dermed skalerte kostnaden med antall søkeresultater. Den burde ha skalert med det langt mindre antallet personer som faktisk fikk en melding.

Fire agenter kjørte for hver kjøper

SendFlow opprettet det første utkastet med opptil tre nye forsøk. Review Gate godtok eller avviste det, Content Rewriter justerte tone og detaljer, og Message Humanizer produserte to eller tre varianter. Åtte arbeidertråder kjørte kjeden parallelt og lagret resultatet i databasen før noen klikket Send.

Søkeresultat
  -> SendFlow (opptil tre nye forsøk)
  -> Review Gate
  -> Content Rewriter
  -> Message Humanizer (2-3 varianter)
  -> lagre alle resultater

Kjeden utførte fire til fem modellanrop per kjøper. For et søk med 500 kjøpere betydde det rundt 2 500 modellanrop før brukeren valgte en mottaker.

Åtti prosent av arbeidet ble forkastet

Brukerne kontaktet rundt 100 kjøpere i eksemplet med 500 resultater. Omtrent 80 % av de forhåndsberegnede meldingene ble aldri brukt. Det ga rundt 2 000 anrop uten et synlig resultat for brukeren. Justering av prompten kunne gjøre hvert anrop billigere, men kunne ikke forsvare at de ubrukte anropene ble kjørt.

Generer først når brukeren viser hensikt

Det reviderte søket returnerte kjøpere uten å generere kontaktmeldinger. Den uttrykkelige handlingen Regenerate with AI kalte én spesialisert agent for den valgte kontakten. Forespørselskonteksten omfattet lokasjon, telefon, fornavnet til kjøper og avsender, marked, kjøperaktivitet, formatert samtalehistorikk og kjøper-ID. Resultatet kunne fortsatt redigeres før sending.

Søk med 500 kjøpere -> generer 0 meldinger
Brukeren velger en kjøper -> sett sammen kontakt- og samtalekontekst
Regenerate with AI -> 1 modellanrop
ProgressReporter -> WebSocket-oppdatering annethvert sekund
Redigerbart resultat -> brukeren avgjør om det skal sendes

Implementasjonen utviklet seg. Ett øyeblikksbilde av kodelageret brukte en direkte REST-forespørsel når panelet for den valgte kontakten åpnet. Den senere flyten som artikkelen bygger på, la handlingen bak et uttrykkelig brukervalg og strømmet fremdriften over WebSocket. Dette er ulike stadier av produktet, ikke én samtidig kodebane.

Få behovsstyrt arbeid til å oppleves umiddelbart

Produktet hadde mer enn 25 spesialiserte agentkonfigurasjoner på gpt-4.1-nano. Én konfigurasjon ble valgt for hver forespørsel. Dette var ikke en kjede med 25 agenter. ProgressReporter sendte en WebSocket-oppdatering annethvert sekund mens meldingen ble generert.

Da genereringen ble lagt bak et klikk, ble ventetiden synlig. Jeg lot resultatet være redigerbart, viste fremdrift og genererte bare for mottakeren brukeren hadde valgt.

Fjern unødvendig arbeid i stedet for å finjustere det

I det dokumenterte eksemplet med 500 kjøpere falt antall anrop fra rundt 2 500 til rundt 100, en reduksjon på 96 %. De månedlige modellkostnadene gikk fra rundt $9 000 til rundt $700. Disse avrundede månedstallene tilsvarer en årlig kostnadsreduksjon på rundt $100 000.

Endringen fjernet også 1 218 kodelinjer, inkludert batchprosessoren på 640 linjer. Da denne banen ble slettet, forsvant også nye forsøk, arbeidere, lagring og koordinering mellom flere agenter.

  • Mål hvor mye av det genererte resultatet brukerne faktisk benytter.
  • Utfør kostbart arbeid først når produkthendelsen som trenger det, inntreffer.
  • Vis fremdrift når behovsstyrt arbeid ikke kan fullføres med én gang.
  • Slett batcharkitekturen når produktet ikke lenger er avhengig av den.