bhawk.hu – Magyar fejlesztői blog

bhawk.hu – Magyar fejlesztői blog


2019. augusztus
h k s c p s v
« máj    
 1234
567891011
12131415161718
19202122232425
262728293031  

Kategória


Microsoft Bot Framework: Miért vannak a chatbotok?

Gulyás GáborGulyás Gábor

Milyen régen is volt már amikor idősebbik testvérem mutogatta az RPG.hu IRC csatornáján a @Kocsmáros nevezetű botot. Ha beírtad a közös chatbe, hogy !pia tea, a kocsmáros reagált rá, miszerint kihozott Neked egy pohár teát. Meg is hívhattál más felhasználókat egy italra, ezen kívül pedig volt még néhány primitív parancs amit ismert. Én meg néztem mint borjú az újkapura, hogy fizetni ki fog és most ki fognak ide tényleg hozni valamit – akkoriban még alsó tagozatos általános suliba jártam. Na de mi változott azóta?

Folytassuk egy kicsit a történelemórával – ígérem, nem nyújtom túl hosszúra. Az Apple iPhone 2007-ben jelent meg (igen… már 11 éve) és valljuk be őszintén, ez volt az első igazi okostelefon a piacon. A nézőtér őrjöngött amikor Steve Jobs bemutatta, hogy stylus ceruza nélkül, egyszerűen a képernyőn felfelé húzva ujjunkat lapozgathatunk. Az okostelefonokkal együtt pedig berobbantak az áruházak és piacterek, teletömve alkalmazásokkal. Az elkövetkező évek pedig erről szóltak, gördültek le a futószalagról az újabb és újabb alkalmazások, a húszmilliomodik fingós appot is beleértve 😉

microsoft universal apps

 

Az okostelefonos alkalmazások evolúciója során találkozhattunk keresztplatformossággal (pl.: Xamarin), a különböző eszköztípusok közötti átmenet megoldásában (lásd Windows 10 UWP alkalmazások), az egyik legújabb nagy hype pedig a Progressive Web App fogalma, ahol is meglévő webes alkalmazásodból lesz akár offline is működtethető mobil app. Ugyanezen evolúciónak tudható be a chatbotok újbóli megjelenése, bár ebben szerepet játszik a mesterséges intelligencia rohamos fejlődése is.

Én egy chatbot vagyok! Miben segíthetek?

Amikor meghalljuk a chatbot fogalmat, sokan rögtön valami intelligens megoldásra gondolunk. Egy olyan csevegőpartnerre, akivel bármiről beszélhetünk, aki mindenre képes válaszolni és majd jól megkérdezhetjük tőle, hogy mi is az élet értelme. Aztán majd jól életre kelnek és elpusztítanak mindent, élőben átélhetjük a Terminátor filmben látottakat. Nem, ettől nem kell tartanunk 🙂

terminator

Eddig két chatbot lefejlesztésén vagyok túl, a cél mindkét esetben az volt, hogy a bennük rejlő potenciált felfedezzük és ezt a tudást a későbbiekben felhasználhassuk. Egy dolog biztos, sok tapasztalattal lettem gazdagabb a rengeteg próbálkozás, tesztelgetés és szívás során, ezeket szeretném megosztani Veletek.

Az első és legfontosabb, hogy a chatbotra jellemzően érdemes úgy tekinteni, mint valakire aki segít a felhasználó kezét fogni és végigvezetni egy folyamaton. Egyik példánk egy fiktív webshop chatbotja volt, ahol kilistázhattuk eddigi rendeléseinket, vagy éppen újat adhattunk fel. Mit szeretnél venni? Mennyit? Szuper, akkor most jelentkezzünk be szépen és adjuk fel a rendelést. Király, a rendelésedet feladtuk, értesítünk amint van fejlemény. 2 nap múlva pedig a bot a semmiből ír ránk, hogy “Hahó, úton van a csomagod, holnap meg is érkezik!”. Jól hangzik nem?

chatbot webshop order

 

A példa több dolgot is jól szemléltet. Egy jól meghatározható folyamaton/dialóguson visz végig. Tény, egy csevegőrobottal fogunk beszélgetni és társalgási formában fogunk utasításokat adni. Ettől függetlenül rengeteg (felesleges) munka lenne, hogy egy olyan botot alakítsunk ki, akivel társalgási formában vehetjük fel a rendelést és mint Mariska néni, elmesélhetjük neki út közben, hogy drága unokánk éppen mit csinált a hétvégén és mint udvarias hallgatóság, mosolygunk és érdeklődve fogadjuk a dolgot. Ehelyett a csevegőrobot feladata, hogy személyesebbé tegye ezt a folyamatot. Mind megtapasztaltuk már, hogy mennyire tudunk kötődni egy fiktív személyhez, vagy éppen egy játék karakteréhez. Nincs ez másképp a csevegőrobotok esetében sem, az érzelmekre hatva még inkább megkedveltethetjük az ügyféllel a márkát, a terméket, vagy éppen a cégünket – de az is lehet, hogy a “Rendelésed úton van!” és a csillám….láma animált gif kombóval fogjuk elérni, hogy az ügyfél soha többé ne álljon szóba velünk 😉 Végül pedig fontosnak tartom kiemelni, hogy a csevegőrobotunk saját emlékezettel rendelkezik, korábbi beszélgetésekre képes hivatkozni. “Örülök, hogy újra látlak!”, “Nem ezt rendelted múltkor is? Ha gondolod leadhatjuk újra, ugyanazokkal az adatokkal a rendelést!”, stb. A csevegőrobot képes rá, hogy visszaemlékezzen korábbi beszélgetésekre, azok alapján pedig egyéni válaszokat adjon.

