MARGO

Aktualności

Krótkie wprowadzenie do chatbotów tworzonych za pomocą Dialogflow

Dowiedz się, jak działają, i jak je z łatwością tworzyć za pomocą aplikacji Dialogflow

Autor: Hao Chen Data Scientist

07/05/2018

Ostatnio pracuję nad chatbotem, korzystając z aplikacji Google Dialogflow. Niniejszy artykuł zawiera kilka moich uwag dotyczących Dialogflow i chatbotów. Opisuję w nim też sposób, jak stworzyć prostego chatbota za pomocą platformy Dialogflow.

 

Co to jest Dialogflow?

Jak podaje Wikipedia:

Dialogflow (wcześniej Api.ai, Speaktoit) to należąca do Google firma tworząca technologie interakcji człowiek–komputer oparte na rozmowach w języku naturalnym. Firma (jeszcze jako Speaktoit) zyskała rozgłos dzięki opracowaniu Asystenta — wirtualnego pomocnika w smartfonach z systemami Android, iOS i Windows, który wykonuje zadania i odpowiada na pytania użytkowników w języku naturalnym. Speaktoit stworzył również silnik przetwarzający język naturalny, który wykorzystuje kontekst rozmowy, np. historię konwersacji, lokalizację czy preferencje użytkownika.

DialogFlow to całkiem niezłe narzędzie, żeby nauczyć się, jak tworzyć chatboty, które później można zintegrować z witrynami czy aplikacjami.

 

Dlaczego warto wybrać Dialogflow?

Jest kilka powodów:

  1. CenaJeśli chcesz się po prostu nauczyć, jak stworzyć chatbota, lub nie masz wielu użytkowników, to wersja standardowa jest oferowana całkowicie bezpłatnie. Jak widać poniżej

  1. Łatwa integracja z wieloma kanałami

Dialogflos zapewnia integrację jednym kliknięciem z najbardziej popularnymi komunikatorami, np. Facebook Messenger, Slack, Twitter, Kik, Line, Skype, Telegram, Twilio czy Viber, a nawet z niektórymi asystentami głosowymi, jak Google Assistant, Amazon Alexa i Microsoft Cortana.

  1. Przetwarzanie języka naturalnego (ang. natural language processing, NLP)

W porównaniu do niektórych platform, które opierają działanie na wstępnie zdefiniowanych pytaniach (jak np. Chatfuel), Dialogflow może zapewnić lepsze doświadczenia użytkownika dzięki NLP. Agenci DialogFlow całkiem nieźle sobie z nim radzą.

 

Jak działają chatboty?

Oto poszczególne kroki:

  1. Użytkownik wysyła wiadomość tekstową/głosową do urządzenia lub aplikacji.
  2. Aplikacja/urządzenie przesyła wiadomość do Dialogflow.
  3. Wiadomość jest kategoryzowana i dopasowywana do odpowiedniej intencji (intencje są definiowane ręcznie przez twórców w Dialogflow).
  4. Określane są kolejne działania dla każdej intencji w realizacji (webhook).
  5. Kiedy Dialogflow znajdzie daną intencję, element webhook wykorzystuje zewnętrzne interfejsy API, aby znaleźć odpowiedź w zewnętrznych bazach danych.
  6. Zewnętrzne bazy danych odsyłają żądane informacje do elementu webhook.
  7. Webhook wysyła sformatowaną odpowiedź do intencji.
  8. Intencja generuje użyteczne dane zgodnie z różnymi kanałami.
  9. Użyteczne dane wysyłane są do wyjściowych aplikacji/urządzeń.
  10. Użytkownik otrzymuje odpowiedź tekstową/obrazkową/głosową.

 

Jak stworzyć pierwszego chatbota?

Utwórz agenta

  1. Jeśli jeszcze nie masz konta Dialogflow, utwórz je. Jeśli masz konto, zaloguj się.
  2. Kliknij opcję Utwórz agentaw panelu nawigacyjnym po lewej stronie i wypełnij pola.
  3. Podaj nazwę i ustaw języka agenta. Następnie kliknij przycisk Zapisz.

 

Utwórz intencję

Intencja łączy to, co mówi użytkownik, z tym co, robi agent. Pierwsza intencja będzie dotyczyć pytania użytkownika o pogodę.

