co to jest DialogFlow

Co to jest DialogFlow? Oto narzędzie, które zmieni oblicze obsługi klienta

Przez ostatnie lata technologia nieustannie zmienia sposób, w jaki klienci komunikują się z biznesem. Zarówno międzynarodowe korporacje, jak i małe lokalne firmy stoją przed takim samym wyzwaniem, jakim jest dostępność dla klienta. Konsumenci nie lubią czekać, dlatego oczekują szybkich odpowiedzi – najlepiej natychmiastowych.

Tymczasem wśród wielu polskich firm działania są wręcz odwrotne. Infolinie są zajęte lub ograniczone czasowo, a kontakt w mediach społecznościowych (np. Messenger) jest praktycznie martwy. Wydatki na doskonalenie obsługi klienta są niewielkie, a efekty tych działań skromne. Polscy klienci odpłacają wzajemnością – nie są lojalni. Spadają generowane przez nich przychody, co paradoksalnie prowadzi do potwierdzenia przyjętej pierwotnie tezy: obsługa klienta generuje koszty – trzeba je zatem ograniczać. Czy istnieje rozwiązanie tej sytuacji? Technologia, która zmieniła nasz świat, stworzyła jedno wspaniałe i przełomowe narzędzie, które z pewnością zmieni oblicze obsługi klienta i całego biznesu – DialogFlow.

Co to jest DialogFlow?

Platforma Google’a umożliwiająca tworzenie aplikacji rozumiejących język naturalny, jakim posługują się ludzie. Zarówno tekst, jak i głos. Środowisko implementacji jest praktycznie nieograniczone, ponieważ może to być strona internetowa, aplikacja mobilna, Messenger, asystent Google’a, Alexa Amazona oraz wiele innych platform i urządzeń. Narzędzie istnieje od kilku lat, ale dopiero w tym roku udostępniono wsparcie dla języka polskiego. Wydaje się zatem, że jest to dobry moment, aby zainteresować się platformą na poważnie. W tym artykule postaram się na tyle, na ile to możliwe wyjaśnić podstawowe funkcjonalności oraz działanie samej platformy DialogFlow.

Jak działa DialogFlow?

W dużym skrócie, użytkownik tworzy Agenta, któremu dostarcza przykładowe rozmowy oraz określa ich tematy i poszczególne konteksty. Na tej podstawie algorytmy samouczące starają się zrozumieć intencje rozmówcy i udzielać jak najtrafniejszych odpowiedzi, których uczą się także na podstawie stworzonych przez nas treści. Sam proces jest oczywiście bardziej rozbudowany, ale w dalszym ciągu przystępny i przyjazny dla użytkownika. W kolejnych akapitach postaram się przybliżyć jego najważniejsze elementy. 

Czym jest agent?

Agent to moduł NLP, który potrafi zrozumieć rozległe i różnorodne niuanse ludzkiego języka oraz przetłumaczyć je na standardowe i uporządkowane treści, które są czytelne dla Twoich aplikacji czy usług internetowych. Potrafi także udzielić informacji zwrotnej w naszym języku, czyli w sposób zrozumiały dla ludzi. Łopatologiczne rzecz ujmując – agent to program, który potrafi mówić tak jak my. Oczywiście jego umiejętności są adekwatne do treningu, jaki z nim przeprowadziliśmy. Skąd jednak czerpie swoją wiedzę i umiejętności rozumienia? Wszystko dzięki mechanizmom z zakresu uczenia maszynowego takim jak Intents i Entities

Czym są Intents?

Podczas tworzenia agenta pierwszym ważnym zadaniem jest nauczenie go rozumienia tego, co komunikują nam nasi użytkownicy. Kluczową funkcją DialogFlow służącą do tego jest Intent, czyli, tłumacząc na język polski, zamiar lub intencja. To dzięki nim program może skutecznie analizować treść rozmowy i rozpoznać potrzeby drugiej strony.

Wytłumaczę to na prostym przykładzie. Załóżmy, że tworzymy agenta do obsługi klienta dla serwisu rowerowego. Na potrzeby tej sytuacji stworzymy dwie potencjalne intencje, które mogą wyrazić użytkownicy: usługi i godziny otwarcia. Dla każdej intencji należy dostarczyć przykłady tego, jak rozmówcy mogą komunikować swoje potrzeby. 


Wystarczy kilka zdań, aby DialogFlow rozpoczął trenowanie modelu uczenia maszynowego zdolnego rozpoznać nie tylko wprowadzone przez nas przykłady, ale także inne wyrażenia mające podobny sens i znaczenie. Od tej pory agent będzie się starał dopasować każdą wiadomość użytkownika do zbioru ustalonych przez nas intencji. A co się stanie dalej?

