Anatomie moderního chatbota

Dezider Meško
Outboxers
Published in
4 min readAug 24, 2017

Máte pocit, že nadešel čas na Vašeho chatbota? Nevíte ale, co od implementace čekat? Pojďme se podívat, jak takový chatbot funguje a jaké Vás čekají záludnosti.

Chatbot se typicky skládá z těchto bloků (to jak jsou propojené, si ukážeme vzápětí):

  • Messaging Platform Integration (MPI) — součást starající se o přenos zpráv od a k uživateli. Typicky budete integrovat s platformami jako Facebook Messenger, Slack, Kik, Skype, Telegram…
  • Natural Language Processing (NLP) — součást, která chatbotovi vdýchne duši. S nějakou mírou (ne)jistoty rozeznává, co uživatel řekl a jaký má úmysl. I když je to široká disciplína, dnes za ní většina lidí vidí Machine Learning.
  • Backend (BE) — robot pravděpodobně nabídne i něco navíc než jen konverzaci o nesmrtelnosti chrousta. A tak tato součást reprezentuje jádro vašeho byznysu — funkce pro seznamy objednávek, doporučené výrobky, nebo třeba předpověď počasí…
  • Chatbot — místo, kde se všechny komponenty výše sbíhají a integrují. Navíc je potřeba řešit jednotlivé scénáře, podle kterých se bude snažit chatbot provést uživatele řešením jeho problému.

Začneme s nejflexibilnějším (a nejdražším) případem, a to že si každou komponentu chatbota postavíte nebo zapojíte sami. Chatbot dostává každou zprávu z MPI a vyhodnotí, jestli jí chce nebo nechce přeposlat na NLP. Na základě výsledku se může posunout v konverzaci, nebo přeposlat užitečná data z a do Backendu. Můžete si vybrat, koho a co použijete v NLP enginu. To může být speciálně zajímavé pro český trh, protože ani dnes není podpora češtiny kdovíjaká.

V Outboxers jsme pro MPI použili knihovnu podporující Facebook Messenger. Jako NLP pak wit.ai (patřící Faceeboku) a to hlavně z důvodu, že deklaruje částečnou podporu češtiny a možnost tuto podporu zlepšit participací na jeho otevřeném jádru Duckling. Jako backend, kam chatbot zasílá požadavky na schůzky, jsme použili Slack. Chatbot samotný je naprogramovaný v Go. Implementace dvou jednoduchých scenářů, když víte co a jak, pak od nuly do beta verze vycházela asi na 4 člověkodny.

Nedávno ovšem wit.ai ohlásil integraci NLP přímo do všech zpráv posílaných z Facebooku a schéma se tak zjednodušilo.

Facebook tak vývojářům ušetří jedno volání do NLP enginu. Přitom učení a vše ostatní stále zůstává na portálu wit.ai. Na druhou stranu ve stejný moment ukončil vývoj funkcionality, která měla pomoci zjednodušit vývoj chatbotů.

O kus dál je na tom konkurence od Google — api.ai. Nabízí univerzální MPI podporující celou škálu platforem — Slack, Messenger, Skype, Telegram atd. Integruje NLP (které zatím nepodporuje češtinu), a k tomu všemu ještě přidává funkce zjednodušující implementaci chatbota — kontext, reakce v případě, že chatbot nerozumí atp. Tato funkcionalita, které můžeme říkat ChatBot Support Functions, (CBSF), by výrazně měla pomoct se snížením nákladů na implementaci.

Jako posledního velkého hráče zmíním Microsoft. Ten má Bot Framework, který zastává funkce MPI i CBSF, k tomu pak LUIS framework (který zatím nepodporuje češtinu) jako NLP engine. To celé v ekosystému s vývojovými nástroji a hostováním na Azure.

Jak jste asi už pochopili, velikou bolestí NLP dnes je podpora češtiny. Většina frameworků asi zvládne rozeznání úmyslu uživatele (tzv. intent), horší je to ale s extrakcí údajů z věty. Tady pak zůstává doufat, že firmy jako Microsoft a Google brzo zainvestují do dalších jazyků, pomůže komunita, nebo se obrátíte na specialisty jako Geneea. Ti se analýzou českých textů zabývají dlouhodobě.

Druhá bolístka, kterou já osobně vidím, je testovatelnost výsledného chatbota. K mému překvapení jsem u těchto větších frameworků nezaznamenal silnou podporu testování a ověřování úplnosti všech průchodů. To u větších řešení znamená další investici při vývoji, nebo zavedení značného technického dluhu.

Někdy je méně možností lepší…

Úplně na začátku jsem zmínil, že chatbot se může rozhodnout, jestli pošle text do NLP nebo ne. Možná, že to zní divně, ale častokrát, speciálně s možnostmi nových komunikačních platforem, je výhodnější uživateli zobrazit třeba dvě tlačítka a dostat exaktní odpověď. Není to tak efektní, ale je to efektivní a výrazně to zjednodušuje náklady na implementaci. Chatbot se tak mění na starého dobrého “wizarda”.

V tuto chvíli už byste měli mít lepší představu o tom, jak chatbot funguje, jaké jsou jeho součásti a bolístky. Kdybyste chtěli ověřit, že investice do takového řešení se vám a vašim zákazníkům vyplatí, napište nám na hello@outboxers.cz a my to pro vás rádi uděláme. Nebo si jen na našem facebookovém profilu vyzkoušejte naši jednoduchou Outboxerku.

--

--