Aby utworzyć intencję:

  1. Kliknij ikonę plusa obok intencji. Zauważysz, że w agencie są już jakieś domyślne intencje. Na razie je zostaw.
  2. Wpisz nazwę intencji. Nazwa może być dowolna, ale powinna być intuicyjna i oznaczać to, co intencja ma za zadanie osiągnąć.
  3. W sekcji Frazy szkoleniowe wpisz przykłady tego, o co użytkownik mógłby zapytać. Ponieważ tworzysz agenta pogodowego, to warto zawrzeć pytania o lokalizacje i różne godziny. Im więcej przykładów podasz, tym więcej stworzysz sposobów zadania przez użytkowników pytań, które zostaną zrozumiane przez agenta. Wpisz takie przykłady:
    • Jaka jest pogoda
    • Jaka będzie pogoda
    • Prognoza pogody
    • Jaka jest dzisiaj pogoda
    • Pogoda na jutro
    • Prognoza pogody na jutro w San Francisco

W ostatnich trzech przykładach zauważysz, że słowa „dzisiaj” i „jutro” są podświetlone jednym kolorem, a „San Francisco” podświetlone jest drugim. To oznacza, że zostały one odnotowane jako parametry przypisane do istniejących obiektów systemowych: data i miasto. Te parametry daty i miasta pozwalają Dialogflow na zrozumienie innych dat i miast, które użytkownik może wypowiedzieć, a nie tylko „dzisiaj”, „jutro” i „San Francisco”.

  1. Kliknij opcję Zapisz

 

Dodaj odpowiedź

Teraz dodasz podstawowe odpowiedzi do intencji, aby uniknąć niezręcznej ciszy po zadanym pytaniu. Jak już wspominaliśmy, odpowiedzi dodane do intencji nie wykorzystują danych zewnętrznych. Będą one dotyczyły tylko tych informacji, które agent zebrał na podstawie żądania użytkownika.

Jeśli jesteś na innej stronie, wróć do intencji „pogoda”, klikając Intencje, a następnie intencję „pogoda”.

  1. Dodaj wiersze tekstu w sekcji Odpowiedź analogicznie jak w przypadku Fraz treningowych:
    • Przykro mi, nie wiem, jaka jest pogoda
    • Nie jestem pewny, jaka będzie pogoda w dniu $data
    • Nie wiem, jaka będzie pogoda w dniu $dataw $geo-miasto, ale mam nadzieję, że będzie piękna!

Można zauważyć, że dwie ostatnie odpowiedzi odnoszą się do obiektu za pomocą elementów zastępczych wartości. W miejsce $data zostanie wstawiona data z zapytania, a miejsce $geo-miasto zostanie wstawione miasto.

Odpowiadając, agent bierze pod uwagę zgromadzone wartości parametrów i wykorzystuje odpowiedź, która zawiera te wartości. Na przykład jeśli zapytanie zawiera jedynie datę, agent skorzysta z drugiej odpowiedzi z listy.

  1. Kliknij opcję Zapisz

 

Przetestuj

W konsoli po prawej stronie wpisz zapytanie. Powinna być ona nieco inna od przykładów podanych przez Ciebie w sekcji Fraz treningowych. To może być coś w stylu „Jaką jutro będziemy mieć pogodę w Denver”. Po wpisaniu zapytaniu kliknij „Enter/Return”.

 

  • Odpowiedź — pokazuje stosowną odpowiedź z podanych
    • Wybrana odpowiedź oparta jest na podanych przez Ciebie w zapytaniu wartościach (np. podając tylko datę, agent powinien odpowiedzieć za pomocą opcji zawierającej jedynie datę).
  • Intencja — pogoda ponownie pomyślnym wyzwalaczem intencji.
  • Parametr — podane przez Ciebie w zapytaniu wartości, powinny zostać odzwierciedlone w stosownej odpowiedzi.

Podstawowa realizacja (webhook)

W zależności od potrzeb możesz zdefiniować niestandardowy element webhook, aby korzystał z zewnętrznych interfejsów API i uzyskiwał dodatkowe dane z zewnętrznych baz danych. Webhook może być napisany w języku Python lub Node.js. Może być przechowywany na serwerach w chmurze, np. Heroku, AWS i Google Cloud Platform, a także na serwerach lokalnych. Wybierz swój ulubiony język programowania i serwer: https://dialogflow.com/docs/getting-started/basic-fulfillment-conversation

 

