Kako sem izdelal svojega klepetalnika z umetno intelige...
Prijava Preizkusite brezplačno
dec 02, 2024 5 min branja

Kako sem izdelal svojega klepetalnika z umetno inteligenco: popotovanje razvijalca

Odkrijte, kako sem iz nič zgradil klepetalni robot z umetno inteligenco po meri, ki zajema izzive, preboje, vpoglede in lekcije, ki so spremenile moje spletno mesto in sodelovanje.

Izdelal sem lastnega AI Chatbota

Iskra, ki je vse začela

Začelo se je s preprostim problemom – utapljal sem se v povpraševanju strank. Kot edini razvijalec mojega rastočega spletnega mesta za tehnično svetovanje sem vsak dan ure in ure odgovarjal na ista vprašanja. Moja produktivnost je padala in vedel sem, da moram nekaj dati. Trenutek žarnice se je zgodil v torek ob 2. uri zjutraj, z zamegljenimi očmi zaradi še enega odgovora na vprašanje "Kako ponastavim geslo?" e-pošta. Zakaj nisem mogel zgraditi nečesa, kar bi obravnavalo te ponavljajoče se interakcije?
Z zanimanjem sem spremljal eksplozijo AI in velikih jezikovnih modelov, vendar večinoma kot gledalec. Seveda sem se igral s ChatGPT in Claudeom kot vsi ostali, toda ustvarjanje lastnega pomočnika AI se je zdelo kot nekaj, kar je rezervirano za ekipe z globokimi žepi in globljim strokovnim znanjem. Kljub temu se nisem mogel otresti ideje, da bi lahko bil klepetalni robot po meri – tisti, ki pozna moj posel od znotraj in zunaj – rešitev, ki sem jo nujno potreboval.
Kar se je začelo kot vikend projekt, da bi si prihranil nekaj časa, se je razvilo v šestmesečno obsedenost, ki je temeljito spremenila moj pristop k razvoju programske opreme, uporabniški izkušnji in sami naravi interakcije med človekom in računalnikom. To je zgodba o tem, kako sem zgradil svoj chatbot, kaj sem se ob tem naučil in zakaj bi ga morda želeli ustvariti tudi vi.

Izbira pravega tehnološkega sklopa

Prva večja ovira je bila odločitev o mojem tehnološkem nizu. Takoj so me preplavile možnosti – ali naj nadgradim obstoječe API-je, kot sta GPT OpenAI ali Claude podjetja Anthropic? Ali naj natančno prilagodim odprtokodni model? Ali pa naj si prizadevam za manjše s sistemom, ki temelji na pravilih in sploh ne zahteva najsodobnejše umetne inteligence?
Po tednih raziskav in več preskusih dokazovanja koncepta sem se odločil za hibridni pristop. Kot možgane bi uporabil natančno nastavljen odprtokodni jezikovni model, ki bi ga povezal s sistemom RAG (retrieval-augmented generation), da bi mu omogočil dostop do dokumentacije mojega spletnega mesta in vsebine pogostih vprašanj. To bi klepetalnemu botu omogočilo splošno inteligenco, medtem ko bi še vedno imel posebno znanje o mojem poslu.
Za sam model sem izbral Mistralov model parametrov 7B – dovolj majhen za delovanje v moji skromni nastavitvi strežnika, a dovolj zmogljiv za obvladovanje naravnega jezika z impresivno tekočnostjo. Komponenta RAG bi uporabila vektorsko zbirko podatkov (Pinecone) za shranjevanje vdelav moje dokumentacije, kar bi chatbotu omogočilo, da pri odgovarjanju na vprašanja pridobi ustrezne informacije.
Sprednji del je bil zgrajen z Reactom, z zaledjem Node.js, ki obravnava klice in obdelavo API-ja. Za vzdrževanje pogovorne povezave z uporabniki sem se odločil za WebSockets, kar omogoča bolj naravno premikanje naprej in nazaj brez ponovnega nalaganja strani.
Ta sklad mi je dal prožnost, ki sem jo potreboval, hkrati pa ohranil obvladljive stroške. Odprtokodna podlaga je pomenila, da nisem bil zavezan cenam API-ja, ki bi lahko skokovito narasle, če bi moje spletno mesto nenadoma postalo priljubljeno, medtem ko je pristop vektorske zbirke podatkov zagotovil, da bo moj chatbot vedno imel dostop do najnovejših informacij o mojih storitvah.