Dla każdej z intencji możemy ustalić, jak nasz agent będzie odpowiadał. Poniżej umieszczam przykładową wizualizację rozmowy z trenowanym agentem. Jak można zauważyć, aplikacja rozpoznała intencje użytkownika, mimo że użył on innych sformułowań niż podane jako przykładowe. Jest to możliwe właśnie dzięki modelom uczenia maszynowego.

sztuczna inteligencja

Poziom zaawansowania agenta zależy tylko i wyłącznie od zaangażowania twórcy. Tak jak wcześniej było to wspomniane, można zacząć od kilku przykładów, ale dążyć nawet do zbioru kilku tysięcy. Co więcej, aplikacja może rozumieć kilka języków jednocześnie. Do rozwoju modelu przyczynia się każda rozmowa z użytkownikiem, ponieważ możemy je stosować jako kolejne przykłady treningowe. Im więcej rozmów, tym inteligentniejszy agent. 

Czym są Entities?

Tym, co pozwala się skupić na dokładnych potrzebach rozmówcy jest mechanizm Entities. Jego głównym zadaniem jest identyfikowanie i wyodrębnianie najważniejszych informacji z tego, co komunikuje użytkownik. Może to być cokolwiek – data, adres zamieszkania, nazwa produktu.
Każda informacja ważna z perspektywy tego, co robisz, będzie przyporządkowana do odpowiedniej Entity, czyli jednostki. Na tym etapie proces ten może jeszcze nie być do końca zrozumiały, ale całość wyklaruje nam omawiany wcześniej przykład serwisu rowerowego.

sztuczna inteligencja w obsłudze klienta

Załóżmy, że agent dla serwisu rowerowego otrzymuje wiadomość, jak na powyższym obrazku. Po wstępnym rozpoznaniu intencji, jaką jest potrzeba naprawy jednośladu, konieczne będzie wyróżnienie najważniejszych faktów – w tym wypadku naprawa i jej preferowany termin.

DialogFlow dokonuje takiej preselekcji automatycznie. Dla większości generalnych danych takich jak: daty, nazwy miejsc, ilości wyrażone w różnych wartościach system korzysta
z wbudowanego katalogu jednostek. W tym wypadku agent rozpoznaje wyrażenie „jutro”
i zostanie ono sklasyfikowane jako jednostka daty i czasu. Oczywiście można tworzyć własne kategorie. Wystarczy wprowadzić listę słów kluczowych lub fraz, które pasują do zbioru danej koncepcji. Wyrażenie „zepsuty” zostanie rozpoznane i przydzielone do jednostki stworzonej na potrzeby rozróżnienia konkretnych usług serwisu rowerowego. Platforma DialogFlow jest w stanie przewidzieć (na bazie kolejnych doświadczeń), w którym miejscu pojawią się najbardziej znaczące wyrażenia przy jednoczesnym ignorowaniu dystraktorów (wyrażenia nieistotne dla problemu poruszanego w rozmowie).

Rodzaje jednostek

DialogFlow posiada trzy rodzaje jednostek. Postaram się wyjaśnić ich główne zastosowanie,
a także nakreślić najważniejsze różnice między nimi. 

  • System entity

Są to jednostki domyślne dla DialogFlow. Obejmują one najbardziej powszechne elementy, które można napotkać w rozmowach z ludźmi. Między innymi data i czas, liczby, wartości wyrażone w różnych jednostkach (np. waga), dane kontaktowe, geograficzne, a także imiona i nazwiska. Ten typ jednostek poznamy po nazwie @sys.nazwa_jednostki.
Baza jest bardzo rozbudowana, a pełna lista znajduje się w dokumentacji samej platformy. 

  • Developer entity

Są to jednostki, które można tworzyć samodzielnie i adekwatnie do swoich potrzeb. Bazują na podstawie listy słów kluczowych lub fraz, które pasują do zbioru danej koncepcji. Im bardziej rozbudowana lista, tym większa zdolność agenta do rozpoznawania potrzeb naszych rozmówców. Co więcej, możemy uzupełnić taki zbiór o synonimy poszczególnych wyrażeń, aby jeszcze bardziej wzbogacić zdolność rozumienia naszej aplikacji. Omawiany jako przykład serwis rowerowy mógłby stworzyć jednostkę @bike-type i umieścić w niej wszystkie wyrażenia określające rodzaj roweru (rower, jednoślad, bicykl, damka, BMX).

Ciekawą funkcją jest „automated expansion”. Umożliwia ona DialogFlow identyfikację słów lub wyrażeń niewyróżnionych na liście, a które pasują do naszej jednostki. 

  • User entity

