ݺߣ

ݺߣShare a Scribd company logo
Prowadzący
Cezary Kuik
Chatbot & AI Lead, Socjomania
Jak zrobić bota z AI?
Podręcznik manualny: Chatfuel + DialogFlow
1
Cezary Kuik
2
O konsultancie
Specjalizuje się w planowaniu strategii i projektowaniu kampanii na Messengerze. Często reprezentuje i wchodzi do
organizacji klienta jako zewnętrzny konsultant. Od 2018 roku rozwija podstawowe modele NLP oraz przybliża firmom
zagadnienia z zakresu Sztucznej Inteligencji. Obecnie rozwija się zawodowo w kierunku Data Science.
Doświadczenie
Doświadczenie strategiczne zdobywał w zespole McCann Worldgroup - jednej z najlepszych i najstarszych agencji w branży
reklamowej. Współtworzył pierwszą w Polsce firmę realizującą zintegrowane kampanie na Messengerze, w tym jedną na
zlecenie Facebook’a US. Polski partner platformy Chatfuel - największej na świecie platformy do tworzenia botów, która
przyznała mu tytuł jednego z najbardziej wartościowych twórców aplikacji na Messengera.
Portfolio projektowe
Cezary zrealizował ponad 75 kampanii z wykorzystaniem Messengera. W grupie jego klientów są marki bankowe, FMCG,
alkoholowe, ubezpieczeniowe, odzieżowe czy motoryzacyjne. Prowadzi szkolenia i wykłady od 2016 roku.
Na swoim koncie ma kilkadziesiąt szkoleń, wykładów oraz wystąpień publicznych.
Nagrody branżowe
Nagroda Effie w kategorii Smart Budget Campaign (Pernod Ricard), Best StartUp Project in CEE (StartUp Hub Poland),
Gold Medal of Geneva Inventions (44th International Exhibition of Inventions Geneva - Zercado).
Chatbot & AI Lead
Specjalizacja: messenger, chatbot, AI, komunikatory, NLP
Czego nauczę się z podręcznika?
3
Czego nauczę się z podręcznika?
Messenger
AD 2020
Chatfuel DialogFlow Janis.AI Trening bota
• Najważniejsze informacje i statystyki
• Kluczowe trendy
• Konfiguracja konta
• Jak budować bota?
• Konfiguracja konta
• Jak budować intencje?
• Jak odpowiadać blokami z Chatfuela?
• Konfiguracja konta
• Jak połączyć Chatfuel i DialogFlow?
• Jak trenować bota?
• Praktyczne wskazówki
4
Messenger
5
6
Messenger w Polsce
W Polsce z niebieskiego komunikatora korzysta obecnie
14 320 000 osób, co stanowi 37,7% całej populacji.
Kobiety stanowią 54,3 % wszystkich użytkowników.
Największa grupa wiekowa to 25-34 (4 100 000 osób).
Największa różnica między płciami jest w grupie 35-44,
gdzie kobiety przeważają o 400 000 jednostek.
Kluczowe aktualizacje w 2020 roku
Obowiązkowe konto na Facebooku,
Nowe zasady wysyłania notyfikacji push,
Nowe znaczniki wiadomości,
Facebook News Page Index,
One-Time Notification API.
7
8
Facebook usunął możliwość logowania do Messengera z wykorzystaniem
numeru telefonu. By  móc korzystać z  popularnego komunikatora trzeba
założyć konto w serwisie. Zmiana dotyczy wyłącznie nowych użytkowników.
Dotychczasowi mogą korzystać z Messengera na starych zasadach.
Amerykański gigant tłumaczy ujednolicenie logowania do  Messengera
ułatwieniem korzystania z  popularnego komunikatora. Bo jak twierdzi, dziś
większość osób korzystających z Messengera już loguje się przez Facebooka.
Obowiązkowe konto na Facebooku
https://kodabots.com/blog/zmiany-w-messengerze-o-ktorych-powinienes-wiedziec/
Przeczytaj więcej:
9
Facebook wydłużył czas na  przygotowanie się do  nowych zasad
i wprowadzenia nowych funkcji przesyłania wiadomości, które miały być
wdrożone 15 stycznia 2020 roku. Aktualna data to 4 marca 2020 r.
Boty będą miały tylko dobę na to, aby udzielić użytkownikowi odpowiedzi.
W tym czasie marki mają dowolność w tworzeniu treści, w tym także tych
posiadających element promocji czy działań sprzedażowych.
Nowe zasady wysyłania notyfikacji push
https://kodabots.com/blog/zmiany-w-messengerze-o-ktorych-powinienes-wiedziec/
Przeczytaj więcej:
10
Facebook umożliwi firmom wysyłanie wiadomości po upływie 24 godzin
w kilku wyjątkowych przypadkach, które opisują nowe znaczniki, czyli:
Post Purchase Update (po ostatnim zakupie)
Confirmed Event Update (przypomnienie o wydarzeniach)
Account Update (aktualizacja konta)
Human Agent (wiadomości od administratora fanpage’a)
Nowe znaczniki wiadomości
https://kodabots.com/blog/zmiany-w-messengerze-o-ktorych-powinienes-wiedziec/
Przeczytaj więcej:
11
Facebook zamierza ograniczyć dostęp do  subskrypcji wiadomości.
Większość botów korzysta z niej do wysyłania użytkownikom treści, czasem
nawet bez zgody użytkownika. Jedyną szansą skorzystania z tej opcji będzie
rejestracja do Facebook News Page Index, dostępnej dla stron newsowych. 
Facebook News Page Index
https://kodabots.com/blog/zmiany-w-messengerze-o-ktorych-powinienes-wiedziec/
Przeczytaj więcej:
12
Możliwość wysłania 1 wiadomości (alertu), gdy  użytkownik się na  nią
zapisał np. w przypadku alertów cenowych, czy zakupu biletu na wydarzenie.
W  przeciwieństwie do  subskrypcji, API powiadomień jednorazowych
ogranicza firmę do  jednej wiadomości na  żądanie użytkownika. Jeśli dana
osoba zaangażuje się w wiadomość, ponownie otworzy się jej standardowe
okno wiadomości. Opcja zostanie dodana w lutym.
One-Time Notification API
https://kodabots.com/blog/zmiany-w-messengerze-o-ktorych-powinienes-wiedziec/
Przeczytaj więcej:
13
Protip
Cezary Kuik
Idea Superaplikacji
https://medium.com/@cezary.kuik/messenger-instagram-64b99a0f9e2f
Przeczytaj mój artykuł:
Chatfuel
14
15
Platforma Chatfuel
Chatfuel to platforma typu low code, czyli taka, która umożliwia łatwe
tworzenie aplikacji bez konieczności użycia języka programowania.
46% wszystkich botów na Messengerze powstało w tym narzędziu.
Boty tworzy się za pomocą prostych bloków, które sprawiają, że cały
proces przypomina budowanie konstrukcji z klocków lego. Dziś
platforma to nie tylko konfigurator, ale także narzędzie dające szeroki
możliwości marketingowe, np. segmentacja użytkowników,
personalizacja rozmowy czy zarządzanie nietypowymi danymi.
Nie traktuj tego jako podręcznika do Chatfuela, a tylko i wyłącznie
wyjaśnienie podstawowych konceptów i zachętę do nauki.
Konfiguracja konta
16
Otwieramy stronę chatfuel.com
17
Potwierdzenie konta na Facebooku
18
Otrzymasz prośbę o zalogowanie się na swoje konto na Facebooku,
a następnie potwierdzenie swojego identyfikatora przypisanego do
Twojego konta (Facebook ID).
Chatfuel otrzyma zdjęcie profilowe, e-mail i nazwę użytkownika.
Aplikacja nie otrzyma uprawnień do publikacji treści na Twojej osi
czasu Facebooka. Klikaj śmiało!
https://wedevs.com/174308/facebook-messenger-bot-tutorial-for-beginners/
Wybór strony na Facebooku
19
Na tym etapie należy wskazać swoją stronę na Facebooku.
Aby to zrobić, wybierz fanpage zaznaczając go na widocznej
liście, a następnie naciśnij przycisk „Next”, aby przejść dalej.
https://wedevs.com/174308/facebook-messenger-bot-tutorial-for-beginners/
Uprawnienia aplikacji
20
Następnie Chatfuel pokaże wszystkie uprawnienia, których
potrzebuje do prawidłowego działania. Pozostaw wszystkie
opcje jako „YES”. Teraz naciśnij przycisk „Done”, aby przejść dalej.
https://wedevs.com/174308/facebook-messenger-bot-tutorial-for-beginners/
Potwierdzenie
21
Jeśli wszystko przebiegło prawidłowo, to pojawi się komunikat
informujący o powodzeniu połączenia Chatfuela z Facebookiem.
Kliknij „OK”, aby kontynuować.
https://wedevs.com/174308/facebook-messenger-bot-tutorial-for-beginners/
Podpięcie bota do strony na Facebooku
22
Jeśli wszystko przebiegło prawidłowo, to pojawi się komunikat
informujący o powodzeniu połączenia Chatfuela z Facebookiem.
Kliknij „OK”, aby kontynuować.
https://wedevs.com/174308/facebook-messenger-bot-tutorial-for-beginners/
Kliknij „CONNECT TO PAGE” obok wybranej strony na Facebooku.
Wybór planu
23
https://wedevs.com/174308/facebook-messenger-bot-tutorial-for-beginners/
Na tym etapie wystarczy darmowa wersja Chatfuela.
Panel konfiguratora
24
https://wedevs.com/174308/facebook-messenger-bot-tutorial-for-beginners/
Jeśli dotrzesz do tego ekranu, to znak, że się udało!
Jak budować bota?
25
Czym są bloki w Chatfuel?
26
Bloki to kontenery, w których zawarta jest treść bota, na przykład
wiadomości tekstowe, obrazy, karty galerii, szybkie odpowiedzi
oraz wszystkie inne dostępne w Chatfuel wtyczki („Mǰ”).
Wszystkie bloki dostępne są w podręcznym pasku,
który możesz znaleźć na samym dole konfiguratora.
Czym są bloki domyślne?
27
Welcome Message: ten blok zostanie uruchomiony zawsze
jako pierwsza wiadomość po rozpoczęciu rozmowy z botem.
Default Answer: ten blok zostanie uruchomiony zawsze kiedy
użytkownik wyśle wiadomość, której bot nie rozpoznaje.
Nawigacja między blokami
28
Podstawowym sposobem, choć nie jedynym(!),
poruszania się po bocie są przyciski.
Blok 1 Blok 2
W sekcji „Redirect to block” podajemy nazwę
bloku, do którego ma kierować przycisk.
Wciśnięcie przycisku uruchomi wskazany blok
oraz zawarte w nim treści lub działania.
Do czego służą podstawowe karty?
29
Karta pozwala stworzyć wiadomość tekstową
o limicie do 640 znaków (liczone ze spacją).
Karta pozwala wyświetlić rozmówcy „kropki”,
które pojawiają się kiedy ktoś pisze wiadomość.
Karta pozwala stworzyć wiadomość graficzną,
na przykład zdjęcie lub GIF.
Karta pozwala stworzyć galerię z kart, które mają
zdjęcia, opis i przyciski (maksymalnie 10).
Karta pozwala przenieść użytkownika do innego
bloku bez konieczności używania przycisku.
Karta pozwala stworzyć predefiniowane
odpowiedzi (maksymalnie 10).
Karta wyświetla zaawansowane wtyczki, które
można wykorzystać w bocie (np. JSON API).
Zadanie 1:
stwórz bota zgodnie z instrukcją
Stwórz nowy blok
31
Przed
Stwórz nowy blok wybierając ten oznaczony „plusem”.
Powtórz czynność kilka razy i stwórz w sumie 4 bloki.
Po
Nazwij bloki
32
Po prawej stronie pojawi się panel konfiguratora dla nowo
utworzonego bloku. Kliknij „Untitled Block”.
Pojawi się możliwość edycji nazwy bloku. Zmień ją na
Pytanie 1, a następnie powtórz czynność z pozostałymi
blokami, aby uzyskać Pytanie 2, Pytanie 3, Pytanie 4.
Checkpoint
33
Tak powinien wyglądać efekt końcowy.
34
Przejdź do bloku Welcome Message, a potem
wybierz „trzy kropki” po lewej stronie wiadomości.
Welcome Message
Wybierz przycisk „Delete Card”, aby potwierdzić. Stwórz nową wiadomość tekstową (jak wyżej).
35
W bloku Pytanie 1 dodaj kartę „Typing”.
Ustaw czas trwania na 2,5 sekundy.
Dodaj kartę „Text”.
Stwórz wiadomość następującej treści:
Uzupełnij treść bloku Pytanie 1
Sklep czynny jest od poniedziałku
do piątku w godzinach od 8 do 17.
36
W bloku Pytanie 2 dodaj kartę „Typing”.
Ustaw czas trwania na 2,5 sekundy.
Dodaj kartę „Text”.
Stwórz wiadomość następującej treści:
Uzupełnij treść bloku Pytanie 2
Produkt można reklamować
w ciągu 30 dni od dnia zakupu.
37
W bloku Pytanie 3 dodaj kartę „Typing”.
Ustaw czas trwania na 2,5 sekundy.
Dodaj kartę „Text”.
Stwórz wiadomość następującej treści:
Uzupełnij treść bloku Pytanie 3
W przypadku pozytywnie rozpatrzonej
reklamacji, zwrot pieniędzy następuje w
ciągu kolejnych 7 dni roboczych.
38
W bloku Pytanie 4 dodaj kartę „Typing”.
Ustaw czas trwania na 2,5 sekundy.
Dodaj kartę „Text”.
Stwórz wiadomość następującej treści:
Uzupełnij treść bloku Pytanie 4
W przypadku zepsutego produktu
konieczne jest zgłoszenie usterki przez
nasz formularz reklamacyjny.
Co z przyciskami?
39
Boty to nic innego jak drzewa decyzyjne. Im więcej treści,
tym więcej rozgałęzień trzeba stworzyć. Przyciski pozwalają
łatwo po nich nawigować, ale faktem jest, że użytkownicy
bardzo często je ignorują i zadają "pytanie z palca”.
Aplikacje budowane w ten sposób są efektywne, tylko jeśli
użytkownik podąża wyznaczoną przez nas ścieżką. W innym
wypadku „nie rozumieją” wiadomości i proszą o powtórkę,
dlatego większość botów ma opinię „głupich”.
Jak rozwiązać ten problem?
40
Boty to nic innego jak drzewa decyzyjne. Im więcej treści, tym więcej rozgałęzień
trzeba stworzyć. Przyciski pozwalają łatwo po nich nawigować, ale faktem jest, że
użytkownicy bardzo często je ignorują i zadają "pytanie z palca”.
Aplikacje budowane w ten sposób są efektywne, tylko jeśli użytkownik podąża
wyznaczoną przez nas ścieżką. W innym wypadku „nie rozumieją” wiadomości i
proszą o powtórkę, dlatego większość botów ma opinię „głupich”.
Co jeśli użytkownicy ignorują przyciski?
Protip
Cezary Kuik
Jak rozwiązać ten problem?
DialogFlow
41
42
Platforma DialogFlow
DialogFlow to platforma Google’a umożliwiająca łatwe tworzenie
aplikacji rozumiejących język naturalny (NLP), czyli tym którym
posługują się ludzie. Użytkownicy mogą trenować własne
algorytmy Sztucznej Inteligencji, które zwiększają możliwości
klasycznego chatbota tekstowego i asystenta głosowego.
Podstawą jest Agent, którego celem jest rozpoznanie intencji
wypowiedzi rozmówcy oraz dopasowanie adekwatnej odpowiedzi.
Użytkownik występuje w roli trenera, który dostarcza przykładowe
wyrażenia oraz wskazuje maszynie jej prawidłowe i błędne decyzje
w rozmowach z użytkownikami.
Od 2019 roku DialogFlow wspiera język polski.
Konfiguracja konta
43
Otwieramy stronę dialogflow.com
44
W prawym górnym rogu wybierz „Sign in”.
Potwierdzenie konta Google
45
W pierwszym kroku DialogFlow
poprosi o dostęp do konta Google.
DialogFlow poprosi o ponowne
zalogowanie się do konta Google.
DialogFlow poprosi o kolejne
dostępy potrzebne do działania.
Akceptacja warunków użytkowania
46
W kolejnym kroku DialogFlow wymaga wskazania kraju pobytu
(wybierz „Poland”) oraz akceptacji warunków użytkowania.
Zaznacz checbox i kliknij „Accept”, aby przejść dalej.
Uruchomienie konsoli
47
Jeśli wszystko przebiegło prawidłowo, to powinna pojawić się konsola w ograniczonej wersji.
Wybierz przycisk „CREATE AGENT”, aby rozpocząć budowę modelu NLP.
Zadanie 2:
stwórz agenta
Stwórz agenta
49
Przed
Stwórz nazwę agenta, np. „Tutorial".
Wybierz język domyślny (polski).
Naciśnij „Create”, aby utworzyć agenta.
Po
Pełna wersja konsoli
50
Jeśli dotrzesz do tego ekranu, to znak, że się udało!
Jak budować intencje?
51
Czym są intencje w DialogFlow?
52
Intencje to podstawowe elementy, z których budujemy model NLP.
Na ich podstawie agent rozpoznaje wypowiedzi użytkownika, aby
na ich podstawie udzielić adekwatnej odpowiedzi lub uruchomić
określone działanie, np. funkcję w programie komputerowym.
Intencje domyślne
53
Default Welcome Intent to domyślnie skonfigurowana intencja,
rozpoznaje podstawowe formy przywitania oraz posiada kilka
wytrenowanych odpowiedzi. Ta intencja zostanie uruchomiona,
gdy użytkownik rozpocznie interakcję z naszym botem.
Default Fallback Intent to domyślnie skonfigurowana intencja,
Bot uruchamia ją w sytuacji, gdy nie zrozumie zapytania lub
polecenia swojego rozmówcy.
Z czego składają się intencje?
54
Są to przykładowe wypowiedzi użytkowników. Gdy wiadomość rozmówcy przypomina
jedno z wyrażeń treningowych, agent przyporządkowuje mu intencję. Nie musimy
definiować każdego możliwego przykładu,bo wbudowane algorytmy uczenia maszynowego
potrafią rozpoznawać wyrażenia podobne do tych bazowych.
Możemy definiować akcje dla intencji. Kiedy agent rozpozna intencję, uruchomi określone
działania zdefiniowane w aplikacji (np. uruchomienie lokalizatora). Parameters to
najważniejsze informacje wyodrębnione z wypowiedzi użytkownika – data, adres
zamieszkania, nazwa produktu - cokolwiek.
Zdefiniowane odpowiedzi (tekstowe, głosowe lub wizualne) przypisane do intencji. Mogą
dostarczyć informacje, być pytaniem doprecyzowującym intencje lub zakończyć rozmowę.
Training phrases
55
Miejsce, w którym dodajemy przykładowe wypowiedzi.
Lista wszystkich przykładowych wypowiedzi.
Każda intencja powinna mieć swoje unikalne frazy treningowe.
Unikamy sytuacji, w której dwie różne intencje mają taki samy przykład.
Responses
56
Miejsce, w którym dodajemy przykładowe odpowiedzi.
Lista wszystkich przykładowych odpowiedzi.
Zadanie 3:
stwórz intencje
Stwórz nową intencję
58
Naciśnij „CREATE INTENT”, aby stworzyć intencję.
Checkpoint
59
Jeśli wszystko przebiegło prawidłowo, to powinna pojawić się taki ekran.
Stwórz nazwę intencji
60
Kliknij na szary napis „Intent name”, aby włączyć kursor.
Wpisz nazwę „question.one” i wciśnij „SAVE”.
Dodaj przykłady treningowe
61
Naciśnij „ADD TRAINING PHRASES”, aby uruchomić edytor.
Dodaj następujące przykłady:
- O której otwieracie sklep?
- Kiedy zamykacie?
- Kiedy macie otwarte?
- Czy mogę zrobić zakupy rano?
Checkpoint 1/2
62
Tak powinien wyglądać efekt końcowy na tym etapie.
Warto zauważyć, że DialogFlow automatycznie podkreślił
słowo „rano”, które wyodrębnił jako jednostkę czasu.
Warto poznać lepiej możliwości DialogFlow, aby użyć
takich danych do własnych działań konwersacyjnych.
Usuń odpowiedzi
63
Naciśnij „ADD RESPONSE”, aby uruchomić edytor.
Naciśnij ikonę kosza na śmieci i usuń blok „Text Response”.
Usuń odpowiedzi
64
Naciśnij „ADD RESPONSE”, aby uruchomić edytor.
Naciśnij ikonę kosza na śmieci i usuń blok „Text Response”.
Dlaczego usuwamy odpowiedzi?
Odpowiedzi są już w Chatfuelu
65
Jako odpowiedzi wykorzystamy stworzone wcześniej bloki w Chatfuel.
Czy mogę stworzyć odpowiedzi bezpośrednio w DialogFlow?
66
Pytanie jest zasadne, ponieważ DialogFlow posiada wewnętrzny konfigurator
umożliwiający budowanie bota Messengera. Różnica tkwi w możliwościach
narzędzia i jego przeznaczeniu. DialogFlow służy do budowania modeli NLP dla
różnych platform, więc posiada podstawowe elementy interfejsu Messengera.
Konfigurator Messengera w DialogFlow
Protip
Cezary Kuik
Chatfuel to narzędzie dedykowane w całości nie tylko do budowy
botów na Messengerze, ale też działań marketingowych z ich użyciem.
Jak odpowiadać blokami z Chatufela?
67
Dodaję kartę Custom Payload
68
Naciśnij „ADD RESPONSES”, aby wybrać opcję. Naciśnij „Custom Payload”, aby dodać kartę.
Uzupełnij kartę Custom Payload
69
"Tu wpisz nazwę bloku" zamień na "Pytanie 1"
Uzupełnij kartę poniższym kodem:
{
"redirect_to_blocks": [
"tu wpisz nazwę bloku"
]
}
Checkpoint 2/2
70
Tak powinien wyglądać efekt końcowy.
Zadanie 4:
stwórz intencje dla pozostałych
bloków stworzonych w Chatfuelu
72
Intencja dla bloku Pytanie 2
Stwórz intencję o nazwie question.two
Dodaj następujące przykłady:
- Czy mogę zwrócić buty?
- Ile mam czasu na zwrot?
- Czy mogę reklamować towar?
Uzupełnij odpowiedź kartą Custom Payload z kodem:
{
"redirect_to_blocks": [
"Pytanie 2"
]
}
73
Stwórz intencję o nazwie question.three
Dodaj następujące przykłady:
- Ile będę czekać na pieniądze?
- Kiedy zwrócicie środki?
- Ile macie dni na zwrot kasy?
Uzupełnij odpowiedź kartą Custom Payload z kodem:
{
"redirect_to_blocks": [
"Pytanie 3”
]
}
Intencja dla bloku Pytanie 3
74
Stwórz intencję o nazwie question.four
Dodaj następujące przykłady:
- Moje buty się zepsuły.
- Odkleiła mi się podeszwa.
- Gdzie mogę naprawić buty?
Uzupełnij odpowiedź kartą Custom Payload z kodem:
{
"redirect_to_blocks": [
"Pytanie 4"
]
}
Intencja dla bloku Pytanie 4
Jak połączyć Chatfuel i DialogFlow?
75
Janis
76
77
Platforma Janis.AI
Janis.AI to platforma umożliwiająca integrację różnych narzędzi
do tworzenia interfejsów konwersacyjnych. Ciekawe jest to, że
cały proces odbywa się za pośrednictwem wewnętrznego bota(!).
Platforma jest wyposażona w dodatkowe rozwiązania pozwalające
na zarządzanie własnymi modelami AI, np. ich trenowanie. Jednak
zgodnie z myślą przewodnią tego podręcznika, potraktujemy tylko
jako rozwiązanie umożliwiające połączenie Chatfuel z DialogFlow.
Dlaczego integracja jest kluczowa?
78
BODY (UI) MIND (UX)
79
W wielu przypadkach bot posiada informacje, których potrzebuje użytkownik.
Problemem jest ich dostępność, bo w aplikacjach budowanych wyłącznie na
Chatfuelu uzależnione to jest od ścieżki złożonej z kilku-kilkunastu kliknięć.
Integracja z DialogFlow sprawia, że nawet jeśli użytkownik zignoruje ścieżkę,
to bot ma szansę rozpoznać intencję użytkownika i dostarczyć treści zawarte
w określonym bloku. Dzięki temu bot sprawia wrażenie inteligentnego.
DialogFlow jako wyszukiwarka treści
Protip
Cezary Kuik
Konfiguracja konta
80
Otwieramy stronę janis.ai
81
W prawym górnym rogu wybierz „Sign in” oraz „with Google”.
Potwierdzenie konta Google
82
W pierwszym kroku zaloguj się do
Janis z użyciem konta Google.
Janis poprosi o dostęp do konta Google.
Porozmawiaj z Janis
83
Jeśli wszystko przebiegło prawidłowo, to włączy się czat z Janis. Kliknij „Continue”.
Dodaj bota w Janis
84
Kliknij „Add a bot”, aby dodać bota na platformie Janis.
Podłącz moduł AI
85
Kliknij „Connect AI”, aby połączyć Janis z DialogFlow.
Wybierz platformę
86
Kliknij „DialogFlow”, aby uzyskać dostęp do listy agentów.
Podłącz agenta DialogFlow
87
Kliknij „Select AI Agent”, aby wybrać agenta DialogFlow.
Podłącz Chatfuela
88
Janis zaproponuje połączenie agenta z botem w Chatfuelu. Kliknij „Continue”.
Wybierz platformę
89
Janis zaproponuje kilka rozwiązań. Kliknij „Chatfuel”.
Wygeneruj link
90
Janis wygeneruje unikalny link, który należy wgrać do Chatfuela.
Wygeneruj link
91
Janis wygeneruje unikalny link, który należy wgrać do Chatfuela.
Otwieramy Chatfuela
92
Przejdź do bloku Default Answer, a potem wybierz „trzy
kropki” po lewej stronie wiadomości i opcję „Delete"
Otwórz blok Default Answer
Wybierz przycisk „Delete Card”, aby potwierdzić.
93
Otwórz kartę „Mǰ”
94
Wybierz wtyczkę „Save User Input”
95
Uzupełnij pole kartę
Przed Po
W polu „SAVE ANSWER TO ATTRIBUTE” wpisz {{user input}}.
96
Otwórz ponownie kartę „Mǰ”
97
Wybierz wtyczkę „JSON ʱ”
98
Wklej unikalny link wygenerowany w Janis
Przed Po
99
Znajdź bezpośredni link do bota…
Kliknij w link, aby porozmawiać z botem.
100
…lub skorzystaj z Messengera w Chatfuelu
Kliknij w ikonę, aby porozmawiać z botem.
101
Przetestuj bota
Zadaj próbne pytanie i poczekaj na odpowiedź.
102
103
Zauważ, że pytanie, które skierowałem do bota nie było wymienione jako
przykład w sekcji „Training phrases” intencji odpowiadającej za rozpoznanie
tego typu wypowiedzi. Dzieje się tak, ponieważ algorytmy uczenia
maszynowego potrafią rozpoznawać wyrażenia podobne do tych bazowych.
Warto mieć świadomość, że większość współczesnych algorytmów AI ma
na celu wyszukiwanie i porządkowanie danych, aby na tej podstawie
znaleźć określony wzór. W naszym przypadku DialogFlow sprawdza na ile
wypowiedź użytkownika pasuje do naszych przykładów.
Nie musimy definiować każdego przykładu
Protip
Cezary Kuik
Jak trenować bota?
104
105
Coś tu poszło nie tak…
Bot popełnił błąd. To się będzie zdarzać.
Dlaczego bot podjął taką decyzję?
"Jak oddać towar?” to przykład, którego nie ma w bazie.
Za to w bazie mamy przykład „Czy mogę reklamować towar?”
Pytanie pokrywało się słowami z przykładem na poziomie
około 30%, dlatego bot przyporządkował te intencję.
106
Coś tu poszło nie tak…
Bot popełnił błąd. To się będzie zdarzać.
Dlaczego bot podjął taką decyzję?
"Jak oddać towar?” to przykład, którego nie ma w bazie.
Za to w bazie mamy przykład „Czy mogę reklamować towar?”
Pytanie pokrywało się słowami z przykładem na poziomie
około 30%, dlatego bot przyporządkował te intencję.
Jak sprawić, aby bot się uczył?
107
Otwórz konsolę DialogFlow
Wybierz zakładkę „Training"
108
Panel treningowy
W tym miejscu widzimy wszystkie wiadomości obsłużone przez agenta DialogFlow.
109
Trening agenta
W tym miejscu widzimy wypowiedź użytkownika oraz przyporządkowaną intencję.
110
Trening agenta - pozytywne wzmocnienie
Jeśli agent przyporządkował intencję prawidłowo, to wybieramy "kółko z ptaszkiem”.
Potwierdzamy czynność klikając „APPROVE” i system rozpoczyna trening.
111
Trening agenta - modyfikacja błędnej decyzji
Kliknij nazwę przyporządkowanej intencji.
112
Trening agenta - modyfikacja błędnej decyzji
Wybierz z listy prawidłową intencję.
113
Trening agenta - modyfikacja błędnej decyzji
Intencja zostanie zaakceptowana automatycznie.
Potwierdzamy czynność klikając „APPROVE” i system rozpoczyna trening.
114
115
Dodatkowe opcje
Ikona „przekreślonego kółka” przyporządkowuje wypowiedź do Defalut Fallback Intent.
Ikona „kosza na śmieci” usuwa wypowiedź z bazy przykładów do nauki.
116
Protip
Cezary Kuik
Podstawy uczenia maszynowego
https://www.cezarykuik.com/post/podstawy-uczenia-maszynowego
Przeczytaj mój artykuł:
Praktyczne wskazówki
117
118
DialogFlow to narzędzie, z którym łatwo zacząć, ale bardzo szybko okazuje
się, że jedno słowo potrafi zmienić cały sens wypowiedzi. Celem nie powinna
być rozmowa jak z człowiekiem - to nie jest test Turinga. Kierujmy się tym,
aby ułatwić dostęp do informacji albo skutecznie zdiagnozować potrzeby
użytkownika. Im krócej i prościej, tym lepiej.
Automatyzuj rzeczy nudne, a nie trudne
Protip
Cezary Kuik
119
Czasem w różny sposób mówimy o tym samym. Czasem o różnych rzeczach
mówimy w ten sam sposób. Warto przed przystąpieniem do programowania
bota zbadać dokładnie w jaki sposób użytkownicy rozmawiają z naszą firmą.
To najlepszy, a także najtańszy sposób, aby zweryfikować czy automatyzacja
obsługi klienta ma jakikolwiek sens. Im więcej krótkich i powtarzalnych
schematów, tym większa szansa, że bot będzie działał efektywnie.
Zbadaj jakim językiem mówią użytkownicy
Protip
Cezary Kuik
120
Panel treningowych to pokusa trenowania kolejnych intencji, które mogą
zrobić wrażenie na pojedynczych użytkownikach (np. żartobliwa odpowiedź),
ale nie dają żadnego efektu jakościowego w rozwoju agenta. Co więcej, im
więcej różnych przykładów, tym większe ryzyko błędnego dopasowania.
Przykład: stworzyłem bota do śledzenia rozwoju sytuacji z koronawirusem.
Przygotowałem listę prostych pytań (skąd jest wirus, jak się przenosi). Po kilku
dniach dodałem intencje rozpoznające pytania o paczki z Aliexpress oraz
maseczki, ale dopiero kiedy pojawiły się kilka razy.
Skup się na określonych wątkach
Protip
Cezary Kuik
Bonus: czułość maszyny
121
122
To ustawienie zakresu swobody jaką algorytmy uczenia maszynowego mają
w analizie wypowiedzi użytkowników. Zakres wynosi od 0.1 do 1.
Im wyższy zakres, tym bardziej rygorystyczne warunki jakie musi spełnić
wypowiedź użytkownika. Ustawienie wskaźnika na poziomie 1 w praktyce
oznacza, że wiadomości powinny dokładnie takie same jak te z naszej bazy.
Czym jest czułość maszyny?
Protip
Cezary Kuik
123
Otwórz konsolę DialogFlow
Wybierz ikonę "koła zębatego”.
124
Ustawienia
Wybierz kartę "ML ٳپԲ”.
125
Ustaw odpowiedni wskaźnik
Znajdziesz go pod „ML CLASSIFICATION THRESHOLD”.
https://www.linkedin.com/in/cezary-kuik/
cezary@socjomania.pl
Dziękuję!
Cezary Kuik
Chatbot&AI Lead @ Socjomania