Integracja z kanałami

Dialogflos zapewnia integrację jednym kliknięciem z najbardziej popularnymi komunikatorami i asystentami głosowymi. Integrację można przeprowadzić w kilka sekund. Możesz wybrać ulubione kanały i postępować zgodnie z oficjalnym przewodnikiem po integracji, który znajdziesz na stronie internetowej Dialogflow. Zobacz: https://dialogflow.com/docs/integrations/

 

Podsumowanie

Dzięki temu artykułowi wiesz już, co to jest Dialogflow, znasz niektóre z zalet tej platformy i wiesz, jak działają chatboty w ramach Dialogflow i jak utworzyć swojego pierwszego chatbota. Dziękuję za jego przeczytanie. W przypadku jakichkolwiek pytań, skontaktuj się ze mną.

 

Materiały referencyjne

 

  1. Dialogflow Quick Starts
  2. DialogFlow(formerly API.AI): Let’s create a Movie ChatBot in minutes

 


Autor: Hao Chen Data Scientist
Data Science
Machine Learning
Aktualności

Tutorial: Podstawy stosowania Pythona do prognozowania szeregów czasowych

W tutorialu wprowadzamy kilka podstawowych pojęć z zakresu szeregów czasowych, aby umożliwić „szybką” predykcję przyszłych wartości w odniesieniu do danych czasowych.

07/11/2018 Więcej 
Aktualności

Utworzenie scentralizowanej platformy zarządzania logami za pomocą pakietu narzędzi Elastic

Ilość danych generowanych przez nasze systemy i aplikacje stale rośnie, co powoduje wzrost liczby centrów danych i systemów przechowywania danych. W obliczu tej eksplozji danych i inwestycji w wiedzę fachową i zasoby, decydenci potrzebują uzasadnionych analiz i zaawansowanych tabel, umożliwiających im zarządzanie swoimi systemami i klientami.

04/06/2018 Więcej 
Aktualności

Data Science w świecie handlu detalicznego: 10 najważniejszych przypadków wykorzystania

Data Science w coraz większym stopniu wpływa na modele biznesowe we wszystkich gałęziach przemysłu, zwłaszcza w sprzedaży detalicznej. Według IBM, 62% detalistów deklaruje, że wykorzystanie technik związanych z Big Data daje im poważną przewagę konkurencyjną. Dzięki data sicence możemy sprawdzić, czego potrzebuje klient i w jakim momencie jest obecnie na wyciągnięcie ręki. Aby to zrobić, musimy jedynie posiadać odpowiednie narzędzia i wdrożyć dobre procedury związane z ich używaniem. W niniejszym artykule przedstawiamy 10 najważniejszych zastosowań data science w handlu detalicznym.

01/06/2018 Więcej 
Aktualności

Zegary Lamporta i wzorzec Idempotent Producer (Kafka)

Znacie zegary Lamporta? Podczas konferencji Devoxx France 2018 była okazja, w trakcie bardzo interesującej prezentacji DuyHai DOAN, do poznania lub ponownego poznania tego algorytmu, sformalizowanego przez Lesliego Lamporta w 1978 r., częściej niż kiedykolwiek używanego dzisiaj w dziedzinie systemów rozproszonych, który w szczególności skłonił twórców Apache Kafka do wprowadzenia wzorca Idempotent Producer.

25/05/2018 Więcej 
Aktualności

Salon Big Data 2018: co warto zapamiętać

Zgodnie z wynikami ankiety przeprowadzonej przez IDC, wartość obrotów na rynku Big Data powinna wynieść 203 mld dolarów już w roku 2020, w porównaniu z 130,1 mld w roku 2016.

30/03/2018 Więcej 
Aktualności

Łagodne wprowadzenie do uczenia się przez wzmacnianie (RL)

Zanim przeczytasz ten artykuł, zapraszam do wspólnej zabawy z naszym agentem o imieniu Malphago w grze Papier, kamień, nożyce w iFrame poniżej i próby sprawdzenia, czy wzmocni się podczas gry z Tobą. W pozostałej części przedstawimy podstawy uczenia się przez wzmacnianie (Reinforcement Learning -RL) z pomocą Malphago.

20/03/2018 Więcej