Säde, millest see kõik alguse sai
Jälgisin huviga tehisintellekti ja suurte keelemudelite plahvatuslikku levikut, kuid enamasti pealtvaatajana. Muidugi, ma mängisin ChatGPT ja Claude'iga nagu kõik teisedki, kuid oma tehisintellekti assistendi loomine tundus olevat reserveeritud sügavate taskute ja sügavamate teadmistega meeskondadele. Sellegipoolest ei saanud ma lahti mõttest, et kohandatud vestlusbot – selline, mis teadis minu äri nii seest kui ka väljast – võiks olla lahendus, mida ma hädasti vajan.
See, mis sai alguse nädalavahetuse projektist enda aja säästmiseks, arenes kuue kuu pikkuseks kinnisideeks, mis muutis põhjalikult seda, kuidas ma lähenen tarkvaraarendusele, kasutajakogemusele ning inimese ja arvuti suhtluse olemusele. See on lugu sellest, kuidas ma oma vestlusroti ehitasin, mida ma selle käigus õppisin ja miks võiksite ka teie luua.
Õige tehnoloogiakomplekti valimine
Pärast nädalaid kestnud uurimistööd ja mitmeid kontseptsiooni tõestamise katseid otsustasin hübriidse lähenemisviisi kasuks. Kasutaksin ajuna peenhäälestatud avatud lähtekoodiga keelemudelit, mis oleks ühendatud taasesitusega suurendatud põlvkonna (RAG) süsteemiga, et anda sellele juurdepääs minu veebisaidi dokumentatsioonile ja KKK sisule. See võimaldaks vestlusrotil omada üldist luureandmeid, olles samal ajal minu ettevõttega konkreetselt kursis.
Mudeli enda jaoks valisin Mistrali 7B parameetrimudeli – piisavalt väike, et töötada minu tagasihoidliku serveri seadistusega, kuid piisavalt võimas, et käsitleda loomulikku keelt muljetavaldava ladususega. RAG-komponent kasutaks vektorandmebaasi (Pinecone), et salvestada minu dokumentatsiooni manuseid, võimaldades vestlusrotil küsimustele vastamisel asjakohast teavet hankida.
Esikülg ehitati Reactiga, API-kõnede ja töötlemisega tegeleb Node.js-i taustaprogramm. Valisin WebSocketsi, et säilitada vestlusühendust kasutajatega, võimaldades loomulikumat edasi-tagasi liikumist ilma lehtede uuesti laadimiseta.
See virn andis mulle vajaliku paindlikkuse, hoides samal ajal kulud hallatavana. Avatud lähtekoodiga sihtasutus tähendas, et ma ei pidanud kinni API hinnakujundusest, mis võib hüppeliselt tõusta, kui mu sait äkki populaarseks muutub, samas kui vektorandmebaasi lähenemine tagas, et mu vestlusrobotil on alati juurdepääs minu teenuste kõige värskemale teabele.
Andmete kogumine ja koolitus: teie vestlusroboti elujõud
Alustasin sadade meilivahetuste, tugipiletite ja reaalajas vestluste logide läbi kammimisega. Ma muutsin need andmed anonüümseks, eraldades inimeste esitatud küsimuste mustrid ja – mis kõige tähtsam – kuidas ma neile vastasin. See andis mulle koolitusnäiteid, mis peegeldasid minu tegelikku tooni, tehniliste detailide taset ja probleemide lahendamise lähenemisviisi.
Struktureeritud teadmiste saamiseks koostasin põhjaliku KKK-dokumendi, mis hõlmab kõike alates hinnaküsimustest kuni tehniliste kirjeldusteni. Samuti dokumenteerisin tavalised tõrkeotsingu töövood, jäädvustades otsustuspuud, mida alateadlikult järgin, kui aitan klientidel probleeme diagnoosida.
Koolitusprotsess ise oli korduv ja alandlik. Minu esimene katse andis välja vestlusroti, mis teadis minu ettevõtte kohta fakte, kuid vastas nagu ettevõtte käsiraamat. Sellel puudus soojus ja kohatine huumor, mis iseloomustasid minu enda suhtlust. Tagasi joonistuslaua juurde läksin, keskendudes seekord näidete lisamisele, mis tutvustasid teabe kõrval ka isikupära.
Üheks ootamatuks väljakutseks oli vestlusrobotile õpetamine, millal öelda "ma ei tea", mis on iga AI-süsteemi oluline oskus. Pidin teda spetsiaalselt koolitama, et ta tunneks ära oma teadmiste piire ja pakkuma vajadusel selgeid teid inimlikule toele. See nõudis negatiivsete näidete ja äärmuslike juhtumite loomist, kus õige vastus oli vastuse eskaleerimine, mitte improviseerimine.
Pärast kolme koolituse iteratsiooni sain lõpuks mudeli, mis suutis läbida nn kesköötesti – kas see saab hakkama selliste küsimustega, millele ma hiljaks jäin, et vastata? Kui see juhtis kasutaja edukalt läbi meie API autentimisprotsessi sama selgelt, nagu ma kasutaksin, teadsin, et oleme kuhugi jõudmas.
Konteksti teadlikkuse rakendamine: vestluste voolamine
Minu esimene rakendus kasutas lihtsat konteksti akent, mis lihtsalt lisas igale uuele päringule paar viimast vahetust. See toimis põhiliste järelküsimuste puhul, kuid läks keeruliste stsenaariumide korral kiiresti katki. Kui kasutaja küsiks funktsiooni A, seejärel funktsiooni B kohta ja vaataks seejärel uuesti funktsiooni A kohta, satuks vestlusbot segadusse.
Lõpuks rakendasin keerukama kontekstihaldussüsteemi, mis kasutas tehnikate kombinatsiooni:
Libisev kontekstiaken, mis seadis esikohale hiljutised teabevahetused, kuid säilitas ka olulise varasema teabe
Olemi jälgimine tuvastamaks, millal kasutajad viitasid tagasi eelnevalt mainitud toodetele või funktsioonidele
Seansi oleku haldamine, et jälgida, kus kasutajad mitmeetapilistes protsessides, nagu konto seadistamine, olid
Läbimurre saabus siis, kui lisasin asjakohasushinnangu, et teha kindlaks, millised vestlusajaloo osad on praeguse päringu jaoks kõige olulisemad. Selle asemel, et pimesi kaasata viimast N vahetust, hindas süsteem nüüd, millised vestluse eelnevad osad olid uue küsimusega semantiliselt kõige enam seotud.
See muutis kasutajate rahulolu maailma eriliseks. Vestlusbot saab nüüd hakkama loomulike vestlusvoogudega, näiteks: "Kui palju maksab põhiplaan?" → "Milliseid funktsioone see sisaldab?" → "Ja lisatasu plaan?" → "Kas sellel on varem mainitud failijagamise funktsioon?" Ilma konteksti maha jätmata või segadusse sattumata.
Jälgida, kuidas kasutajad süsteemiga pettumusteta suhtlevad, oli tohutult rahuldustpakkuv – nad ei kohanenud vestlusroboti piirangutega; vestlusrobot kohanes nende loomuliku vestlusstiiliga.
Edge-juhtumite ja tõrkerežiimide käsitlemine
Üks külastaja püüdis 15 minutit veenda minu vestlusrobotit kirjutama luuletust küberjulgeolekust (millestki, mis ületab selle ettenähtud eesmärki). Teine proovis seda kasutada üldise programmeerimisassistendina, kleepides sisse koodilõigud ja paludes silumisabi tehnoloogiate jaoks, mis ei ole minu ettevõttega seotud. Kõige murettekitavamad olid juhuslikud "hallutsinatsioonid" – juhtumid, kus vestlusrobot andis enesekindlalt valet teavet, tõlgendades dokumente valesti või üldistades koolitusnäidete põhjal.
Ma käsitlesin neid väljakutseid mitmekihilise lähenemisviisi kaudu:
Esiteks rakendasin süsteemiviipale selgemad ulatuse piirid, andes mudelile selgesõnaliselt juhised selle eesmärgi ja piirangute kohta. See vähendas nende kasutajate esinemist, kes üritavad seda soovimatutel eesmärkidel kasutada.
Teiseks lisasin enesekindluse hindamismehhanismi. Kui mudeli väljund näitas ebakindluse märke (keeleliste markerite või madala ennustuskindluse tõttu), tunnistab see kasutajale seda ebakindlust, mitte ei esita oletusi faktidena.
Kolmandaks lõin selgete päästikutega eskalatsiooniraja. Teatud teemad või kasutaja pettumuse tuvastamine ajendaksid vestlusbotit pakkuma kasutaja minuga otseühendust, luues sujuva üleandmise kogemuse.
Lõpuks seadsin üles tagasisideahela, kus kasutajad said märgistada probleemsed vastused, mis lisati automaatselt ülevaatusjärjekorda. See andis mulle süstemaatilise võimaluse probleeme tuvastada ja parandada, selle asemel, et mängida äärmuslike juhtumitega.
Võib-olla andis kõige väärtuslikum õppetund nende äärmuslike juhtumite analüüsimisest: täiuslik vestlusbot ei teinud kunagi vigu, vaid see, mis käsitles oma piiranguid graatsiliselt ja teadis, millal inimene kaasata. See vaatenurga muutus muutis seda, kuidas ma edu hindasin ja suunasin oma edasisi parandusi.
Testi tehisintellekti OMA veebisaidil 60 sekundiga
Vaata, kuidas meie tehisintellekt analüüsib koheselt sinu veebisaiti ja loob personaliseeritud vestlusroboti - ilma registreerimiseta. Sisesta lihtsalt oma URL ja jälgi, kuidas see toimib!
UI/UX disain: muutke oma vestlusrobot ligipääsetavaks
Esimene minu ehitatud liides oli tehniliselt funktsionaalne, kuid tundus steriilne ja mehaaniline. Kasutajatestid näitasid, et inimesed kõhklesid sellega tegelemast – see lihtsalt ei tundunud kutsuv. Läksin tagasi joonestuslaua juurde, pidades silmas järgmisi põhimõtteid:
Isiksus on oluline: lisasin peened kujunduselemendid, mis peegeldasid vestlusroboti isikupära – sõbralik avatar, inimrütme jäljendavad tippimisnäitajad ja aeg-ajalt animatsioonid, mis andsid sellele elujõulise tunde, ilma et see kummalisse orgu ületaks.
Seadke selged ootused: koostasin sissejuhatava sõnumi, mis selgitas selgelt, mille vastu vestlusbot võib aidata ja selle piiranguid, seades algusest peale sobivad kasutajaootused.
Järkjärguline avalikustamine: selle asemel, et kasutajaid kõigi võimalustega üle koormata, rakendasin süsteemi, kus vestlusbot soovitab vestluse konteksti põhjal asjakohaseid järelmeetmeid.
Mobiilipõhine disain: pärast seda, kui nägin, et üle 60% minu kasutajatest pääseb saidile mobiilseadmetes, kujundasin vestlusliidese täielikult ümber, et see töötaks veatult väiksematel ekraanidel – suuremad puuteobjektid, täisekraani vestlusrežiim ja häälsisestusvalikud.
Visuaalne tagasiside: lisasin peened olekuindikaatorid, et kasutajad teaksid alati, mis toimub – kas vestlusbot "mõtleb", kas on ühendusega probleeme või on vestlusesse sattunud inimene.
Üks konkreetne kasutajaliidese element tegi üllatava erinevuse: "selgitamise" nupp, mida kasutajad said puudutada, kui nad tundsid, et vestlusrobot sai neist valesti aru. See lihtne funktsioon parandas oluliselt kasutajate rahulolu, kuna andis neile selge tee edasi, kui side katkes, selle asemel, et sundida küsimust nullist ümber sõnastama.
Enne-pärast mõõdikud olid silmatorkavad – keskmine vestluse pikkus kasvas 340% ja kasutajate arv, kes naasid mitu korda vestlusrobotit kasutama, kahekordistus. Õppetund oli selge: tehniline võimekus ei tähenda vähe, kui inimliides tekitab hõõrdumist.
Integratsioon olemasolevate süsteemidega
Esialgne integreerimine oli põhiline – vestlusbot võis otsida dokumentatsioonist ja tal oli kirjutuskaitstud juurdepääs KKK-dele. Kuid kasutajad tahtsid kiiresti rohkem: "Kas saate minu tellimuse olekut kontrollida?" "Kas saate mu meiliaadressi värskendada?" "Kas saate mulle tugipileti luua?" Need taotlused olid kasutaja seisukohast täiesti mõistlikud, kuid nõudsid sügavamat süsteemiintegratsiooni.
Kasutasin mikroteenuste lähenemisviisi, luues spetsiifilised API lõpp-punktid, mida vestlusbot saaks sobiva autentimisega helistada. Igal integratsioonil olid oma turvakaalutlused. Kirjutuskaitstud toimingute jaoks, nagu tellimuse oleku kontrollimine, rakendasin kinnitusvoo, kus kasutajad peavad esitama tellimuse numbrid ja seotud meilid. Kirjutamistoimingute jaoks, nagu konto üksikasjade värskendamine, koostasin tugevama autentimisetapi.
Üks eriti kasulik integratsioon oli minu piletisüsteemiga. Kui vestlusbot tuvastas, et see ei suuda probleemi adekvaatselt lahendada, pakub see tugipileti loomist, mis on eelnevalt täidetud vestluste ajalooga (kasutaja loaga). See tähendas, et kui ma lõpuks piletile vastasin, oli mul täielik kontekst, ilma et kasutajal oleks vaja ennast korrata.
Integratsioonid muutsid vestlusroboti iseseisvast küsimuste ja vastuste süsteemist tõeliseks äriassistendiks. Tavaliste probleemide keskmine lahendamise aeg langes 8 tunnilt (ootan, kuni ma meilidele vastan) alla 3 minuti. Võib-olla veelgi olulisem on see, et kasutajad teatasid suuremast rahulolust isegi siis, kui vestlusrobot ei suutnud nende probleemi täielikult lahendada, kuna see võib pakkuda koheseid olekuvärskendusi ja luua piletimüügisüsteemi kaudu vastutuse.
Õppetund: vestlusroboti väärtus mitmekordistub, kui see saab kasutada teie olemasolevaid süsteeme ja teha kasutajate nimel kasulikke toiminguid, mitte ainult neist rääkida.
Edu mõõtmine: analüüs ja pidev täiustamine
Rakendasin mitmekülgset analüüsimeetodit:
Vestluste mõõdikud: jälgisin lõpetamise määra (kas kasutajad said oma küsimustele vastused?), vestluse pikkust, loobumispunkte ja teemade jaotust, et mõista, milleks inimesed vestlusrobotit tegelikult kasutavad.
Ettevõtluse mõju mõõdikud: mõõtsin tavaliste küsimuste puhul meilide arvu vähenemist, tugipiletite kõrvalekalde määra (probleemid lahendati ilma pileteid loomata) ja klientide päringute lahendamise aega.
Kasutajate rahulolu: pärast iga vestlust said kasutajad oma kogemusi hinnata ja ma analüüsisin neid hinnanguid vestluste ärakirjade põhjal, et tuvastada positiivsete ja negatiivsete kogemuste mustrid.
Tulude mõju: jälgisin vestlusbotiga suhtlenud kasutajate konversioonimäärasid võrreldes nendega, kes seda ei teinud, eriti vestluste puhul, kus vestlusbot soovitas konkreetseid teenuseid.
Andmed näitasid üllatavaid teadmisi. Näiteks ei olnud vestlusbot kõige väärtuslikum mitte kõige lihtsamate küsimuste jaoks (mida saaks lahendada parema dokumentatsiooniga) või kõige keerulisemate küsimuste jaoks (mis lõpuks nõudis inimese sekkumist), vaid kesktee probleemide jaoks, mis nõudsid edasi-tagasi selgitamist, kuid järgisid väljakujunenud mustreid.
Samuti avastasin, et vestlusbotiga suhtlenud kasutajad registreerusid 37% tõenäolisemalt esmaklassiliste teenuste jaoks, mitte tingimata seetõttu, et vestlusbot oli suurepärane müügimees, vaid seetõttu, et see vähendas hõõrdumist klienditeekonna teabe kogumise faasis.
Need mõõdikud juhtisid minu täiustamise tegevuskava. Pidasin prioriteediks valdkondade täiustamist, kus vestlusbot juba väärtuslikuks osutus, selle asemel, et püüda seda kõike teha. Iga kahe nädala järel vaatasin üle vestluslogid, kus kasutajad väljendasid rahulolematust, tuvastasid mustrid ja rakendasin sihipäraseid täiustusi – olgu see siis täiendavaid koolitusandmeid, UX-i muudatusi või uusi süsteemiintegratsioone.
See andmepõhine lähenemine muutis vestlusroti lahedast tehnoloogilisest projektist tõeliseks ärivaraks, millel on mõõdetav investeeringutasuvus.
Saadud õppetunnid ja tulevikujuhised
Alustage kitsalt, seejärel laiendage: minu kõige edukam lähenemine oli keskenduda vestlusbotile mõne asja erakordselt hästi tegemisele enne selle võimaluste laiendamist. Esialgne versioon käsitles ainult põhilisi tooteküsimusi, kuid tegi seda suure täpsusega.
Inimese ja tehisintellekti üleandmine on kriitiline: disain graatsilise eskalatsiooni jaoks algusest peale. Hetked, mil teie vestlusrobot tunneb ära oma piirangud ja läheb sujuvalt üle inimeste toele, on sama olulised kui küsimused, millele ta saab otse vastata.
Investeerige heasse vestluskujundusse: teie viipade, koolitusandmete ja vestlusvoogude kvaliteet loeb rohkem kui toormudeli võimalused. Hästi läbimõeldud süsteem, mis kasutab väiksemat mudelit, ületab sageli võimsat mudelit, mille juhised on halvad.
Kasutajad andestavad piirangud, kuid mitte segadust: kasutajad mõistsid, kui vestlusrobot ei saanud midagi teha, kuid olid pettunud, kui tundus segaduses või iseendaga vastuolus. Võimaluste selgus osutus funktsioonide laiusest olulisemaks.
Turvalisus ja privaatsuskaalutlused arenevad: kui vestlusrobot sai rohkem integreeritud ärisüsteemidega, muutusid turvalisuse kaalutlused üha olulisemaks. Pidin rakendama õiget autentimist, andmete minimeerimist ja selgeid kasutaja nõusolekumehhanisme.
Mis puutub tulevikku, siis uurin mitmeid põnevaid suundi:
Multimodaalsed võimalused: lisab kasutajatele võimaluse üles laadida veateadetest ekraanipilte või fotosid, kusjuures vestlusbot pakub vastutasuks visuaalseid juhiseid.
Ennetav abi: reaktiivsetest küsimustest ja vastustest väljumine, et tuvastada hetked, mil vestlusbot saab kasutaja käitumise põhjal ennetavalt abi pakkuda.
Isikupärastamine: vestluste ajaloo ja kontoandmete kasutamine, et kohandada vastuseid naasvatele kasutajatele, jätta meelde nende eelistused ja varasemad probleemid.
Häälliides: paljud kasutajad on väljendanud huvi tippimise asemel assistendiga rääkimise vastu, eriti mobiilseadmetes.
Selle vestlusroboti loomine pole muutnud mitte ainult minu äritegevust, vaid ka arusaamist inimese ja arvuti suhtlusest. Tehnoloogia areneb kiiresti edasi, kuid põhialused jäävad alles: kasutajate vajaduste mõistmine, läbimõeldud vestluste kujundamine ja süsteemide loomine, mis teavad nii oma võimalusi kui ka piiranguid.
Kui kaalute oma vestlusroboti loomist, soovitan teil selle sammu ette võtta. Alustage väikesest, keskenduge kasutajate tõelistele vajadustele ja pidage meeles, et eesmärk ei ole Turingi testi läbimine, vaid tegelike inimeste tegelike probleemide lahendamine. Kõige edukamad AI-assistendid ei ole need, mis jäljendavad täiuslikult inimesi, vaid need, mis suurendavad inimese võimeid tähendusrikkal viisil.