Zbiranje podatkov in usposabljanje: življenjska sila vašega klepetalnika

Tisto, kar loči generičnega chatbota od resnično uporabnega pomočnika, so podatki – natančneje vaši podatki. Hitro sem spoznal, da bo moj chatbot dober le toliko, kolikor so dobre informacije, ki sem mu jih posredoval. To je pomenilo preseganje preprostega strganja vsebine moje spletne strani; Moral sem ujeti bistvo, kako komuniciram s strankami.
Začel sem s prečesavanjem na stotine izmenjav e-pošte, vstopnic za podporo in dnevnikov klepetov v živo. Te podatke sem anonimiziral, izluščil sem vzorce vprašanj, ki so jih ljudje postavljali, in – kar je bistveno – kako sem se nanje odzval. To mi je dalo primere usposabljanja, ki so odražali moj dejanski ton, raven tehničnih podrobnosti in pristop k reševanju problemov.
Za strukturirano znanje sem ustvaril obsežen dokument s pogostimi vprašanji, ki zajema vse od vprašanj o cenah do tehničnih specifikacij. Dokumentiral sem tudi običajne poteke dela za odpravljanje težav in zajel drevesa odločanja, ki jim nezavedno sledim, ko strankam pomagam pri diagnosticiranju težav.
Sam proces usposabljanja je bil ponavljajoč in ponižujoč. Moj prvi poskus je ustvaril chatbota, ki je poznal dejstva o mojem podjetju, vendar se je odzval kot korporativni priročnik. Manjkala je topline in občasnega humorja, ki sta bila značilna za moje interakcije. Vrnil sem se k risalni deski, tokrat sem se osredotočil na vključitev primerov, ki so poleg informacij prikazali osebnost.
Eden od nepričakovanih izzivov je bilo naučiti chatbota, kdaj naj reče "ne vem" – bistvena veščina za vsak sistem AI. Moral sem ga posebej usposobiti, da prepozna meje svojega znanja in zagotovi jasne poti do človeške podpore, kadar je to potrebno. To je zahtevalo ustvarjanje negativnih primerov in robnih primerov, kjer je bil pravilen odgovor stopnjevanje in ne improvizacija odgovora.
Po treh iteracijah usposabljanja sem končno imel model, ki je lahko prestal tisto, kar sem imenoval "polnočni test" – ali je lahko obravnaval vprašanja, na katera sem ostal pozno, da bi odgovoril? Ko je uspešno vodil uporabnika skozi naš postopek preverjanja pristnosti API-ja z enako jasnostjo, kot bi jo uporabil jaz, sem vedel, da smo nekam prišli.

Implementacija zavedanja konteksta: naj pogovori tečejo

Razlika med opevanim iskanjem s pogostimi vprašanji in resničnim pogovornim pomočnikom je zavedanje konteksta – sposobnost, da si zapomnite, kaj je bilo prej povedano, in gradite na tem. To se je izkazalo za enega tehnično najzahtevnejših vidikov celotnega projekta.
Moja prva izvedba je uporabila preprosto kontekstno okno, ki je vsaki novi poizvedbi samo dodalo zadnjih nekaj izmenjav. To je delovalo pri osnovnih nadaljnjih vprašanjih, vendar se je v zapletenih scenarijih hitro pokvarilo. Če bi uporabnik vprašal o funkciji A, nato o funkciji B, nato pa bi imel ponovno vprašanje o funkciji A, bi se klepetalni robot zmedel.
Sčasoma sem implementiral bolj izpopolnjen sistem za upravljanje konteksta, ki je uporabljal kombinacijo tehnik:

Drsno kontekstno okno, ki je dalo prednost nedavnim izmenjavam, hkrati pa je ohranilo pomembne prejšnje informacije
Sledenje subjektom za prepoznavanje, kdaj so se uporabniki vrnili k prej omenjenim izdelkom ali funkcijam
Upravljanje stanja seje za spremljanje, kje so bili uporabniki v večstopenjskih procesih, kot je nastavitev računa

