Michał Pawełczyk 17.01.2019

Pytania technologiczne, które musisz zadać dostawcy chatbota. Część pierwsza

Od ciekawostki do kluczowego rozwiązania w komunikacji z użytkownikiem – to droga, którą pokonały chatboty pracujące dla firm. Możemy się z nimi spotkać skanując kod na butelce piwa, zlecając przelew w aplikacji mobilnej banku czy nawet grając w interaktywną grę połączoną z programem telewizyjnym (mały spoiler, o którym więcej już wkrótce 😉 Awarie w tych przypadkach stają się coraz bardziej kosztowne. Każda minuta ciszy Twojego chatbota może przyczynić się zarówno do strat finansowych, jak i wizerunkowych. Problemy zdarzają się nawet największym. Nigdy nie uchronimy się przed nimi w 100%. Jednak już podczas wyboru firmy dostarczającej technologię można je ograniczyć, poruszając niektóre kwestie ważne z punktu widzenia bezpieczeństwa.

Architektura odporna na błędy

Chatbot jest programem działającym na serwerze. Nie różni się w tej kwestii od sklepu internetowego czy strony www. Jego zasada jest prosta – wystawia gniazdo, do którego podłącza się np. Messenger, informując przez nie o różnych zdarzeniach, np. o otrzymanej wiadomości. Gdy chatbot już wie, że dany użytkownik napisał do niego, przygotowuje odpowiedź i wysyła ją z powrotem. Tylko i aż tyle, jednak jest jedno ale. Po drodze dzieje się wiele rzeczy i niestety każda może się zepsuć.

 

Schemat działania chatbota

Schemat działania chatbota

System musi przetworzyć wiadomość przy pomocy modułu rozpoznawania tekstu, pobrać i zapisać sesję użytkownika, zapisać zdarzenia statystyczne oraz wykonać wiele innych czynności, w zależności od konkretnego przypadku.

Dobrze zaprojektowany system to taki, który potrafi poradzić sobie z częściowymi awariami. Stąd tak bardzo ważny jest podział platformy na niezależne pudełka, które ze sobą rozmawiają (tak, tak, dla wtajemniczonych, mówię o mikroserwisach). W przypadku awarii jednego z nich, np. pudełka odpowiedzialnego za zgłoszenie prac konkursowych, chatbot będzie nadal poprawnie odpowiadał na pytania użytkowników.

I tak doszliśmy do pierwszego ważnego pytania które warto zadać, za którym idą kolejne. Czy wdrażane rozwiązanie jest odporne na częściowe awarie? Jeśli tak, to na które? Jakie są powiązania i możliwe scenariusze awarii?

Wydajność kluczem do sukcesu

Skalowalność to ciężki temat, z którym muszą zmierzyć się firmy wytwarzające oprogramowanie. Samo stwierdzenie “będzie dobrze” nie wystarczy. Potrzebne są testy symulujące obciążenie. Przeprowadza się je definiując tzw. scenariusze użycia.

W przypadku chatbota będzie to np. wysłanie wiadomości czy kliknięcie w przycisk. Zdefiniowanie odpowiedniego scenariusza jest kluczowe, bo np. łatwo można pominąć fakt, że oprócz informacji o nowej akcji użytkownika, komunikator wysyła do systemu całą masę zdarzeń np. potwierdzenie dostarczenia wiadomości, które również mają wpływ na wydajność aplikacji.

Przeprowadzając test zweryfikujmy, jak zachowa się system, do którego w każdej sekundzie przesyłane są informacje o:

  • kliknięciu w przycisk (1000 razy),
  • otrzymaniu 1000 wiadomości, z których część zostaje rozpoznana przez moduł NLP,
  • potwierdzeniu doręczenia wiadomości (1200 razy),
  • przeczytaniu wiadomości przez użytkowników (1000 razy).

Podczas symulacji możemy się dowiedzieć np. ile wynosi czas reakcji chatbota, zużycie pamięci RAM oraz w jakim stopniu obciążony jest procesor. Z tą wiedzą dostawca technologii może optymalizować oraz ulepszać rozwiązanie, a Ty zyskujesz zwiększone poczucie bezpieczeństwa, że chatbot nie zawiedzie Cię w ważnej dla Ciebie chwili.

Mając już informację, z jakim obciążeniem poradzi sobie chatbot, dodajmy kolejny warunek do naszego scenariusza. Co się stanie gdy podczas takiego ruchu jednocześnie trwa wysyłka pusha do 100 000 osób? Czy czas reakcji chatbota będzie wynosił tyle samo, czy się zmieni?

Dzięki przeprowadzeniu testów wydajnościowych można odpowiedzieć na te pytania, dlatego nie zapomnij wspomnieć o nich podczas rozmowy z firmami dostarczającymi chatbot technologie.

Monitoring rozwiązania. Sytuacje kryzysowe

Stało się! Chatbot od 10 minut nie odpowiada, pomimo odpowiednich testów oraz zabezpieczenia się na różne okoliczności. Prawo Murphy’ego działa. Czas ucieka, ludzie piszą ale zmiany jeszcze nie widać. Dział IT już wie o problemie i pracuje nad jego rozwiązaniem. Bo zadziałał monitoring sprawdzający pracę systemu (tzw. health check). O zaistniałej sytuacji od razu dowiedziały się odpowiednie osoby u Twojego dostawcy technologii. Kilkanaście minut później wszystko wraca do normy. Okazało się, że w tym przypadku zepsuł się dysk twardy serwera i naprawa nie wymagała żadnych dodatkowych działań. Chmura publiczna wykryła defekt i przeniosła chatbota na inny serwer. Uff, usterka była łatwa do zdiagnozowania i administrator systemu musiał tylko sprawdzić czy wszystko zadziałało po ponownym uruchomieniu. Niestety takie sytuacje zdarzają się rzadko. Częściej trzeba przeglądać zapisy pracy systemu, aby zdiagnozować problem i cała operacja może trwać dłużej. Stąd odpowiednio skonfigurowany system ostrzegania przed nieprawidłową pracą któregoś modułu jest bardzo ważny.

Nie ryzykuj. Zapytaj “chatbotowego partnera” czy stosuje opisane mechanizmy oraz ile wynosi czas naprawy błędu krytycznego. To bezcenna wiedza która może się przydać w czarnej godzinie.

Chatbot nie różni się od innych systemów informatycznych

Rozwiązanie niesie ze sobą wiele wyzwań technologicznych, które firmy muszą spełnić, abyś czuł się komfortowo i pewnie. By tak się stało musisz zwracać na nie uwagę. A to dopiero początek

Równie ważne są kwestie związane m.in z:

  • bezpieczeństwem danych,
  • integracjami z innymi systemami – w końcu chatbot nie jest samotną wyspą tylko częścią większej całości,
  • wymaganiami kokpitu administracyjnego.

Ale o tym w kolejnej odsłonie cyklu 🙂

 

Spodobał Ci się artykuł? Podziel się!

Komentarze

Zobacz inne artykuły Michała