Działania konwersacyjne (Dialogflow)

Działania związane z rozmowami rozszerzają funkcje Asystenta Google, umożliwiając deweloperom tworzenie niestandardowych doświadczeń, czyli rozmów, z użytkownikami Asystenta. Akcja rozmowy obsługuje żądania Asystenta i zwraca odpowiedzi z komponentami dźwiękowymi i wizualnymi. Akcje konwersacyjne mogą też łączyć się z usługami zewnętrznymi w celu dodania logiki konwersacyjnej lub biznesowej przed zwróceniem odpowiedzi.

Użytkownicy mogą na przykład wywołać akcję związaną z rozmową, aby uzyskać odpowiedź od zewnętrznej usługi realizacji zamówień, gdy chcą wyszukać informacje, uzyskać spersonalizowaną rekomendację lub zrealizować transakcje związane z płatnościami cyfrowymi.

Podczas rozmowy z Asystentem Google użytkownik pyta o sesję konferencji i otrzymuje na nią odpowiedź.
Rysunek 1. Przykład akcji dotyczącej rozmowy

Przypadki użycia

Akcje konwersacyjne sprawdzają się najlepiej w prostych przypadkach użycia, które uzupełniają inne doświadczenia. Dobre akcje konwersacyjne często dzielą się na te ogólne kategorie:

  • Na które pytania można łatwo odpowiedzieć. Działania, które można wykonywać na podstawie znanych Ci danych, takich jak data i godzina, np. rezerwowanie lotu.
  • Szybkie, ale niezwykle przydatne działania. Takie powiadomienia zazwyczaj zapewniają użytkownikom natychmiastowe korzyści, gdy poświęcają niewiele czasu na grę, np. mogą dowiedzieć się, kiedy gra ich ulubiona drużyna sportowa.
  • Działania, które z natury są lepiej dostosowane do nagrań głosowych. Zwykle są to rzeczy, które chcesz robić bez użycia rąk, np. ćwiczenia jogi lub lekkie ćwiczenia.

Jak działają akcje konwersacyjne

W odróżnieniu od tradycyjnych aplikacji mobilnych i komputerowych, które wykorzystują paradygmaty komputerowe, użytkownicy wchodzą w interakcję z akcjami Asystenta poprzez naturalnie brzmiące rozmowy w obie strony. Akcje konwersacyjne rozpoczynają się po wywołaniu przez użytkownika i kontynuują, dopóki użytkownik nie zdecyduje się zakończyć rozmowy (przy użyciu zdefiniowanych wcześniej wyrażeń) lub akcja związana z rozmową oznacza koniec rozmowy.

Informacje wprowadzone przez użytkownika podczas rozmowy są przekształcane przez Asystenta z mowy na tekst i przekształcane w żądania JSON na potrzeby przetwarzania języka naturalnego. Żądania te są wysyłane do tzw. realizacji rozmowy.

Realizacja rozmowy analizuje zapytanie użytkownika w uporządkowane dane, przetwarza je i zwraca Asystentowi odpowiedź JSON webhooka. Następnie Asystent przetworzy Twoją odpowiedź i wyświetli ją użytkownikowi.

Przeprowadzenie rozmowy może być reprezentowane przez dane wejściowe żądania JSON i wyjściową odpowiedź JSON webhooka.
Rysunek 2. Realizacją rozmowy jest system plików JSON w JSON

Stworzenie własnej usługi przetwarzania języka naturalnego może być nie lada wyzwaniem, dlatego udostępniamy Dialogflow jako sposób na ich zastosowanie. Dla programistów, którzy nie mogą korzystać z Dialogflow, oferujemy też jako opcję zapasową pakiet Actions SDK z oddzielną, ale powiązaną ścieżką programistyczną.

Gdy skonfigurujesz agenta w Dialogflow, wykonywanie rozmów zostanie rozszerzone o funkcje Dialogflow, w tym możliwość korzystania z realizacji Dialogflow. Takie podejście pozwala odizolować realizację rozmowy od innych usług, których możesz potrzebować, aby zapewnić użytkownikom pożądany efekt.

Actions on Google analizuje wypowiedzi użytkowników i wysyła żądanie do Dialogflow. Dialogflow dopasowuje intencję i wyodrębnia parametry, aby wysłać je do odpowiedniej realizacji Dialogflow. Realizacja
 wysyła odpowiedź do Actions on Google, która renderuje odpowiedź w Asystencie.
Rysunek 3. Realizacja rozmowy przy użyciu Dialogflow

Tworzenie akcji dotyczącej rozmowy

Większość działań związanych z rozmową to projektowanie rozmowy i realizowanie jej realizacji. Potraktuj rozmowę jak interfejs Twojej akcji dotyczącej rozmów. Musisz zastanowić się, jak użytkownicy wywołują projekt w Actions, jakie słowa mogą wypowiadać w trakcie rozmowy oraz jak ten projekt na nie reaguje.