More Related Content

Jak zrobić chatbota z AI?

  • 1. Prowadzący Cezary Kuik Chatbot & AI Lead, Socjomania Jak zrobić bota z AI? Podręcznik manualny: Chatfuel + DialogFlow 1
  • 2. Cezary Kuik 2 O konsultancie Specjalizuje się w planowaniu strategii i projektowaniu kampanii na Messengerze. Często reprezentuje i wchodzi do organizacji klienta jako zewnętrzny konsultant. Od 2018 roku rozwija podstawowe modele NLP oraz przybliża firmom zagadnienia z zakresu Sztucznej Inteligencji. Obecnie rozwija się zawodowo w kierunku Data Science. Doświadczenie Doświadczenie strategiczne zdobywał w zespole McCann Worldgroup - jednej z najlepszych i najstarszych agencji w branży reklamowej. Współtworzył pierwszą w Polsce firmę realizującą zintegrowane kampanie na Messengerze, w tym jedną na zlecenie Facebook’a US. Polski partner platformy Chatfuel - największej na świecie platformy do tworzenia botów, która przyznała mu tytuł jednego z najbardziej wartościowych twórców aplikacji na Messengera. Portfolio projektowe Cezary zrealizował ponad 75 kampanii z wykorzystaniem Messengera. W grupie jego klientów są marki bankowe, FMCG, alkoholowe, ubezpieczeniowe, odzieżowe czy motoryzacyjne. Prowadzi szkolenia i wykłady od 2016 roku. Na swoim koncie ma kilkadziesiąt szkoleń, wykładów oraz wystąpień publicznych. Nagrody branżowe Nagroda Effie w kategorii Smart Budget Campaign (Pernod Ricard), Best StartUp Project in CEE (StartUp Hub Poland), Gold Medal of Geneva Inventions (44th International Exhibition of Inventions Geneva - Zercado). Chatbot & AI Lead Specjalizacja: messenger, chatbot, AI, komunikatory, NLP
  • 3. Czego nauczę się z podręcznika? 3
  • 4. Czego nauczę się z podręcznika? Messenger AD 2020 Chatfuel DialogFlow Janis.AI Trening bota • Najważniejsze informacje i statystyki • Kluczowe trendy • Konfiguracja konta • Jak budować bota? • Konfiguracja konta • Jak budować intencje? • Jak odpowiadać blokami z Chatfuela? • Konfiguracja konta • Jak połączyć Chatfuel i DialogFlow? • Jak trenować bota? • Praktyczne wskazówki 4
  • 6. 6 Messenger w Polsce W Polsce z niebieskiego komunikatora korzysta obecnie 14 320 000 osób, co stanowi 37,7% całej populacji. Kobiety stanowią 54,3 % wszystkich użytkowników. Największa grupa wiekowa to 25-34 (4 100 000 osób). Największa różnica między płciami jest w grupie 35-44, gdzie kobiety przeważają o 400 000 jednostek.
  • 7. Kluczowe aktualizacje w 2020 roku Obowiązkowe konto na Facebooku, Nowe zasady wysyłania notyfikacji push, Nowe znaczniki wiadomości, Facebook News Page Index, One-Time Notification API. 7
  • 8. 8 Facebook usunął możliwość logowania do Messengera z wykorzystaniem numeru telefonu. By  móc korzystać z  popularnego komunikatora trzeba założyć konto w serwisie. Zmiana dotyczy wyłącznie nowych użytkowników. Dotychczasowi mogą korzystać z Messengera na starych zasadach. Amerykański gigant tłumaczy ujednolicenie logowania do  Messengera ułatwieniem korzystania z  popularnego komunikatora. Bo jak twierdzi, dziś większość osób korzystających z Messengera już loguje się przez Facebooka. Obowiązkowe konto na Facebooku https://kodabots.com/blog/zmiany-w-messengerze-o-ktorych-powinienes-wiedziec/ Przeczytaj więcej:
  • 9. 9 Facebook wydłużył czas na  przygotowanie się do  nowych zasad i wprowadzenia nowych funkcji przesyłania wiadomości, które miały być wdrożone 15 stycznia 2020 roku. Aktualna data to 4 marca 2020 r. Boty będą miały tylko dobę na to, aby udzielić użytkownikowi odpowiedzi. W tym czasie marki mają dowolność w tworzeniu treści, w tym także tych posiadających element promocji czy działań sprzedażowych. Nowe zasady wysyłania notyfikacji push https://kodabots.com/blog/zmiany-w-messengerze-o-ktorych-powinienes-wiedziec/ Przeczytaj więcej:
  • 10. 10 Facebook umożliwi firmom wysyłanie wiadomości po upływie 24 godzin w kilku wyjątkowych przypadkach, które opisują nowe znaczniki, czyli: Post Purchase Update (po ostatnim zakupie) Confirmed Event Update (przypomnienie o wydarzeniach) Account Update (aktualizacja konta) Human Agent (wiadomości od administratora fanpage’a) Nowe znaczniki wiadomości https://kodabots.com/blog/zmiany-w-messengerze-o-ktorych-powinienes-wiedziec/ Przeczytaj więcej:
  • 11. 11 Facebook zamierza ograniczyć dostęp do  subskrypcji wiadomości. Większość botów korzysta z niej do wysyłania użytkownikom treści, czasem nawet bez zgody użytkownika. Jedyną szansą skorzystania z tej opcji będzie rejestracja do Facebook News Page Index, dostępnej dla stron newsowych.  Facebook News Page Index https://kodabots.com/blog/zmiany-w-messengerze-o-ktorych-powinienes-wiedziec/ Przeczytaj więcej:
  • 12. 12 Możliwość wysłania 1 wiadomości (alertu), gdy  użytkownik się na  nią zapisał np. w przypadku alertów cenowych, czy zakupu biletu na wydarzenie. W  przeciwieństwie do  subskrypcji, API powiadomień jednorazowych ogranicza firmę do  jednej wiadomości na  żądanie użytkownika. Jeśli dana osoba zaangażuje się w wiadomość, ponownie otworzy się jej standardowe okno wiadomości. Opcja zostanie dodana w lutym. One-Time Notification API https://kodabots.com/blog/zmiany-w-messengerze-o-ktorych-powinienes-wiedziec/ Przeczytaj więcej:
  • 15. 15 Platforma Chatfuel Chatfuel to platforma typu low code, czyli taka, która umożliwia łatwe tworzenie aplikacji bez konieczności użycia języka programowania. 46% wszystkich botów na Messengerze powstało w tym narzędziu. Boty tworzy się za pomocą prostych bloków, które sprawiają, że cały proces przypomina budowanie konstrukcji z klocków lego. Dziś platforma to nie tylko konfigurator, ale także narzędzie dające szeroki możliwości marketingowe, np. segmentacja użytkowników, personalizacja rozmowy czy zarządzanie nietypowymi danymi. Nie traktuj tego jako podręcznika do Chatfuela, a tylko i wyłącznie wyjaśnienie podstawowych konceptów i zachętę do nauki.
  • 18. Potwierdzenie konta na Facebooku 18 Otrzymasz prośbę o zalogowanie się na swoje konto na Facebooku, a następnie potwierdzenie swojego identyfikatora przypisanego do Twojego konta (Facebook ID). Chatfuel otrzyma zdjęcie profilowe, e-mail i nazwę użytkownika. Aplikacja nie otrzyma uprawnień do publikacji treści na Twojej osi czasu Facebooka. Klikaj śmiało! https://wedevs.com/174308/facebook-messenger-bot-tutorial-for-beginners/
  • 19. Wybór strony na Facebooku 19 Na tym etapie należy wskazać swoją stronę na Facebooku. Aby to zrobić, wybierz fanpage zaznaczając go na widocznej liście, a następnie naciśnij przycisk „Next”, aby przejść dalej. https://wedevs.com/174308/facebook-messenger-bot-tutorial-for-beginners/
  • 20. Uprawnienia aplikacji 20 Następnie Chatfuel pokaże wszystkie uprawnienia, których potrzebuje do prawidłowego działania. Pozostaw wszystkie opcje jako „YES”. Teraz naciśnij przycisk „Done”, aby przejść dalej. https://wedevs.com/174308/facebook-messenger-bot-tutorial-for-beginners/
  • 21. Potwierdzenie 21 Jeśli wszystko przebiegło prawidłowo, to pojawi się komunikat informujący o powodzeniu połączenia Chatfuela z Facebookiem. Kliknij „OK”, aby kontynuować. https://wedevs.com/174308/facebook-messenger-bot-tutorial-for-beginners/
  • 22. Podpięcie bota do strony na Facebooku 22 Jeśli wszystko przebiegło prawidłowo, to pojawi się komunikat informujący o powodzeniu połączenia Chatfuela z Facebookiem. Kliknij „OK”, aby kontynuować. https://wedevs.com/174308/facebook-messenger-bot-tutorial-for-beginners/ Kliknij „CONNECT TO PAGE” obok wybranej strony na Facebooku.
  • 26. Czym są bloki w Chatfuel? 26 Bloki to kontenery, w których zawarta jest treść bota, na przykład wiadomości tekstowe, obrazy, karty galerii, szybkie odpowiedzi oraz wszystkie inne dostępne w Chatfuel wtyczki („Mǰ”). Wszystkie bloki dostępne są w podręcznym pasku, który możesz znaleźć na samym dole konfiguratora.
  • 27. Czym są bloki domyślne? 27 Welcome Message: ten blok zostanie uruchomiony zawsze jako pierwsza wiadomość po rozpoczęciu rozmowy z botem. Default Answer: ten blok zostanie uruchomiony zawsze kiedy użytkownik wyśle wiadomość, której bot nie rozpoznaje.
  • 28. Nawigacja między blokami 28 Podstawowym sposobem, choć nie jedynym(!), poruszania się po bocie są przyciski. Blok 1 Blok 2 W sekcji „Redirect to block” podajemy nazwę bloku, do którego ma kierować przycisk. Wciśnięcie przycisku uruchomi wskazany blok oraz zawarte w nim treści lub działania.
  • 29. Do czego służą podstawowe karty? 29 Karta pozwala stworzyć wiadomość tekstową o limicie do 640 znaków (liczone ze spacją). Karta pozwala wyświetlić rozmówcy „kropki”, które pojawiają się kiedy ktoś pisze wiadomość. Karta pozwala stworzyć wiadomość graficzną, na przykład zdjęcie lub GIF. Karta pozwala stworzyć galerię z kart, które mają zdjęcia, opis i przyciski (maksymalnie 10). Karta pozwala przenieść użytkownika do innego bloku bez konieczności używania przycisku. Karta pozwala stworzyć predefiniowane odpowiedzi (maksymalnie 10). Karta wyświetla zaawansowane wtyczki, które można wykorzystać w bocie (np. JSON API).
  • 30. Zadanie 1: stwórz bota zgodnie z instrukcją
  • 31. Stwórz nowy blok 31 Przed Stwórz nowy blok wybierając ten oznaczony „plusem”. Powtórz czynność kilka razy i stwórz w sumie 4 bloki. Po
  • 32. Nazwij bloki 32 Po prawej stronie pojawi się panel konfiguratora dla nowo utworzonego bloku. Kliknij „Untitled Block”. Pojawi się możliwość edycji nazwy bloku. Zmień ją na Pytanie 1, a następnie powtórz czynność z pozostałymi blokami, aby uzyskać Pytanie 2, Pytanie 3, Pytanie 4.
  • 34. 34 Przejdź do bloku Welcome Message, a potem wybierz „trzy kropki” po lewej stronie wiadomości. Welcome Message Wybierz przycisk „Delete Card”, aby potwierdzić. Stwórz nową wiadomość tekstową (jak wyżej).
  • 35. 35 W bloku Pytanie 1 dodaj kartę „Typing”. Ustaw czas trwania na 2,5 sekundy. Dodaj kartę „Text”. Stwórz wiadomość następującej treści: Uzupełnij treść bloku Pytanie 1 Sklep czynny jest od poniedziałku do piątku w godzinach od 8 do 17.
  • 36. 36 W bloku Pytanie 2 dodaj kartę „Typing”. Ustaw czas trwania na 2,5 sekundy. Dodaj kartę „Text”. Stwórz wiadomość następującej treści: Uzupełnij treść bloku Pytanie 2 Produkt można reklamować w ciągu 30 dni od dnia zakupu.
  • 37. 37 W bloku Pytanie 3 dodaj kartę „Typing”. Ustaw czas trwania na 2,5 sekundy. Dodaj kartę „Text”. Stwórz wiadomość następującej treści: Uzupełnij treść bloku Pytanie 3 W przypadku pozytywnie rozpatrzonej reklamacji, zwrot pieniędzy następuje w ciągu kolejnych 7 dni roboczych.
  • 38. 38 W bloku Pytanie 4 dodaj kartę „Typing”. Ustaw czas trwania na 2,5 sekundy. Dodaj kartę „Text”. Stwórz wiadomość następującej treści: Uzupełnij treść bloku Pytanie 4 W przypadku zepsutego produktu konieczne jest zgłoszenie usterki przez nasz formularz reklamacyjny.
  • 39. Co z przyciskami? 39 Boty to nic innego jak drzewa decyzyjne. Im więcej treści, tym więcej rozgałęzień trzeba stworzyć. Przyciski pozwalają łatwo po nich nawigować, ale faktem jest, że użytkownicy bardzo często je ignorują i zadają "pytanie z palca”. Aplikacje budowane w ten sposób są efektywne, tylko jeśli użytkownik podąża wyznaczoną przez nas ścieżką. W innym wypadku „nie rozumieją” wiadomości i proszą o powtórkę, dlatego większość botów ma opinię „głupich”. Jak rozwiązać ten problem?
  • 40. 40 Boty to nic innego jak drzewa decyzyjne. Im więcej treści, tym więcej rozgałęzień trzeba stworzyć. Przyciski pozwalają łatwo po nich nawigować, ale faktem jest, że użytkownicy bardzo często je ignorują i zadają "pytanie z palca”. Aplikacje budowane w ten sposób są efektywne, tylko jeśli użytkownik podąża wyznaczoną przez nas ścieżką. W innym wypadku „nie rozumieją” wiadomości i proszą o powtórkę, dlatego większość botów ma opinię „głupich”. Co jeśli użytkownicy ignorują przyciski? Protip Cezary Kuik Jak rozwiązać ten problem?
  • 42. 42 Platforma DialogFlow DialogFlow to platforma Google’a umożliwiająca łatwe tworzenie aplikacji rozumiejących język naturalny (NLP), czyli tym którym posługują się ludzie. Użytkownicy mogą trenować własne algorytmy Sztucznej Inteligencji, które zwiększają możliwości klasycznego chatbota tekstowego i asystenta głosowego. Podstawą jest Agent, którego celem jest rozpoznanie intencji wypowiedzi rozmówcy oraz dopasowanie adekwatnej odpowiedzi. Użytkownik występuje w roli trenera, który dostarcza przykładowe wyrażenia oraz wskazuje maszynie jej prawidłowe i błędne decyzje w rozmowach z użytkownikami. Od 2019 roku DialogFlow wspiera język polski.
  • 44. Otwieramy stronę dialogflow.com 44 W prawym górnym rogu wybierz „Sign in”.
  • 45. Potwierdzenie konta Google 45 W pierwszym kroku DialogFlow poprosi o dostęp do konta Google. DialogFlow poprosi o ponowne zalogowanie się do konta Google. DialogFlow poprosi o kolejne dostępy potrzebne do działania.
  • 46. Akceptacja warunków użytkowania 46 W kolejnym kroku DialogFlow wymaga wskazania kraju pobytu (wybierz „Poland”) oraz akceptacji warunków użytkowania. Zaznacz checbox i kliknij „Accept”, aby przejść dalej.
  • 47. Uruchomienie konsoli 47 Jeśli wszystko przebiegło prawidłowo, to powinna pojawić się konsola w ograniczonej wersji. Wybierz przycisk „CREATE AGENT”, aby rozpocząć budowę modelu NLP.
  • 49. Stwórz agenta 49 Przed Stwórz nazwę agenta, np. „Tutorial". Wybierz język domyślny (polski). Naciśnij „Create”, aby utworzyć agenta. Po
  • 50. Pełna wersja konsoli 50 Jeśli dotrzesz do tego ekranu, to znak, że się udało!
  • 52. Czym są intencje w DialogFlow? 52 Intencje to podstawowe elementy, z których budujemy model NLP. Na ich podstawie agent rozpoznaje wypowiedzi użytkownika, aby na ich podstawie udzielić adekwatnej odpowiedzi lub uruchomić określone działanie, np. funkcję w programie komputerowym.
  • 53. Intencje domyślne 53 Default Welcome Intent to domyślnie skonfigurowana intencja, rozpoznaje podstawowe formy przywitania oraz posiada kilka wytrenowanych odpowiedzi. Ta intencja zostanie uruchomiona, gdy użytkownik rozpocznie interakcję z naszym botem. Default Fallback Intent to domyślnie skonfigurowana intencja, Bot uruchamia ją w sytuacji, gdy nie zrozumie zapytania lub polecenia swojego rozmówcy.
  • 54. Z czego składają się intencje? 54 Są to przykładowe wypowiedzi użytkowników. Gdy wiadomość rozmówcy przypomina jedno z wyrażeń treningowych, agent przyporządkowuje mu intencję. Nie musimy definiować każdego możliwego przykładu,bo wbudowane algorytmy uczenia maszynowego potrafią rozpoznawać wyrażenia podobne do tych bazowych. Możemy definiować akcje dla intencji. Kiedy agent rozpozna intencję, uruchomi określone działania zdefiniowane w aplikacji (np. uruchomienie lokalizatora). Parameters to najważniejsze informacje wyodrębnione z wypowiedzi użytkownika – data, adres zamieszkania, nazwa produktu - cokolwiek. Zdefiniowane odpowiedzi (tekstowe, głosowe lub wizualne) przypisane do intencji. Mogą dostarczyć informacje, być pytaniem doprecyzowującym intencje lub zakończyć rozmowę.
  • 55. Training phrases 55 Miejsce, w którym dodajemy przykładowe wypowiedzi. Lista wszystkich przykładowych wypowiedzi. Każda intencja powinna mieć swoje unikalne frazy treningowe. Unikamy sytuacji, w której dwie różne intencje mają taki samy przykład.
  • 56. Responses 56 Miejsce, w którym dodajemy przykładowe odpowiedzi. Lista wszystkich przykładowych odpowiedzi.
  • 58. Stwórz nową intencję 58 Naciśnij „CREATE INTENT”, aby stworzyć intencję.
  • 59. Checkpoint 59 Jeśli wszystko przebiegło prawidłowo, to powinna pojawić się taki ekran.
  • 60. Stwórz nazwę intencji 60 Kliknij na szary napis „Intent name”, aby włączyć kursor. Wpisz nazwę „question.one” i wciśnij „SAVE”.
  • 61. Dodaj przykłady treningowe 61 Naciśnij „ADD TRAINING PHRASES”, aby uruchomić edytor. Dodaj następujące przykłady: - O której otwieracie sklep? - Kiedy zamykacie? - Kiedy macie otwarte? - Czy mogę zrobić zakupy rano?
  • 62. Checkpoint 1/2 62 Tak powinien wyglądać efekt końcowy na tym etapie. Warto zauważyć, że DialogFlow automatycznie podkreślił słowo „rano”, które wyodrębnił jako jednostkę czasu. Warto poznać lepiej możliwości DialogFlow, aby użyć takich danych do własnych działań konwersacyjnych.
  • 63. Usuń odpowiedzi 63 Naciśnij „ADD RESPONSE”, aby uruchomić edytor. Naciśnij ikonę kosza na śmieci i usuń blok „Text Response”.
  • 64. Usuń odpowiedzi 64 Naciśnij „ADD RESPONSE”, aby uruchomić edytor. Naciśnij ikonę kosza na śmieci i usuń blok „Text Response”. Dlaczego usuwamy odpowiedzi?
  • 65. Odpowiedzi są już w Chatfuelu 65 Jako odpowiedzi wykorzystamy stworzone wcześniej bloki w Chatfuel. Czy mogę stworzyć odpowiedzi bezpośrednio w DialogFlow?
  • 66. 66 Pytanie jest zasadne, ponieważ DialogFlow posiada wewnętrzny konfigurator umożliwiający budowanie bota Messengera. Różnica tkwi w możliwościach narzędzia i jego przeznaczeniu. DialogFlow służy do budowania modeli NLP dla różnych platform, więc posiada podstawowe elementy interfejsu Messengera. Konfigurator Messengera w DialogFlow Protip Cezary Kuik Chatfuel to narzędzie dedykowane w całości nie tylko do budowy botów na Messengerze, ale też działań marketingowych z ich użyciem.
  • 67. Jak odpowiadać blokami z Chatufela? 67
  • 68. Dodaję kartę Custom Payload 68 Naciśnij „ADD RESPONSES”, aby wybrać opcję. Naciśnij „Custom Payload”, aby dodać kartę.
  • 69. Uzupełnij kartę Custom Payload 69 "Tu wpisz nazwę bloku" zamień na "Pytanie 1" Uzupełnij kartę poniższym kodem: { "redirect_to_blocks": [ "tu wpisz nazwę bloku" ] }
  • 70. Checkpoint 2/2 70 Tak powinien wyglądać efekt końcowy.
  • 71. Zadanie 4: stwórz intencje dla pozostałych bloków stworzonych w Chatfuelu
  • 72. 72 Intencja dla bloku Pytanie 2 Stwórz intencję o nazwie question.two Dodaj następujące przykłady: - Czy mogę zwrócić buty? - Ile mam czasu na zwrot? - Czy mogę reklamować towar? Uzupełnij odpowiedź kartą Custom Payload z kodem: { "redirect_to_blocks": [ "Pytanie 2" ] }
  • 73. 73 Stwórz intencję o nazwie question.three Dodaj następujące przykłady: - Ile będę czekać na pieniądze? - Kiedy zwrócicie środki? - Ile macie dni na zwrot kasy? Uzupełnij odpowiedź kartą Custom Payload z kodem: { "redirect_to_blocks": [ "Pytanie 3” ] } Intencja dla bloku Pytanie 3
  • 74. 74 Stwórz intencję o nazwie question.four Dodaj następujące przykłady: - Moje buty się zepsuły. - Odkleiła mi się podeszwa. - Gdzie mogę naprawić buty? Uzupełnij odpowiedź kartą Custom Payload z kodem: { "redirect_to_blocks": [ "Pytanie 4" ] } Intencja dla bloku Pytanie 4
  • 75. Jak połączyć Chatfuel i DialogFlow? 75
  • 77. 77 Platforma Janis.AI Janis.AI to platforma umożliwiająca integrację różnych narzędzi do tworzenia interfejsów konwersacyjnych. Ciekawe jest to, że cały proces odbywa się za pośrednictwem wewnętrznego bota(!). Platforma jest wyposażona w dodatkowe rozwiązania pozwalające na zarządzanie własnymi modelami AI, np. ich trenowanie. Jednak zgodnie z myślą przewodnią tego podręcznika, potraktujemy tylko jako rozwiązanie umożliwiające połączenie Chatfuel z DialogFlow.
  • 78. Dlaczego integracja jest kluczowa? 78 BODY (UI) MIND (UX)
  • 79. 79 W wielu przypadkach bot posiada informacje, których potrzebuje użytkownik. Problemem jest ich dostępność, bo w aplikacjach budowanych wyłącznie na Chatfuelu uzależnione to jest od ścieżki złożonej z kilku-kilkunastu kliknięć. Integracja z DialogFlow sprawia, że nawet jeśli użytkownik zignoruje ścieżkę, to bot ma szansę rozpoznać intencję użytkownika i dostarczyć treści zawarte w określonym bloku. Dzięki temu bot sprawia wrażenie inteligentnego. DialogFlow jako wyszukiwarka treści Protip Cezary Kuik
  • 81. Otwieramy stronę janis.ai 81 W prawym górnym rogu wybierz „Sign in” oraz „with Google”.
  • 82. Potwierdzenie konta Google 82 W pierwszym kroku zaloguj się do Janis z użyciem konta Google. Janis poprosi o dostęp do konta Google.
  • 83. Porozmawiaj z Janis 83 Jeśli wszystko przebiegło prawidłowo, to włączy się czat z Janis. Kliknij „Continue”.
  • 84. Dodaj bota w Janis 84 Kliknij „Add a bot”, aby dodać bota na platformie Janis.
  • 85. Podłącz moduł AI 85 Kliknij „Connect AI”, aby połączyć Janis z DialogFlow.
  • 86. Wybierz platformę 86 Kliknij „DialogFlow”, aby uzyskać dostęp do listy agentów.
  • 87. Podłącz agenta DialogFlow 87 Kliknij „Select AI Agent”, aby wybrać agenta DialogFlow.
  • 88. Podłącz Chatfuela 88 Janis zaproponuje połączenie agenta z botem w Chatfuelu. Kliknij „Continue”.
  • 89. Wybierz platformę 89 Janis zaproponuje kilka rozwiązań. Kliknij „Chatfuel”.
  • 90. Wygeneruj link 90 Janis wygeneruje unikalny link, który należy wgrać do Chatfuela.
  • 91. Wygeneruj link 91 Janis wygeneruje unikalny link, który należy wgrać do Chatfuela. Otwieramy Chatfuela
  • 92. 92 Przejdź do bloku Default Answer, a potem wybierz „trzy kropki” po lewej stronie wiadomości i opcję „Delete" Otwórz blok Default Answer Wybierz przycisk „Delete Card”, aby potwierdzić.
  • 95. 95 Uzupełnij pole kartę Przed Po W polu „SAVE ANSWER TO ATTRIBUTE” wpisz {{user input}}.
  • 98. 98 Wklej unikalny link wygenerowany w Janis Przed Po
  • 99. 99 Znajdź bezpośredni link do bota… Kliknij w link, aby porozmawiać z botem.
  • 100. 100 …lub skorzystaj z Messengera w Chatfuelu Kliknij w ikonę, aby porozmawiać z botem.
  • 101. 101 Przetestuj bota Zadaj próbne pytanie i poczekaj na odpowiedź.
  • 102. 102
  • 103. 103 Zauważ, że pytanie, które skierowałem do bota nie było wymienione jako przykład w sekcji „Training phrases” intencji odpowiadającej za rozpoznanie tego typu wypowiedzi. Dzieje się tak, ponieważ algorytmy uczenia maszynowego potrafią rozpoznawać wyrażenia podobne do tych bazowych. Warto mieć świadomość, że większość współczesnych algorytmów AI ma na celu wyszukiwanie i porządkowanie danych, aby na tej podstawie znaleźć określony wzór. W naszym przypadku DialogFlow sprawdza na ile wypowiedź użytkownika pasuje do naszych przykładów. Nie musimy definiować każdego przykładu Protip Cezary Kuik
  • 105. 105 Coś tu poszło nie tak… Bot popełnił błąd. To się będzie zdarzać. Dlaczego bot podjął taką decyzję? "Jak oddać towar?” to przykład, którego nie ma w bazie. Za to w bazie mamy przykład „Czy mogę reklamować towar?” Pytanie pokrywało się słowami z przykładem na poziomie około 30%, dlatego bot przyporządkował te intencję.
  • 106. 106 Coś tu poszło nie tak… Bot popełnił błąd. To się będzie zdarzać. Dlaczego bot podjął taką decyzję? "Jak oddać towar?” to przykład, którego nie ma w bazie. Za to w bazie mamy przykład „Czy mogę reklamować towar?” Pytanie pokrywało się słowami z przykładem na poziomie około 30%, dlatego bot przyporządkował te intencję. Jak sprawić, aby bot się uczył?
  • 107. 107 Otwórz konsolę DialogFlow Wybierz zakładkę „Training"
  • 108. 108 Panel treningowy W tym miejscu widzimy wszystkie wiadomości obsłużone przez agenta DialogFlow.
  • 109. 109 Trening agenta W tym miejscu widzimy wypowiedź użytkownika oraz przyporządkowaną intencję.
  • 110. 110 Trening agenta - pozytywne wzmocnienie Jeśli agent przyporządkował intencję prawidłowo, to wybieramy "kółko z ptaszkiem”. Potwierdzamy czynność klikając „APPROVE” i system rozpoczyna trening.
  • 111. 111 Trening agenta - modyfikacja błędnej decyzji Kliknij nazwę przyporządkowanej intencji.
  • 112. 112 Trening agenta - modyfikacja błędnej decyzji Wybierz z listy prawidłową intencję.
  • 113. 113 Trening agenta - modyfikacja błędnej decyzji Intencja zostanie zaakceptowana automatycznie. Potwierdzamy czynność klikając „APPROVE” i system rozpoczyna trening.
  • 114. 114
  • 115. 115 Dodatkowe opcje Ikona „przekreślonego kółka” przyporządkowuje wypowiedź do Defalut Fallback Intent. Ikona „kosza na śmieci” usuwa wypowiedź z bazy przykładów do nauki.
  • 116. 116 Protip Cezary Kuik Podstawy uczenia maszynowego https://www.cezarykuik.com/post/podstawy-uczenia-maszynowego Przeczytaj mój artykuł:
  • 118. 118 DialogFlow to narzędzie, z którym łatwo zacząć, ale bardzo szybko okazuje się, że jedno słowo potrafi zmienić cały sens wypowiedzi. Celem nie powinna być rozmowa jak z człowiekiem - to nie jest test Turinga. Kierujmy się tym, aby ułatwić dostęp do informacji albo skutecznie zdiagnozować potrzeby użytkownika. Im krócej i prościej, tym lepiej. Automatyzuj rzeczy nudne, a nie trudne Protip Cezary Kuik
  • 119. 119 Czasem w różny sposób mówimy o tym samym. Czasem o różnych rzeczach mówimy w ten sam sposób. Warto przed przystąpieniem do programowania bota zbadać dokładnie w jaki sposób użytkownicy rozmawiają z naszą firmą. To najlepszy, a także najtańszy sposób, aby zweryfikować czy automatyzacja obsługi klienta ma jakikolwiek sens. Im więcej krótkich i powtarzalnych schematów, tym większa szansa, że bot będzie działał efektywnie. Zbadaj jakim językiem mówią użytkownicy Protip Cezary Kuik
  • 120. 120 Panel treningowych to pokusa trenowania kolejnych intencji, które mogą zrobić wrażenie na pojedynczych użytkownikach (np. żartobliwa odpowiedź), ale nie dają żadnego efektu jakościowego w rozwoju agenta. Co więcej, im więcej różnych przykładów, tym większe ryzyko błędnego dopasowania. Przykład: stworzyłem bota do śledzenia rozwoju sytuacji z koronawirusem. Przygotowałem listę prostych pytań (skąd jest wirus, jak się przenosi). Po kilku dniach dodałem intencje rozpoznające pytania o paczki z Aliexpress oraz maseczki, ale dopiero kiedy pojawiły się kilka razy. Skup się na określonych wątkach Protip Cezary Kuik
  • 122. 122 To ustawienie zakresu swobody jaką algorytmy uczenia maszynowego mają w analizie wypowiedzi użytkowników. Zakres wynosi od 0.1 do 1. Im wyższy zakres, tym bardziej rygorystyczne warunki jakie musi spełnić wypowiedź użytkownika. Ustawienie wskaźnika na poziomie 1 w praktyce oznacza, że wiadomości powinny dokładnie takie same jak te z naszej bazy. Czym jest czułość maszyny? Protip Cezary Kuik
  • 123. 123 Otwórz konsolę DialogFlow Wybierz ikonę "koła zębatego”.
  • 125. 125 Ustaw odpowiedni wskaźnik Znajdziesz go pod „ML CLASSIFICATION THRESHOLD”.