Preboj je prišel, ko sem dodal oceno ustreznosti, da sem ugotovil, kateri deli zgodovine pogovorov so najpomembnejši za trenutno poizvedbo. Namesto da bi slepo vključil zadnjih N izmenjav, je sistem zdaj ocenil, kateri prejšnji deli pogovora so bili najbolj pomensko povezani z novim vprašanjem.
To je povzročilo veliko razliko v zadovoljstvu uporabnikov. Klepetalni robot je zdaj lahko obravnaval naravne tokove pogovorov, kot je: "Koliko stane osnovni načrt?" → "Katere funkcije vključuje?" → "In premijski načrt?" → "Ali ima funkcijo deljenja datotek, ki ste jo omenili prej?" Brez izpuščanja konteksta ali zmede.
Gledanje uporabnikov, kako komunicirajo s sistemom brez frustracij, je bilo izjemno zadovoljujoče – niso se prilagajali omejitvam chatbota; chatbot se je prilagajal njihovemu naravnemu slogu pogovora.

Obravnava robnih primerov in načinov napak

Ne glede na to, kako dobro usposobite svoj model, se bodo pojavili robni primeri – pogosto na načine, ki jih niste pričakovali. Kmalu po zagonu chatbota na svojem spletnem mestu sem začel videti nekaj zanimivih in občasno smešnih načinov napak, ki so me poslali nazaj na risalno desko.
En obiskovalec je 15 minut poskušal prepričati mojega klepetalnega robota, naj napiše pesem o kibernetski varnosti (nečem, kar presega predvideni namen). Drugi ga je poskušal uporabiti kot splošnega pomočnika pri programiranju, prilepil je delčke kode in prosil za pomoč pri odpravljanju napak za tehnologije, ki niso bile v celoti povezane z mojim poslom. Najbolj zaskrbljujoče so bile občasne "halucinacije" – primeri, ko je klepetalni robot samozavestno posredoval napačne informacije z napačno interpretacijo dokumentacije ali pretirano posploševanjem iz primerov usposabljanja.
Te izzive sem obravnaval z večplastnim pristopom:
Najprej sem implementiral jasnejše meje obsega v sistemski poziv, pri čemer sem model izrecno poučil o njegovem namenu in omejitvah. To je zmanjšalo število uporabnikov, ki bi ga poskušali uporabiti za nenamerne namene.
Drugič, dodal sem mehanizem za ocenjevanje zaupanja. Ko bi rezultat modela pokazal znake negotovosti (zaradi jezikovnih označevalcev ali nizkega zaupanja napovedi), bi to negotovost uporabniku priznal, namesto da bi ugibanja predstavil kot dejstva.
Tretjič, ustvaril sem pot stopnjevanja z jasnimi sprožilci. Določene teme ali zaznavanje razočaranja uporabnika bi klepetalni robot spodbudili, da ponudi neposredno povezavo uporabnika z mano, kar bi ustvarilo nemoteno izkušnjo predaje.
Na koncu sem vzpostavil povratno zanko, kjer so lahko uporabniki označili problematične odgovore, ki so bili samodejno dodani v čakalno vrsto za pregled. To mi je dalo sistematičen način za prepoznavanje in odpravljanje težav, namesto da bi se igral z robnimi primeri.
Morda je najbolj dragocena lekcija izhajala iz analize teh robnih primerov: popoln chatbot ni bil tisti, ki nikoli ni delal napak, ampak tisti, ki je elegantno obravnaval svoje omejitve in vedel, kdaj vključiti človeka. Ta premik v perspektivi je spremenil način ocenjevanja uspeha in usmerjal moje nadaljnje izboljšave.

Preizkusite UI na VAŠI spletni strani v 60 sekundah

Poglejte, kako naša umetna inteligenca takoj analizira vašo spletno stran in ustvari personaliziranega klepetalnega robota - brez registracije. Preprosto vnesite svoj URL in opazujte, kako deluje!

Pripravljeno v 60 sekundah
Programiranje ni potrebno
100% varno

UI/UX Design: naredite svojega klepetalnika dostopnega