To szczególne jednostki tworzone na potrzeby konkretnych rozmów z użytkownikami. Pozwalają one na wykorzystywanie danych istniejących lub dostępnych przez krótki czas. Może to być na przykład lista ostatnich zamówień czy aktualnych promocji. 

DialogFlow pozwala ustawić listę wymaganych danych, niezbędnych do wykonania intencji.  Agent będzie mógł umówić wizytę tylko wtedy, gdy uzyska wszystkie trzy jednostki dotyczące rodzaju usługi, daty i czasu. Zatem jeśli serwis rowerowy otrzyma wiadomość o treści: „Chcę umówić wizytę jutro o 15:00”, to agent dopyta rozmówcę o rodzaj naprawy, jaka jest dokładnie potrzebna. Oczywiście treść takich pytań modyfikujemy w konsoli DialogFlow, aby uzyskać jak najbardziej naturalny efekt. Jestem przekonany, że samo modelowanie takich prostych rozmów jest w stanie drastycznie odciążyć obsługę klienta w różnych kanałach komunikacji. 

Kontrola dialogu

Wiemy już, że Intents pozwalają agentowi zrozumieć motywację konkretnego użytkownika, natomiast Entities umożliwiają wyodrębnienie dokładnych informacji na temat potrzeb naszego rozmówcy. Mając te dwie składowe, możemy przejść do zadania głównego, jakim jest tworzenie doświadczenia swobodnej rozmowy z naszym agentem. 

Dialog jest procesem, w którym panuje dowolność sformułowań i niezwykła wieloznaczność, stąd kluczem do sukcesu jest umiejętność znalezienia wspólnego punktu porozumienia. Jak radzi sobie z tym DialogFlow? W pierwszej kolejności powinniśmy mieć świadomość tego, że istnieją dwa główne modele rozmowy, które kształtujemy za pomocą platformy. 

Rozmowa linearna

Ten model wykorzystywany jest w procesie zbierania informacji niezbędnych do wykonania określonej czynności (np. rezerwacja spotkania lub złożenie zamówienia). Załóżmy, że nasz serwis rowerowy otrzymuje wiadomość o treści: „Chcę wymienić hamulec jutro o 15:00”.
Mamy zatem podane informacje takie jak rodzaj usługi, datę i czas, czyli wszystko, co niezbędne, aby umówić wizytę u mechanika. Tak jednak nie będzie zawsze. Co w sytuacji, kiedy użytkownik nie dostarczy wszystkich potrzebnych informacji w pierwszej wiadomości? 

Rozmowa nielinearna

Ten model jest bliższy prawdziwej rozmowie. Istnieje kilka możliwości kierunku, w którym potoczy się dialog, a wszystko zależne jest od aktualnego toku konwersacji. Każdy komunikat rozmówcy jest interpretowany w odniesieniu do jego poprzednich wiadomości. Agent jest
w stanie rozróżniać jakiego punktu rozmowy dotyczy określona wiadomość użytkownika. W tym celu platforma wykorzystuje koncept kontekstu. Jego rodzaje definiujemy samodzielnie, lecz tego mechanizmu w tym artykule celowo nie omówię. Specyfika tego procesu jest na tyle obszerna, że wymaga osobnego poradnika. Dodatkowo przekracza ona poziom, jaki staramy się utrzymać w tym tekście, a jest nim przede wszystkim wstęp do podstawowych funkcjonalności platformy DialogFlow. 

Dlaczego jest to przełom?

DialogFlow dla rozwoju rynku sztucznej inteligencji jest tym, czym Apple II był dla branży komputerów osobistych. Wszystko dlatego, że teraz każdy w zaciszu własnego domu może trenować własny algorytm SI rozumiejący spontaniczną mowę ludzką w tekście i mowie.
Teraz także w języku polskim, bez umiejętności pisania kodu. Zatem na co jeszcze czekasz?

 

Powyższy tekst zawiera prywatne poglądy Autora. Niekoniecznie muszą odzwierciedlać one poglądy Redakcji.

Cezary Kuik

Content Creative McCann Worldgroup. Członek zespołu realizującego projekt pierwszych botów e-commerce w Polsce m.in. dla Allegro i Orange. Współtwórca grupy Messenger Marketing.


  • Redakcja

    Przy okazji przypominamy o nowej grupie na Facebooku, w której odpowiadamy na szereg pytań. Dołącz do Twoja firma w Internecie i Social Media.

    Subskrybuj Sprawny.Marketing na Messengerze, dostaniesz informację o każdym nowym artykule lub materiale video

    Wielkimi krokami zbliża się także dwudniowa konferencja I ♥ Marketing & Social Media oraz organizowane przez nas 24 szkolenia z zakresu marketingu.

    Możesz też zamówić prenumeratę drukowanego magazynu sprawny.marketing

  • Dodaj komentarz

    Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *