W poprzednim wpisie stworzyliśmy nowego agenta, który będzie pełnił rolę chatbota pomagającego w nauce słówek angielskich. Ale czym właściwie jest agent w Dialogflow? Na to pytanie spróbuję odpowiedzieć dzisiaj, a przy okazji opiszę jak działa i z jakich elementów jest zbudowany Dialogflow.
Agent
Agent to wyuczony model, który pozwala przekształcić wiadomość od użytkownika, w odpowiednią strukturę danych, a ta z kolei pozwala wygenerować odpowiedź do użytkownika. Każdy agent składa się z jednego lub wielu „Intent” (tak jak napisałem we wcześniejszym artykule – nie będę tłumaczył tego typu nazw używanych w systemie), a każdy z nich mapuje wiadomość wejściową na wyjściową. Można więc powiedzieć, że każdy Intent to forma reguły jaką definiujemy w modelu. Procesowanie wiadomości od użytkownika polega na znalezieniu reguły, która najlepiej pasuje do wprowadzonej wiadomości, a następnie wygenerowanie wiadomości zwrotnej zgodnie z zawartą w regule logiką.
Intent
Wspomniany przeze mnie wcześniej „Intent” to w wolnym tłumaczeniu – zamiar, czyli definicja intencji użytkownika. Składa się ona z 3 podstawowych elementów:
- Training phrases (frazy treningowe)
- Action and Parameters (akcje i parametry)
- Responses (odpowiedzi)
Training phrases, to zbiór fraz których użytkownik może użyć, jeśli ma on na myśli definiowany „zamiar”. Dialogflow rozszerza podane przez nas frazy i tworzy podobne automatycznie, budując na ich podstawie model, który będzie później dopasowywany. Wraz z rozwojem modelu rośnie ilość fraz wpisywanych i tworzonych automatycznie, co przekłada się na dokładność dopasowania. Przykładami takich fraz, których celem jest pytanie o pogodę, mogą być:
- Jaka będzie dziś pogoda?
- Jaka będzie pogoda za tydzień
- itp.
Action and Parameters pozwalają na wyciąganie z wpisywanych fraz tzw. entities (encji), czyli parametrów wypowiedzi. Mogą być one używane następnie, aby wygenerować dokładną odpowiedź na zadane pytanie. Przykładami takich entities z powyższego przykładu mogą być:
- dziś
- za tydzień
Responses definiują odpowiedzi jakie otrzyma użytkownik, jeśli system dopasuje zdefiniowany intent. Mogą być one w postaci tekstu, głosu, obrazu lub jako specyficzne elementy, zależne od integrowanej platformy (np. galerie w Messengerze)
Jak to działa?

Skoro wiemy już co to jest Agent i Intent, czas opisać w skrócie jak wygląda procesowanie wiadomości w Dialogflow:
- Po otrzymaniu wiadomości od użytkownika Agent przeszukuje zbiór zdefiniowanych Intent w poszukiwaniu najbardziej pasującego. Aby dopasować odpowiedni Intent korzysta z wyuczonego na podstawie podanych fraz treningowych modelu.
- Po znalezieniu najbardziej pasującego elementu, Agent znajduje w wiadomości użytkownika zdefiniowane Parameters (kolor, rozmiar, data itp.)
- Na końcu, na podstawie wszystkich wyciągniętych informacji, DIalogflow generuje odpowiedź/odpowiedzi (generowanie może polegać na odpytaniu zewnętrznego API)
Artykuł był budowany na bazie oficjalnej dokumentacji Dialogflow, którą znajdziecie TUTAJ. (zachęcam zresztą do zapoznania się z nią)
Komentarz