Sajnálom… ezt nem értem!

Persze amikor a felhasználó kezébe adjuk az irányítást, akármennyire is egy irányított dialógusról van szó, kaphatunk olyan üzeneteket amivel a bot nem tud mit kezdeni.

– Hány éves vagy?
– Sajt!

What?

 

A csevegőrobotnak minden pontban egyértelműen kell kommunikálnia, hogy éppen mit szeretne. Bemenetet vár? Egyáltalán mit lehet beírni? Várakozzon a felhasználó, mert mindjárt írni fog a bot, csak adatokra vár az adatbázistól? A legtöbb esetben érdemes már előre definiált opciókat felkínálni válaszként. Egyrészt a felhasználónak is egyszerűbb lesz, mert mobiltelefonon nem feltétlenül kényelmes hosszú szövegeket begépelni, másrészt ezzel sokkal jobban tudjuk irányítani a beszélgetést.

Előfordulhat, hogy a felhasználó mégis eltéved az opciók között, olyan pontra jut ahová nem akart, új rendelés helyett a meglévők listázására kér éppen keresési kifejezést a csevegőrobot. Meg kell adnunk a lehetőséget a felhasználónak, hogy egy “Vissza a menübe” utasítással minden eddigi parancsot felülbíráljon és újrakezdhesse a navigálást. Hasonló okokból érdemes lehet egy “Segítség” opciót is implementálni, amit ha a felhasználó bármikor és bárhol beír, a csevegőrobot tájékoztatást ad az elérhető utasításokról.

Fontos, hogy elfogadjuk azt a tényezőt, hogy most nem alkalmazásról beszélünk. Nincsen egy magunk által meghatározott kezelőfelület, ahová bármit kipakolhatunk. Szöveges, csevegős formában kell gondoskodnunk az opciók közötti navigációról, a visszalépésről, gyakorlatilag mindenről.

Hogyan álljak neki?

Tegyük fel, hogy már találtál is egy problémát, amire megoldást jelenthet a csevegőrobot. Fontos kiemelni, hogy nem minden esetben javasolt ezt az irányt követni, de ez hamar ki fog derülni.

Az első és legfontosabb lépés amit nem tudok kellően kihangsúlyozni – a vicc kedvéért képzeljük ide 300 pixeles betűmérettel -, tervezd meg elejétől a végéig a folyamatot. Képzeld magad egy felhasználó helyébe, aki éppen veled chatel. A probléma adott, szeretne rá megoldást kapni. Mit írnál neki? Milyen utasításokat adnál? Milyen válaszokat várnál tőle? Következő lépésként ültessük át a gyakorlatba a megtervezett folyamatot. Itt kell meghatározunk, hogy milyen formában fogjuk végig navigálni a felhasználót a folyamaton, miként követik egymást a különböző lépések, mit teszünk hibás bemenet esetén, valamint mit teszünk ha a felhasználó elakad a folyamatban. Ez történhet amiatt is, hogy meggondolta magát, éppen rossz gombra kattintott, ezekre mind-mind fel kell készülnünk. Ezen a ponton pedig kétfelé szakadhat a történet, megkezdhetjük az első prototípus lefejlesztését ami arra törekszik, hogy a meghatározott funkcionalitás működjön, vagy a meghatározott folyamatot kiegészítjük a csevegőrobothoz kapcsolódó képességekkel. Utóbbi esetében olyan pontokat keresünk, ahol használható a csevegőrobot emlékezőképessége, megpróbáljuk személyesebbé tenni az élményt, stb. Végső soron mindenképp oda jutunk, hogy lefejlesztjük a csevegőrobotot 🙂

Végszó

A csevegőrobotokkal való ismerkedésemet a Microsoft Bot Framework oldalán kezdtem meg, ahol is az elérhető kódpéldák alapján kezdtem el összerakni első chatbotomat. Rengeteg új fogalommal fogtok találkozni, ráadásul a Microsoft már dolgozik a Bot Framework új, 4.x verziójának kiadásán. Az új kiadás már ASP.NET Core alapú, de semmiképpen ne kezdjétek el használni, egyrészt mert még preview verzió, másrészt pedig még sok átgondolatlan dolog van benne, van ami pedig nem is működik 🙂

A Microsoft Bot Framework kapcsán további bejegyzések megírására számíthattok, a következő cikkben már technológiai oldalról közelítem meg az alapozást, egy egyszerű chatbot lefejlesztése mellett szót ejtek annak alapvető működőséről is, hogy mi történik a színfalak mögött.

Ti mit gondoltok a csevegőrobotokról? Jó ötlet? Csak egy hype? Ne felejtsetek el kommentet írni 😉

Minden ami Microsoft technológia! Több mint 8 éve foglalkozom programozással, ez idő alatt pedig rengeteg nyelvet elsajátítottam, leginkább a C#-ot kedvelem! Jelenleg szoftverfejlesztőként dolgozom!

Comments 0
There are currently no comments.

This site uses Akismet to reduce spam. Learn how your comment data is processed.