W projekcie Actions podajesz metadane potrzebne do publikowania projektu i określasz metodę realizacji rozmowy. Deweloperzy korzystający z Dialogflow wiążą swojego agenta Dialogflow z projektem, a następnie dokonują realizacji za pomocą Dialogflow. W przypadku deweloperów korzystających z pakietu SDK Actions tworzenie realizacji rozmowy wymaga kodowania i wdrażania w formacie webhooka rozmowy.

Podczas projektowania rozmowy zalecamy stosowanie naszych procesów i zasad projektowania. Interfejsy konwersacyjne to wciąż stosunkowo nowa technologia, a poznawanie sprawdzonych metod pozwala zaoszczędzić czas w przyszłości.

Realizacja przy użyciu Dialogflow

Podczas integracji z agentem Dialogflow obsługuje on NLU do obsługi zapytań użytkowników w ramach akcji dotyczącej rozmowy. W trakcie tego kroku agent Dialogflow wykona za Ciebie te czynności:

  1. Analizuje każde przychodzące żądanie od Asystenta na podstawie podanych przez Ciebie wyrażeń szkoleniowych i kontekstu rozmowy.
  2. Dopasowuje każde żądanie do intencji Dialogflow (nazywanej też zdarzeniem).
  3. Wyodrębnia parametry do encji Dialogflow.

Agent Dialogflow może następnie wywołać własną realizację (wdrożoną jako webhooka), by wykonać pewne działania, takie jak wywołanie interfejsu API REST lub innej usługi backendu, która generuje odpowiedź zwrotną do Asystenta. Ten webhook jest nazywany też realizacją Dialogflow i wykorzystuje format webhooka Dialogflow.

Dialogflow akceptuje wypowiedzi użytkowników na potrzeby dopasowywania intencji i udostępnia wyodrębnione parametry realizacji Dialogflow. Realizacja zwraca odpowiedź użytkownikowi.
Rysunek 4. Agent Dialogflow analizuje zapytanie użytkownika w uporządkowane dane na potrzeby realizacji Dialogflow

Realizacja rozmów podczas korzystania z Dialogflow obejmuje przede wszystkim opracowanie webhooka realizacji Dialogflow. W dokumentacji Actions on Google znajdziesz materiały, które pomogą Ci zaprojektować, utworzyć i przetestować webhooka realizacji Dialogflow. Zasoby te obejmują przede wszystkim bibliotekę klienta Node.js i bibliotekę klienta w języku Java.

Podczas tworzenia przy użyciu Dialogflow użyjesz konsoli Dialogflow do tworzenia intencji, encji i wyrażeń treningowych Dialogflow.

Ogólne informacje o Dialogflow znajdziesz w artykule o integracji Actions on Google w dokumentacji Dialogflow.

Realizacja za pomocą pakietu Actions SDK

Realizacja rozmów za pomocą pakietu SDK Actions polega głównie na utworzeniu i wdrożeniu pakietu Action. Pakiety działań są tworzone w formacie ActionPackage i używają formatu webhooka rozmowy. Pakiet akcji zawiera wszystkie akcje dla danego projektu Actions.

Asystent dostarcza użytkownikom zapytania, które umożliwiają realizację rozmowy, za pomocą intencji Actions on Google. W przypadku każdej intencji webhook swojej realizacji musi przeanalizować intencję, przetworzyć ją i zwrócić do Asystenta odpowiedź JSON w przypadku użytkownika.

Odpowiedzi

Tworząc akcję dla Asystenta, projektujesz rozmowy na różne urządzenia, np. do rozmów głosowych w przypadku głośników aktywowanych głosem lub do rozmów wizualnych na platformie obsługiwanej przez Asystenta. Dzięki tej metodzie użytkownicy mogą sprawniej wykonywać zadania za pomocą głosu lub obrazu.

Podczas tworzenia realizacji zamówienia możesz wybierać spośród różnych atrakcyjnych typów odpowiedzi, które Asystent może przedstawić użytkownikom. Mogą to być dymki czatu zawierające prosty tekst, odpowiedzi na multimedia, karuzele, a nawet kod HTML z interaktywnym tekstem.

Dalsze kroki

Wykonaj ćwiczenie z programowania dla Asystenta Google (poziom 1), w którym znajdziesz szczegółowe instrukcje rozpoczynania tworzenia pierwszej akcji dotyczącej rozmów.

Następnie możesz skorzystać z naszych przewodników dotyczących tworzenia własnej realizacji rozmów za pomocą Dialogflow lub za pomocą pakietu SDK Actions. Możesz też skorzystać z tych dodatkowych materiałów dotyczących tworzenia akcji dotyczących rozmów: