Projektowanie chatbota za pomocą Amazon Lex

13 Lis 2019

Avatar
Dymitr Romanowski
Product Designer, Head of Design w The Story. Nagrodzony iF Design Award za Service Design i UX. Projektuje aplikacje biznesowe i pomaga firmom w budowaniu biznesów cyfrowych.

Od kilku lat korzystamy w The Story z usług chmurowych Amazon Web Services (AWS). Przez długi czas nie mieliśmy jednak okazji sprawdzić interfejsu tekstowego w Amazon Lex, aż któregoś razu przyszło zadanie od klienta: „Przetestujcie koncepcję chatbota dla startupu medycznego”.

Zabieramy się do pracy

Na początek chcę zaznaczyć kilka ważnych kwestii. Jeśli jesteś projektantem, to aby móc zaprojektować i wdrożyć chatbota w Amazon Lex, potrzebujesz:

Chatbot – program komputerowy, który wchodzi w interakcje z użytkownikiem za pomocą naturalnego (ludzkiego) języka bądź interfejsu tekstowego.

Amazon Lex – jedna z usług wchodzących w skład Amazon Web Services. Amazon Lex pozwala budować konwersacyjne interfejsy (wykorzystujące tekst, jak i głos) dla dowolnej aplikacji.

Pobierz dokumentację Amazon Lex Developer Guide.

  1. Doświadczonego developera, który ci w tym pomoże; mało doświadczony będzie do niczego. Dokumentacja AWS jest prawie zawsze na wysokim poziomie aktualności. W wypadku Lex „prawie” robi dużą różnicę.
  2. Język PHP nie jest natywnie wspierany przez AWS Lambda (która jest nieodłączną częścią Amazon Lex), dlatego potrzebujesz developera ze znajomością Pythona, Java, C#, bądź Node.js.
  3. Przy próbie zrozumienia logiki AWS bardzo pomogło mi uzyskanie certyfikatu Cloud Practitioner, który przyda się i tobie. Dlaczego? Zrozumiesz to po zalogowaniu się do paneli AWS, tzw. console. Zobaczysz w nim ponad 1400 rozwiązań o nazwach, które nic nie mówią. Nie ma możliwości, by pojąć to bez przygotowania. Każde rozwiązanie jest zależne od innego, więc praca w panelu Lexa będzie również tego wymagać.
  4. Dokumentacji AWS Lex, którą powinien przeczytać projektant.

Dodam, że przeczytałem najpopularniejsze polskie artykuły o projektowaniu chatbotów. Ich autorzy piszą, że przy projektowaniu chatbota potrzebny jest brief, UX/UI, storytelling itp.

Tymczasem moim zdaniem, by zacząć projektowanie chatbota, musisz:

  1. Ustalić, kto jest użytkownikiem i do jakiego celu chce dojść podczas korzystania z chatbota.
  2. Zrozumieć logikę działania konkretnej technologii, na której będziesz bazował przy projekcie. Co ważne, niuanse poznajesz w trakcie. Dlaczego? Nikt z agencji nie pracuje na własnej technologii. Stać na to albo gigantów technologicznych, albo… małe zespoły z gigantycznym budżetem i jeszcze większą wiedzą. Dlatego projektant musi dostosować się do tego, co jest dostępne na rynku, a nie odwrotnie. W tym wypadku wybraliśmy Amazon Lex.
  3. Zrozumieć logikę działania technologii, co pozwoli pojąć sposób myślenia o projektowaniu interfejsu tekstowego chatbota.

Kto jest użytkownikiem chatbota i do jakiego celu chce dojść?

Powyższe pytanie jest bardzo ważnym aspektem każdego chatbota. Chatbot jako kanał komunikacji na linii człowiek-maszyna (marka, produkt, usługa) może mieć zastosowanie tylko w określonych przypadkach.

Na obecnym etapie rozwoju technologii Amazon Lex chatbot służy do załatwienia określonej sprawy. Wynajęcie samochodu, zarezerwowanie hotelu, zamówienie kawy? Proszę bardzo. Chatbot nie uspokoi jednak rozzłoszczonej osoby ani nie zastąpi formularza, w którym precyzja odpowiedzi użytkownika jest najważniejsza, np. aplikowanie o e-dowód.

Chatbot Amazon Lex może być sprzedawcą i zajmować się obsługą klienta. Potrafi zadawać pytania kwalifikujące, dawać użytkownikowi kilka opcji wyboru. Co więcej, pozwala kompletować zapytanie lub zamówienie poprzez zbieranie od użytkownika odpowiednich danych, w tym osobowych.

Dużą przewagą chatbota Amazon Lex nad zwykłym formularzem strony www jest możliwość poznania naturalnych odpowiedzi użytkownika. Oznacza to, że podczas rozmowy z chatbotem użytkownik sam formułuje zdania. Dla porównania, w zwykłym formularzu użytkownik podąża z góry wyznaczoną ścieżką.

Uczenie maszynowe – technologiczne zapamiętywanie pewnych wzorców i zachowań, których maszyna już kiedyś „doświadczyła”. Machine learning umożliwia także analizę nowych danych i szukanie rozwiązań, które sprawdziły się w innych, wcześniej znanych maszynie sytuacjach.

To pozwala nam jako twórcom chatbota poznać styl komunikacji (używane słowa, sposób opisywania problemu) użytkownika. Dzięki temu możemy ulepszyć chatbota i zastosować uczenie maszynowe. Proces zbierania takich danych w Amazon Lex nie dzieje się jednak automatycznie: trzeba go dodatkowo zaprogramować.

Chatbot jawi się więc jako efekt kreatywności projektanta. Za pomocą dostępnym narzędziom uda nam się m.in. ustalić rolę użytkownika na podstawie udzielanych odpowiedzi. Na początku rozmowy nasz chatbot wnioskuje, czy rozmawia z przedstawicielem firmy farmaceutycznej, lekarzem lub pacjentem. Po ustaleniu, kim jest rozmówca, chatbot uruchamia odpowiednie scenariusze rozmowy. Wszystko po to, by doprowadzić lekarza bądź pacjenta do wyznaczonego celu.

Chatbot to coraz bardziej standardowe rozwiązanie dla firm. | Fot. Matthew Hurst / Flickr.com / Bit.ly/2CRvN09 / CC BY-SA 2.0

Różnice między UI strony www a interfejsem tekstowym chatbota

Przycisk formularza na stronie internetowej:

Rozmowa tekstowa z chatbotem:
Czy chcesz, żebym złożył twoje zamówienie? Tak / Nie

Projektowanie chatbota vs logika działania Amazon Lex

Chatbot składa się z komponentów konwersacyjnych. Dwa podstawowe komponenty logiki Amazon Lex to intent i slot. Ich zrozumienie jest kluczowe dla procesu projektowania.

Intent reprezentuje cel, który chce osiągnąć użytkownik. Przykładowo, umówić się na wizytę u lekarza, dokonać rezerwacji hotelowej, kupić bilet lotniczy itp. Intenty składają się ze slotów.

Slot to część danych, które musi podać użytkownik, aby zrealizować swój cel (intent). Takimi danym mogą być np. miejsce spotkania, data czy miasto. Sloty można tworzyć samodzielnie. Amazon Lex posiada również własną bibliotekę slotów, która ułatwia proces tworzenia chatbota. Lex rozpoznaje np. kraje, liczby, typy danych, technologie programistyczne.

Aby chatbot rozpoczął intent, niezbędne jest jego wywołanie przez użytkownika: „Chcę zrobić rezerwację hotelową”, „Mój lot miał opóźnienie”, „Szukam ginekologa w okolicy”. Wywołanie nosi nazwę utterance.

Każdy chatbot może mieć kilka intententów, czyli może realizować kilka celów użytkowników. Chatbot może dokonać zarówno rezerwacji hotelowej, jak i kupić bilet lotniczy.

Pytając użytkownika o dane potrzebne do wypełnienia slotów, chatbot może udzielać podpowiedzi za pomocą prompt. Są to pytania typu: „Na jaki dzień chcesz zrobić rezerwację?”, „Ile godzin opóźnienia miał twój lot?”, „Co ci dolega?”, „W jakiej okolicy szukasz ginekologa?”.

Fulfillment jest procesem uruchamianym przez chatbota po wypełnieniu Intentu wszystkimi danymi, czyli slotami. Podczas jego trwania decydujemy, czy zebrane dane mają zostać zapisane do bazy i gdzie mają być przesłane (np. do przeanalizowania przez algorytm rozpoznania obrazu czy do tłumaczenia).

Prezentacja Amazon Lex. | Wideo YouTube.com

Chatbot Amazon Lex vs formularz na stronie internetowej

Język rozmowy chatbota z użytkownikiem

Amazon Lex obecnie mówi i rozpoznaje wyłącznie angielski w wersji US. Przy dodatkowym wysiłku i integracji kilku innych usług, takich jak Amazon Translate albo Google Translate, można wprowadzić do chatbot’a tłumaczenie maszynowe. Nie będzie to jednak natywny mechanizm AWS Lex. W przypadku zwykłego formularza na stronie internetowej można nie ograniczać się i wdrożyć go w dowolnym języku.

Wiedza o użytkowniku

W wypadku formularza wiedza o użytkowniku, którą otrzymujemy, jest mocno ograniczona. Dowiadujemy się, czy użytkownik dotarł do końca formularza i wysłał swoje zgłoszenie, czy (i w którym momencie) porzucił formularz. Tymczasem chatbot wie, jakich zwrotów używa klient, co i jak nazywa, opisuje, jak formułuje myśli, jakie błędy popełnia. To daje cenną wiedzę o użytkowniku, która pozwala nie tylko ulepszyć chatbota, rozszerzając jego słownik. Pozwala także zwiększyć konwersję, ulepszyć prezentację produktu, wprowadzić wyrażenia (triggery) do opisów. Triggery zwiększą zainteresowanie produktem lub usługą.

Chatbot przyda się do usprawnienia procesu komunikacji z klientem na stronie internetowej lub w aplikacji mobilnej. | Fot. Pexels.com

O czym należy pamiętać przy projektowaniu chatbota?

Oto odpowiedzi:

  1. Trzeba ustalić, kto jest użytkownikiem i jaki cel chce osiągnąć.
  2. Pamiętać o języku konwersacji i ograniczeniach wielojęzyczności.
  3. podzielić cele użytkowników na intenty. Jeden cel równa się jeden intent.
  4. Określić, jakie dane są konieczne do zebrania przez chatbota, aby cel został wykonany.
  5. Ocenić, co powinno dziać się z danymi, które zbierze chatbot: czy mają zostać przekazane w celu realizacji zamówienia, a może mają zostać poddane analizie.
  6. Zaprojektować rozmowy chatbota tak, aby użytkownik przekazał odpowiednie dane, żeby zrealizować cel.
  7. Analizować zapytania użytkowników, by ulepszyć konwersacje chatbota i poprawić jakość prezentacji produktu, sprzedaży.
  8. Konwersacje można zaprojektować tak, aby chatbot rozpoznawał, kim jest użytkownik w kategorii grupy docelowej, persony, a także tak, żeby w rozmowie z chatbotem użytkownik mógł wracać do innego wątku rozmowy.
  9. Dystrybucja chatbota Amazon Lex może odbywać się za pomocą Facebook Messenger, Slack, Kik, Twilio SMS, a także dowolnej strony internetowej i aplikacji mobilnej.

Fotografia tytułowa: Michele M. F. / Flickr.com / Bit.ly/2XBFuJt / CC BY-SA 2.0

Avatar
Dymitr Romanowski
Product Designer, Head of Design w The Story. Nagrodzony iF Design Award za Service Design i UX. Projektuje aplikacje biznesowe i pomaga firmom w budowaniu biznesów cyfrowych.