Tehnično izjemen klepetalni robot z okornim vmesnikom je kot ferrari s kvadratnimi kolesi – vsa ta moč gre v nič, če uporabniki ne morejo udobno sodelovati z njim. Te lekcije sem se naučil na težji način, potem ko so se moji začetni beta preizkuševalci pritoževali nad vsem, od počasnih odzivnih časov do zmedenih tokov pogovorov.
Prvi vmesnik, ki sem ga zgradil, je bil tehnično funkcionalen, vendar se mi je zdel sterilen in mehaničen. Uporabniško testiranje je pokazalo, da so ljudje oklevali, da bi se z njim ukvarjali – preprosto se ni zdel vabljiv. Vrnil sem se k risalni deski s temi načeli v mislih:
Osebnost je pomembna: dodal sem subtilne elemente oblikovanja, ki so odražali osebnost chatbota – prijazen avatar, kazalnike tipkanja, ki posnemajo človeške ritme, in občasne animacije, ki so mu dale občutek živosti, ne da bi zašel v neznansko dolino.
Postavite jasna pričakovanja: Ustvaril sem uvodno sporočilo, ki je jasno razložilo, pri čem lahko chatbot pomaga, in njegove omejitve ter že od samega začetka nastavil ustrezna pričakovanja uporabnikov.
Postopno razkritje: Namesto da bi uporabnike vnaprej preplavil z vsemi možnostmi, sem implementiral sistem, v katerem bi chatbot predlagal ustrezna nadaljnja dejanja na podlagi konteksta pogovora.
Zasnova, ki je na prvem mestu za mobilne naprave: Ko sem videl, da več kot 60 % mojih uporabnikov dostopa do spletnega mesta z mobilnimi napravami, sem popolnoma preoblikoval vmesnik za klepet, da brezhibno deluje na manjših zaslonih – večji cilji na dotik, celozaslonski način klepeta in možnosti glasovnega vnosa.
Vizualne povratne informacije: dodal sem subtilne indikatorje statusa, tako da so uporabniki vedno vedeli, kaj se dogaja – ali klepetalni robot »razmišlja«, če so bile težave s povezavo ali je bil v pogovor vpleten človek.
En poseben element uporabniškega vmesnika je naredil presenetljivo razliko: gumb za "pojasnilo", ki so se ga lahko uporabniki dotaknili, če so menili, da jih je chatbot narobe razumel. Ta preprosta funkcija je dramatično izboljšala zadovoljstvo uporabnikov, saj jim je dala očitno pot naprej, ko je komunikacija prekinjena, namesto da bi jih prisilila, da svoje vprašanje preoblikujejo od začetka.
Meritve prej in potem so bile osupljive – povprečna dolžina pogovora se je povečala za 340 %, število uporabnikov, ki so se večkrat vrnili k uporabi chatbota, pa se je podvojilo. Lekcija je bila jasna: tehnične zmogljivosti ne pomenijo malo, če človeški vmesnik povzroča trenja.

Integracija z obstoječimi sistemi

Klepetalni robot ne obstaja sam – da bi bil resnično dragocen, se mora integrirati v vaš obstoječi digitalni ekosistem. V mojem primeru je to pomenilo povezavo z mojo zbirko podatkov o strankah, dokumentacijskim sistemom in platformo za podporo.
Začetna integracija je bila osnovna – chatbot je lahko iskal po dokumentaciji in imel dostop samo za branje do pogostih vprašanj. Uporabniki pa so hitro želeli več: "Ali lahko preverite stanje mojega naročila?" "Ali lahko posodobite moj e-poštni naslov?" "Ali lahko ustvarite vstopnico za podporo zame?" Te zahteve so bile z uporabniškega vidika povsem smiselne, vendar so zahtevale globljo sistemsko integracijo.
Uporabil sem pristop mikrostoritev, pri čemer sem ustvaril posebne končne točke API-ja, ki bi jih lahko chatbot poklical z ustrezno avtentikacijo. Vsaka integracija je imela svoje varnostne vidike. Za operacije samo za branje, kot je preverjanje statusa naročila, sem uvedel tok preverjanja, kjer bi morali uporabniki zagotoviti številke naročil in povezane e-poštne naslove. Za operacije pisanja, kot je posodabljanje podrobnosti računa, sem zgradil robustnejši korak preverjanja pristnosti.
Ena posebej uporabna integracija je bila z mojim sistemom vozovnic. Ko je klepetalni robot zaznal, da ne more ustrezno rešiti težave, bi ponudil ustvarjanje vozovnice za podporo, ki bi bila vnaprej izpolnjena z zgodovino pogovorov (z dovoljenjem uporabnika). To je pomenilo, da sem imel, ko sem na koncu odgovoril na vstopnico, popoln kontekst, ne da bi se uporabnik moral ponavljati.
Integracije so spremenile chatbota iz samostojnega sistema za vprašanja in odgovore v pravega poslovnega pomočnika. Povprečni čas reševanja pogostih težav se je zmanjšal z 8 ur (čakanje, da odgovorim na e-pošto) na manj kot 3 minute. Morda je še pomembneje to, da so uporabniki poročali o večjem zadovoljstvu, tudi če chatbot ni mogel v celoti rešiti njihove težave, preprosto zato, ker je lahko zagotovil takojšnje posodobitve statusa in ustvaril odgovornost prek sistema izdajanja vozovnic.
Lekcija: vrednost klepetalnega robota se pomnoži, ko se lahko dotakne vaših obstoječih sistemov in dejansko izvaja uporabna dejanja v imenu uporabnikov, ne pa le govori o njih.

Merjenje uspeha: analitika in nenehne izboljšave

Kako veste, ali je vaš chatbot dejansko uspešen? To vprašanje se je izkazalo za bolj zapleteno, kot sem sprva mislil. Neobdelane številke uporabe niso povedale celotne zgodbe – klepetalni robot, ki se pogosto uporablja, lahko dejansko nakazuje slabo navigacijo po spletnem mestu in ne koristnega pomočnika.
Uporabil sem večstranski analitični pristop:
Meritve pogovorov: spremljal sem stopnje dokončanja (ali so uporabniki dobili odgovore na svoja vprašanja?), dolžino pogovora, točke opustitve in porazdelitev tem, da bi razumel, za kaj ljudje dejansko uporabljajo chatbot.
Meritve učinka na poslovanje: Izmeril sem zmanjšan obseg e-pošte za pogosta vprašanja, stopnjo zavrnitve prijav za podporo (težave so bile rešene brez ustvarjanja prijav) in čas do rešitve za poizvedbe strank.
Zadovoljstvo uporabnikov: po vsakem pogovoru so lahko uporabniki ocenili svojo izkušnjo, jaz pa sem te ocene analiziral glede na prepise pogovorov, da bi ugotovil vzorce pozitivnih in negativnih izkušenj.
Vpliv na prihodek: sledil sem stopnjam konverzije za uporabnike, ki so sodelovali s chatbotom, v primerjavi s tistimi, ki niso, zlasti za pogovore, kjer je chatbot priporočal določene storitve.
Podatki so razkrili presenetljiva spoznanja. Klepetalni robot na primer ni bil najbolj dragocen za najpreprostejša vprašanja (ki bi jih bilo mogoče obravnavati z boljšo dokumentacijo) ali najbolj zapletena (ki so na koncu zahtevala človeško posredovanje), ampak za vmesna vprašanja, ki so zahtevala nekaj povratnih pojasnil, vendar so sledila ustaljenim vzorcem.
Odkril sem tudi, da je bilo pri uporabnikih, ki so sodelovali s chatbotom, 37 % večja verjetnost, da se bodo prijavili na vrhunske storitve, ne nujno zato, ker je bil chatbot odličen prodajalec, temveč zato, ker je zmanjšal trenja v fazi zbiranja informacij na poti stranke.
Te meritve so vodile moj načrt izboljšav. Prednost sem dal izboljšanju področij, kjer se je chatbot že izkazal za dragocenega, namesto da bi poskušal narediti vse. Vsaka dva tedna sem pregledal dnevnike pogovorov, v katerih so uporabniki izrazili nezadovoljstvo, identificiral vzorce in izvajal ciljno usmerjene izboljšave – ne glede na to, ali je to pomenilo dodatne podatke o usposabljanju, popravke UX ali nove sistemske integracije.
Ta pristop, ki temelji na podatkih, je spremenil chatbota iz kul tehnološkega projekta v pravo poslovno sredstvo z merljivo donosnostjo naložbe.

Pridobljena spoznanja in prihodnje smeri

Izdelava lastnega klepetalnega robota z umetno inteligenco je bila pot nenehnega odkrivanja. Če pogledamo nazaj, so tukaj ključne lekcije, ki bi lahko pomagale drugim na podobnih poteh:
Začni zožiti, nato razširi: moj najuspešnejši pristop je bil osredotočanje klepetalnega robota na to, da naredi nekaj stvari izjemno dobro, preden razširi svoje zmogljivosti. Začetna različica je obravnavala le osnovna vprašanja o izdelkih, vendar z visoko natančnostjo.
Predaja med človekom in umetno inteligenco je ključnega pomena: Zasnova za elegantno stopnjevanje od začetka. Trenutki, ko vaš chatbot prepozna svoje omejitve in gladko preide na človeško podporo, so prav tako pomembni kot vprašanja, na katera lahko neposredno odgovori.
Investirajte v dobro zasnovo pogovorov: kakovost vaših pozivov, podatkov o usposabljanju in tokov pogovorov je pomembnejša od zmogljivosti neobdelanega modela. Dobro zasnovan sistem, ki uporablja manjši model, pogosto prekaša močan model s slabim vodenjem.
Uporabniki odpuščajo omejitve, ne pa zmede: uporabniki so razumeli, kdaj klepetalni robot nečesa ni zmogel, vendar so postali razočarani, ko se je zdel zmeden ali protisloven sam sebi. Jasnost glede zmogljivosti se je izkazala za pomembnejšo od širine funkcij.
Pomisleki glede varnosti in zasebnosti se razvijajo: ko je klepetalni robot postal bolj integriran s poslovnimi sistemi, so postajali vidiki varnosti vse pomembnejši. Moral sem uvesti pravilno avtentikacijo, prakse minimiziranja podatkov in jasne mehanizme za soglasje uporabnikov.
Kar se tiče prihodnosti, raziskujem več vznemirljivih smeri:
Multimodalne zmožnosti: dodajanje možnosti za uporabnike, da naložijo posnetke zaslona ali fotografije sporočil o napakah, pri čemer chatbot v zameno zagotavlja vizualno vodenje.
Proaktivna pomoč: preseganje reaktivnih vprašanj in odgovorov za prepoznavanje trenutkov, ko lahko chatbot proaktivno ponudi pomoč na podlagi vedenja uporabnika.
Prilagoditev: uporaba zgodovine pogovorov in podatkov o računu za prilagajanje odzivov uporabnikom, ki se vračajo, ob upoštevanju njihovih preferenc in prejšnjih težav.
Glasovni vmesnik: veliko uporabnikov je izrazilo zanimanje za pogovor s pomočnikom namesto tipkanja, zlasti na mobilnih napravah.
Izdelava tega klepetalnega robota ni spremenila le mojih poslovnih operacij, ampak tudi moje razumevanje interakcije med človekom in računalnikom. Tehnologija se bo še naprej hitro razvijala, vendar osnove ostajajo: razumevanje potreb uporabnikov, oblikovanje premišljenih pogovorov in ustvarjanje sistemov, ki poznajo svoje zmogljivosti in omejitve.
Če razmišljate o izdelavi lastnega chatbota, vas spodbujam, da se odločite. Začnite z majhnim, osredotočite se na resnične potrebe uporabnikov in ne pozabite, da cilj ni prestati Turingov test – temveč rešiti resnične probleme za resnične ljudi. Najuspešnejši pomočniki umetne inteligence niso tisti, ki popolnoma posnemajo ljudi, ampak tisti, ki povečajo človeške sposobnosti na smiseln način.

Sorodne vsebine

AI leta 2025
AI v izobraževanju
Pametne strategije AI
AI in zasebnost podatkov
10 najboljših funkcij AI Chatbot
AI in zasebnost podatkov

Preizkusite UI na VAŠI spletni strani v 60 sekundah

Poglejte, kako naša umetna inteligenca takoj analizira vašo spletno stran in ustvari personaliziranega klepetalnega robota - brez registracije. Preprosto vnesite svoj URL in opazujte, kako deluje!

Pripravljeno v 60 sekundah
Programiranje ni potrebno
100% varno