1. Przegląd
Platforma deweloperska Asystenta Google umożliwia tworzenie oprogramowania rozszerzającego funkcjonalność Asystenta Google, wirtualnego asystenta osobistego, na ponad miliardzie urządzeń, w tym na inteligentnych głośnikach, telefonach, samochodach, telewizorach, słuchawkach i innych. Użytkownicy rozmawiają z Asystentem, aby wykonywać różne czynności, np. kupować produkty spożywcze lub zamawiać przejazdy. Jako deweloper możesz używać platformy deweloperskiej Asystenta, aby łatwo tworzyć i zarządzać atrakcyjnymi i skutecznymi interakcjami głosowymi między użytkownikami a własną usługą realizacji zamówień.
Ten moduł obejmuje koncepcje na poziomie średniozaawansowanym dotyczące tworzenia aplikacji na Asystenta Google i bazuje na akcji utworzonej w module 1. Zdecydowanie zalecamy ukończenie ćwiczenia z poziomu 1 przed rozpoczęciem tego ćwiczenia.
Działanie, które utworzysz w tym samouczku, będzie przepowiadać użytkownikom przyszłość w ich wyprawie do mitycznej krainy Gryffinberg na podstawie wybranej przez nich pomocy.
Co utworzysz
W tym ćwiczeniu z programowania utworzysz zaawansowane działanie konwersacyjne z tymi funkcjami:
- Zbiera dane od użytkownika i w zależności od ich wartości modyfikuje podpowiedzi w konwersacji.
- odpowiada pytaniami uzupełniającymi, aby kontynuować rozmowę;
- Tworzy pętlę gry, dzięki czemu użytkownik może ponownie wejść w interakcję z Action po otrzymaniu wróżby.
Zanim zaczniesz tworzyć akcję, możesz wypróbować ją na żywo na urządzeniu z Asystentem Google, mówiąc „OK Google, porozmawiaj z Wróżbą i Fortuną”. Domyślna ścieżka działania w przypadku powracającego użytkownika wygląda tak:
Czego się nauczysz
- Jak używać slotów do zbierania danych od użytkowników
- Jak używać warunków, aby dodać logikę do sceny
- Jak dodać pętlę gry
- Jak dodać ścieżkę wsparcia
Czego potrzebujesz
Wymagania wstępne dotyczące tego laboratorium obejmują:
- przeglądarka internetowa, np. Google Chrome;
- ukończony projekt akcji poziomu 1 w codelabs ( Tworzenie akcji dla Asystenta Google za pomocą narzędzia Actions Builder – poziom 1);
Aby zrozumieć kod realizacji w tych ćwiczeniach z programowania, zdecydowanie zalecamy znajomość JavaScript (ES6), choć nie jest to wymagane.
2. Kontynuowanie tworzenia interfejsu konwersacyjnego
W pierwszych ćwiczeniach z programowania utworzyliśmy prostą akcję do prowadzenia konwersacji z jedną sceną Start
.
W tym ćwiczeniu z programowania rozszerzysz rozmowę z działaniem. W kolejnych sekcjach skonfigurujesz działanie w taki sposób, aby:
- Przejście do nowej sceny
Fortune
, gdy użytkownik chce poznać swoją przyszłość - Zapytaj użytkownika, z jakiej pomocy chce skorzystać podczas podróży.
- Wyświetlanie spersonalizowanych wróżb na podstawie wyboru użytkownika
Tworzenie sceny Fortune
W tej sekcji tworzysz Fortune
i określasz, jak użytkownik przechodzi do niej podczas rozmowy.
Aby utworzyć nową scenę o nazwie Fortune
, wykonaj te czynności:
- Otwórz projekt czynności na poziomie 1 w codelabs.
- Na pasku nawigacyjnym kliknij Tworzenie.
- W sekcji Sceny kliknij scenę Rozpocznij.
- Kliknij intencję tak (pole Gdy zostanie dopasowana odpowiedź „tak”), aby otworzyć opcje.
- Kliknij Wyślij prompty, aby usunąć prompta.
- W sekcji Przejście kliknij menu, a następnie kliknij pole tekstowe i wpisz
Fortune
. - Kliknij Dodaj. Spowoduje to utworzenie nowej sceny o nazwie
Fortune
. Dodaje też przejście ze scenyStart
do scenyFortune
, gdy użytkownik chce poznać swoją przyszłość.
Określ logikę rozmowy dla sceny Fortune
W tym ćwiczeniu w Codelabs skonfigurujesz scenę Fortune
, aby zadać użytkownikowi pytanie: „Co wybierasz, aby pomóc Ci w wyprawie: smoka, tłumacz czy kompas?”. Aby zebrać od użytkownika niezbędne informacje przed kontynuowaniem, możesz użyć funkcji wypełniania slotów.
Twoja akcja podaje wróżby dla 3 pomocników: smoka, tłumacza i kompasu. Aby skonfigurować działanie tak, aby rozpoznawało te 3 opcje w danych wejściowych użytkownika, musisz utworzyć nowy typ.
Podczas wypełniania slotów w scenie możesz używać typów, aby określić informacje, których oczekujesz od użytkownika. Gdy silnik NLU wykryje w danych wejściowych użytkownika dopasowanie do gniazda, wyodrębnia je jako parametr wpisany, dzięki czemu możesz używać go w scenie.
Tworzenie typu available_options
W tej sekcji utworzysz nowy typ o nazwie available_options
, który określa 3 opcje, jakie użytkownicy mogą wybrać w odpowiedzi na prompt (dragon, translator i compass). Możesz też zdefiniować kilka synonimów tych opcji na wypadek, gdyby użytkownik powiedział coś podobnego. W dalszej części dodasz do slotu typ available_options
, aby określić, że chcesz uzyskać wybór użytkownika.
Aby utworzyć typ available_options
, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Typy.
- Kliknij + (znak plusa), wpisz
available_options
i naciśnijEnter
. - Kliknij
available_options
, aby otworzyć opcje.
Typy są konfigurowane jako pary klucz-wartość, gdzie klucz to nazwa typu, a wartości to synonimy tego klucza. Gdy zdefiniujesz klucz, zostanie on automatycznie dodany jako wartość.
Aby dodać 3 opcje, które użytkownik może wybrać, wykonaj te czynności:
- Przewiń do sekcji Dodaj wpisy.
- W polu Nowy wpis wpisz
dragon
i naciśnijEnter
. Spowoduje to utworzenie kluczadragon
. - Wpisz
hydra
w polu Dodaj wartości i naciśnijEnter
, aby dodać je jako wartość (synonim). Następnie powtórz ten krok w przypadku wartościlizard
. - Dodaj pozostałe klucze i odpowiednie wartości:
translator | translator
,communicator
,machine
,decoder
,translate
compass | compass
,direction
,guide
- Kliknij Zapisz.
Działanie rozumie teraz, że available_options
to smok, tłumacz i kompas, a także rozpoznaje kilka odpowiednich synonimów.
Konfigurowanie wypełniania slotów
Następnie musisz skonfigurować wypełnianie slotów w Fortune
scenie. Aby skonfigurować logikę wypełniania slotów, wykonaj te czynności:
- Na pasku nawigacyjnym w sekcji Sceny kliknij Fortune (Fortuna).
- W scenie
Fortune
kliknij + (znak plusa) w sekcji Wypełnianie slotów. - W polu Wpisz nazwę slota dodaj
chosenOptions
jako nazwę slota. - Na liście Wybierz typ wybierz
available_options
jako typ miejsca. - Zaznacz pole wyboru Ten slot jest wymagany.
- Kliknij Wyślij prompty i dodaj te wiadomości oraz sugestie:
candidates:
- first_simple:
variants:
- speech: >-
What do you choose to help you on your quest, a dragon, a
translator, or a compass?
suggestions:
- title: 'Dragon'
- title: 'Translator'
- title: 'Compass'
- Kliknij Zapisz.
Do slotu został dodany typ available_options
, który informuje działanie, jakie informacje (wybór pomocy) należy zebrać od użytkownika przed kontynuowaniem. W slocie skonfigurowano też prompt, który jest dodawany do kolejki promptów, gdy użytkownik osiągnie etap wypełniania slotu w scenie.
Pamiętaj, że gdy nazwiesz boks chosenOptions
, pole Dostosuj zapisywanie wartości boksu zostanie zaktualizowane o tę samą nazwę ($session.params.chosenOptions
). Możesz uzyskać dostęp do tego parametru pod tą nazwą w Actions Builder i w realizacji za pomocą biblioteki klienta.
Konfigurowanie warunku scene.slots.status == "FINAL"
Gdy dodasz miejsce, warunek scene.slots.status == "FINAL"
zostanie automatycznie dodany do listy warunków.
Warunek scene.slots.status == "FINAL"
sprawdza, czy wypełnianie slotów zostało zakończone. Gdy wszystkie miejsca zostaną wypełnione, warunek może wywołać webhook, przejść do nowej sceny lub dodać prompty do kolejki promptów.
W tej sekcji skonfigurujesz scene.slots.status == "FINAL"
tak, aby po wypełnieniu miejsc w kolejce promptów dodawał do niej prompt.
Aby dodać ten prompt do warunku FINAL
, wykonaj te czynności:
- Kliknij
scene.slots.status == "FINAL"
, aby otworzyć okno opcji. - Kliknij Wyślij prompty i dodaj ten prompt:
candidates:
- first_simple:
variants:
- speech: You picked $session.params.chosenOptions.
- Kliknij Zapisz.
Testowanie działania w symulatorze
Na tym etapie określasz, które opcje użytkownik powinien wybrać, aby wypełnić slot. Po uzyskaniu tych informacji od użytkownika działanie powinno wyświetlić prompta odwołującego się do wybranej przez niego opcji.
Aby przetestować działanie, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Test.
- Kliknij lub wpisz
Talk to my test app
w polu Input (Dane wejściowe) i naciśnijEnter
. - Wpisz
Yes
w polu Input (Dane wejściowe) i naciśnijEnter
. (Możesz też kliknąć sugestię Tak).
- Kliknij, wpisz lub powiedz
dragon
. Powinien wyświetlić się prompt „You picked dragon.” (Wybrano smoka).
W następnej sekcji dostosujesz prompty dla każdego narzędzia, które użytkownik może wybrać.
Dostosowywanie promptów za pomocą warunków
W tej sekcji dodajesz warunki dla każdej opcji, którą użytkownik może wybrać, oraz niestandardowy prompt dla każdego warunku.
Dostosowywanie wróżby dragon
Aby zaktualizować warunek i dostosować prompt, który będzie wyświetlany, gdy użytkownik wybierze „smoka”, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Tworzenie.
- Na pasku nawigacyjnym kliknij scenę Fortune.
- Kliknij
scene.slots.status == "FINAL"
, aby otworzyć okno opcji. - Zaktualizuj warunek na:
scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
- Kliknij Wyślij prompty.
- Zaktualizuj prompt za pomocą tego tekstu w edytorze kodu:
candidates:
- first_simple:
variants:
- speech: >-
The people of Gryffinberg will be awestruck by the beauty and power
of the ancient dragon. Much to your dismay, the townspeople fall
into dispute over who will receive the honor of riding the dragon
first. You return home from your quest without everlasting glory or
a dragon.
- Kliknij Zapisz.
Teraz, gdy użytkownik powie „smok” lub coś podobnego, Twoja akcja poda wróżbę na podstawie tego wyboru. Następnie dodaj pozostałe 2 wybory.
Dostosowywanie wróżby translator
Aby dodać warunek i dostosować prompt, który będzie wyświetlany, gdy użytkownik wybierze „tłumacz”, wykonaj te czynności:
- Kliknij + (znak plusa) obok pozycji Warunek.
- Dodaj
scene.slots.status == "FINAL" && session.params.chosenOptions == "translator"
do pola else if. - Kliknij Wyślij prompty.
- W edytorze kodu dodaj ten prompt:
candidates:
- first_simple:
variants:
- speech: >-
With the help of the translator, the rival factions in Gryffinberg
are finally able to communicate with each other and resolve their
disputes. You will complete your quest to restore peace in the town.
The translator will be used on many subsequent journeys across the
earth. After its work is done, it retires honorably to a premier
location in the Gryffinberg History Museum.
- Kliknij Zapisz.
Dostosowywanie wróżby compass
Aby dodać warunek i dostosować prompt, który będzie się wyświetlać, gdy użytkownik wybierze „kompas”:
- Kliknij + (znak plusa) obok pozycji Warunek.
- Dodaj
scene.slots.status == "FINAL" && session.params.chosenOptions == "compass"
do pola tekstowego else if. - Kliknij Wyślij prompty.
- W edytorze kodu dodaj ten prompt:
candidates:
- first_simple:
variants:
- speech: >-
The compass will help you find the mystical and ancient Library of
Gryffinberg. Among its infinite stacks of dusty books, you find one
entitled "Wisdom of the Ages". By the time you've read the
50,000-page tome, the townspeople have forgotten their problems. You
will write a second edition of "Wisdom of the Ages", but have
limited commercial success.
- Kliknij Zapisz.
Testowanie działania w symulatorze
Na tym etapie Twoja akcja powinna wyświetlić użytkownikowi spersonalizowaną wróżbę na podstawie wybranej przez niego opcji.
Aby przetestować działanie, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Test.
- Wpisz
Talk to my test app
w polu Input (Dane wejściowe) i naciśnijEnter
. - Wpisz
Yes
w polu Input (Dane wejściowe) i naciśnijEnter
. Możesz też kliknąć sugestię Tak. - Kliknij, wpisz lub powiedz
Translator
.
Powinien wyświetlić się odpowiedni komunikat dla opcji „translator”.
3. Dodawanie pętli gry
W tej sekcji skonfigurujesz działanie w taki sposób, aby użytkownik mógł wybrać inną opcję i po dokonaniu wyboru usłyszeć inną przepowiednię. Ta zmiana jest podobna do komunikatu „Czy chcesz zagrać jeszcze raz?”, który pojawia się na końcu gry. Aby utworzyć tę pętlę, możesz ponownie wykorzystać utworzone wcześniej intencje yes
i no
i dodać je do nowej sceny o nazwie Again
.
Tworzenie sceny Again
W tej sekcji utworzysz nową Again
scenę i dodasz prompt, który zapyta użytkownika, czy chce wybrać inną opcję.
Aby utworzyć Again
scenę, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Tworzenie.
- Kliknij + (znak plusa) w sekcji Sceny.
- Wpisz
Again
i naciśnijEnter
. - Na pasku nawigacyjnym kliknij scenę
Again
. - Kliknij + (znak plusa) obok opcji Po wejściu.
- Kliknij Wyślij prompty i dodaj ten prompt oraz te sugestie:
candidates:
- first_simple:
variants:
- speech: >-
That is what I see for you. Would you like to choose a different option and
explore another future?
suggestions:
- title: 'Yes'
- title: 'No'
- Kliknij Zapisz.
Dodawanie przejścia ze sceny Fortune
do sceny Again
Po otrzymaniu wróżby przez użytkownika rozmowa musi przejść do nowej sceny Again
.
Aby dodać przejście ze sceny Fortune
do sceny Again
, wykonaj te czynności:
- Kliknij scenę Fortune (Fortuna).
- Kliknij pierwszy warunek (
scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
), aby otworzyć okno opcji. - Przewiń i wybierz
Again
w sekcji Przejście. - Kliknij Zapisz.
- Kliknij drugi warunek, aby otworzyć okno opcji.
- Przewiń i wybierz
Again
w sekcji Przejście. - Kliknij Zapisz.
- Kliknij trzeci warunek, aby otworzyć okno opcji.
- Przewiń i wybierz
Again
w sekcji Przejście. - Kliknij Zapisz.
Testowanie działania w symulatorze
W tym momencie Twoja akcja powinna wyświetlić użytkownikowi po otrzymaniu wróżby ten prompt: „To jest to, co widzę w Twojej przyszłości. Czy chcesz wybrać inną opcję i poznać inną przyszłość?
Aby przetestować działanie, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Test.
- Wpisz
Talk to my test app
w polu Input (Dane wejściowe) i naciśnijEnter
. - Wpisz
Yes
w polu Input (Dane wejściowe) i naciśnijEnter
. Możesz też kliknąć sugestię Tak. - Kliknij, wpisz lub powiedz
dragon
.
Powinna pojawić się wróżba dla opcji smoka i prompt Again
.
Dodawanie intencji i przechodzenie do sceny Again
W tej sekcji dodasz intencje yes
i no
do sceny Again
, aby Twoja akcja wiedziała, czy użytkownik chce wybrać nową opcję. Dodajesz też odpowiednie przejścia dla intencji yes
i no
. Intencja yes
przechodzi do sceny Fortune
, a intencja no
przechodzi do sceny systemowej End conversation
.
Aby dodać intencje i przejścia do sceny Again
, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Tworzenie.
- Kliknij scenę
Again
. - Kliknij + (znak plusa) obok opcji Obsługa zamiarów użytkownika.
- W menu intencji kliknij tak.
- W menu Przejście kliknij
Fortune
. - Kliknij Zapisz.
- Kliknij + (znak plusa) obok opcji Obsługa zamiarów użytkownika.
- W menu intencji wybierz nie.
- W menu Przejście kliknij Zakończ rozmowę.
- Kliknij Wyślij prompty i dodaj w edytorze kodu ten prompt:
candidates:
- first_simple:
variants:
- speech: >-
It pleases me that you are satisfied with your choice. Best of luck on your quest. Farewell.
- Kliknij Zapisz.
Testowanie działania w symulatorze
Twoja czynność powinna teraz rozpoznawać, czy użytkownik chce wybrać nową opcję, czy zakończyć rozmowę.
Aby przetestować intencję yes
, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Test.
- Wpisz
Talk to my test app
w polu Input (Dane wejściowe) i naciśnijEnter
. - Wpisz
Yes
w polu Input (Dane wejściowe) i naciśnijEnter
. Możesz też kliknąć sugestię Tak. - Kliknij, wpisz lub powiedz jedną z opcji.
- Wpisz
Yes
w polu Input (Dane wejściowe) i naciśnijEnter
.
Powinien pojawić się prompt „Co wybierzesz, aby pomóc Ci w wyprawie: smoka, tłumacza czy kompas?”
Aby przetestować intencję no
, wykonaj te czynności:
- Kliknij, wpisz lub powiedz jedną z opcji.
- Wpisz
No
w polu wprowadzania i naciśnijEnter
.
Powinien pojawić się prompt End conversation
: „Cieszę się, że jesteś zadowolony(-a) ze swojego wyboru. Powodzenia w poszukiwaniach. Żegnaj”.
4. Dodawanie ścieżki wspierającej
Główna ścieżka, którą podąża większość użytkowników Twojej akcji, została już utworzona. Użytkownik może jednak odpowiedzieć na pytanie z Fortune
sceny: „Co wybierasz, aby pomóc sobie w wyprawie: smoka, tłumacz czy kompas?”, wybierając opcję, która nie jest jedną z podanych.
W tej sekcji skonfigurujesz działanie tak, aby rozpoznawało, kiedy użytkownik wybierze „magia”, „pieniądze”, „koń” lub „telefon”, i aby w takim przypadku wyświetlało prośbę o wybranie jednej z pierwotnych 3 opcji. Aby skonfigurować tę logikę, musisz utworzyć nowy type
, który zawiera te inne opcje, oraz nowy zamiar other_option
, który jest dopasowywany, gdy użytkownik wybierze jedną z tych opcji. Musisz też oznaczyć wyrażenia na potrzeby trenowania w ramach intencji other_option
, aby identyfikować i wyodrębniać parametry intencji.
Gdy silnik przetwarzania języka naturalnego (NLU) Asystenta wykryje w danych wejściowych użytkownika dopasowanie parametru, wyodrębnia wartość jako parametr wpisany, dzięki czemu możesz używać jej w scenie. W tym laboratorium kodowania skonfigurujesz działanie tak, aby wyodrębniało pomoc wybraną przez użytkownika i odwoływało się do tego wyboru w prompcie.
Tworzenie typu unavailable_options
Możesz teraz utworzyć typ unavailable_options
, który zawiera różne opcje, aby Twoja czynność mogła identyfikować te dane w danych wejściowych użytkownika.
Aby utworzyć typ unavailable_options
, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Tworzenie.
- Kliknij + (znak plusa) w sekcji Typy.
- Wpisz
unavailable_options
i naciśnijEnter
. - Kliknij
unavailable_options
, aby otworzyć opcje. - W sekcji Dodaj wpisy wpisz te wpisy i odpowiadające im wartości:
|
|
|
|
|
|
|
|
Tabela par klucz-wartość powinna wyglądać tak:
- Kliknij Zapisz.
Tworzenie intencji other_option
Następnie tworzysz intencję o nazwie other_option
i dodajesz do niej frazy treningowe, które zawierają opcje typu unavailable_options
. Ten zamiar jest dopasowywany, gdy użytkownik wybierze opcję zawartą w typie unavailable_options
.
Aby utworzyć i skonfigurować intencję other_option
, wykonaj te czynności:
- W sekcji Niestandardowe intencje kliknij + (znak plusa).
- Wpisz
other_option
i naciśnijEnter
. - Kliknij
other_option
, aby otworzyć okno. - Dodaj te wyrażenia na potrzeby trenowania i po każdym z nich naciśnij
Enter
:
I want to use spells
I really really want to use a phone
magic!
cash
I want to ride a horse
- W sekcji Dodaj parametry intencji zmień nazwę parametru na
chosenUnavailableOption
. - Kliknij Zapisz.
Podczas wpisywania przykładowych wypowiedzi narzędzie Actions Builder rozpoznaje słowa spells
, phone
, magic
, cash
i horse
typu unavailable_options
i automatycznie je wyróżnia (dodaje do nich adnotacje). Kreator działań automatycznie dodaje parametr intencji w sekcji Dodaj parametry intencji, jak pokazano na ilustracji poniżej.
Parametr intent umożliwia wyodrębnienie nazwy opcji i użycie jej w prompcie.
Dodaj intencję other_option
do sceny Fortune
Masz teraz intencję other_option
, która może obsługiwać opcję podaną przez użytkownika, a nie należącą do pierwotnych opcji. W tej sekcji dodasz intencję other_option
do sceny Fortune
. Parametr intent służy do dostosowywania prompta na podstawie danych wejściowych użytkownika.
Aby dodać intencję other_option
do sceny Fortune
, wykonaj te czynności:
- Kliknij scenę Fortune (Fortuna).
- Kliknij + (znak plusa) obok opcji Obsługa zamiarów użytkownika.
- W menu intencji kliknij
other_option
. - Kliknij Wyślij prompty i dodaj ten prompt:
candidates:
- first_simple:
variants:
- speech: >-
I have seen the future and a $intent.params.chosenUnavailableOption.original
will not aid you on your journey.
Wyrażenie $intent.params.chosenUnavailableOption
odnosi się do obiektu parametru intencji, a $intent.params.chosenUnavailableOption.original
– do wartości tego obiektu. Symbol original property
odnosi się do danych wejściowych podanych przez użytkownika.
- Kliknij Zapisz.
Gdy użytkownik wypowie opcję wymienioną w unavailable_options
podczas Fortune
, zostanie dopasowany zamiar other_option
i do kolejki promptów zostanie dodany prompt. Ponieważ nie określono przejścia, pętla wykonania sceny jest kontynuowana przez ponowną ocenę etapu warunków. Miejsce na reklamę chosenOptions
dodaje wtedy swój prompt do kolejki promptów, która jest dostarczana użytkownikowi.
Testowanie działania w symulatorze
Działanie powinno teraz odpowiednio reagować, gdy użytkownik wybierze jedną z opcji wymienionych w unavailable_options
type, i określać, które urządzenie pomocnicze zostało wybrane. Następnie Twoja czynność powinna poprosić użytkownika o wybranie jednej z pierwotnych opcji (smoka, tłumacza lub kompasu).
Aby przetestować działanie w symulatorze, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Test.
- Wpisz
Talk to my test app
w polu Input (Dane wejściowe) i naciśnijEnter
. - Wpisz
Yes
w polu Input (Dane wejściowe) i naciśnijEnter
. Możesz też kliknąć sugestię Tak. - Wpisz
magic
w polu Input (Dane wejściowe) i naciśnijEnter
.
Możesz zauważyć, że gdy użytkownik wybierze opcję „magia”, prompt nie brzmi poprawnie ze względu na umieszczony przed nim przedimek „a”. Rozwiązanie tego problemu znajdziesz w kolejnych sekcjach.
Dodaj moduł obsługi unavailable_options
Aby umieścić przedimek „a” przed odpowiednimi opcjami z typu unavailable_options
, możesz skonfigurować w logice realizacji procedurę obsługi zdarzeń, która sprawdzi, czy wybrana przez użytkownika opcja wymaga przedimka „a”. Najpierw musisz skonfigurować działanie, aby wywoływało moduł obsługi w konsoli.
Aby dodać moduł obsługi unavailable_options
, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Tworzenie.
- Kliknij scenę
Fortune
. - W sekcji Obsługa intencji użytkownika kliknij Gdy zostanie dopasowana opcja other_option, aby otworzyć okno.
- Odznacz pole wyboru Wysyłaj prompty.
- Zaznacz pole wyboru Wywołaj webhooka.
- Wpisz
unavailable_options
w polu tekstowym modułu obsługi zdarzeń.
- Kliknij Zapisz.
Aktualizowanie i wdrażanie realizacji
Po skonfigurowaniu działania tak, aby wywoływało moduł obsługi zdarzeń unavailable_options
, możesz zaktualizować moduł obsługi w usłudze realizacji i wdrożyć go.
Aby zaktualizować realizację zamówienia, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Webhook.
- Pod modułem obsługi
greeting
dodaj ten kod:
app.handle('unavailable_options', conv => {
const option = conv.intent.params.chosenUnavailableOption.original;
const optionKey = conv.intent.params.chosenUnavailableOption.resolved;
let message = 'I have seen the future and ';
if(optionsNeedA.has(optionKey)){
message = message + 'a ';
}
message = message + `${option} will not aid you on your journey. `;
conv.add(message);
});
- Dodaj ten kod pod elementem
const app = conversation();
:
const optionsNeedA = new Set();
optionsNeedA.add('horse').add('phone');
- Kliknij Zapisz realizację.
- Kliknij Wdróż realizację. Po zakończeniu wdrażania nad edytorem pojawi się komunikat Wdrożenie funkcji w Cloud Functions jest aktualne.
Zrozumienie kodu
Procedura obsługi unavailable_options
wykonuje te czynności:
- Pobiera dane
option
z obiektuconv
i przypisuje je do właściwościoriginal
, która jest surowym wejściem od użytkownika.option
- Przypisuje wartość
optionKey
do właściwościresolved
, która jest kluczem typuunavailable_options
. - Sprawdza, czy
optionKey
jest jedną z opcji, które wymagają przedimka „a”; jeśli tak, tworzy komunikat z dodanym przedimkiem „a”. - Dodaje wiadomość za pomocą
conv.add(message)
Testowanie działania w symulatorze
Działanie powinno teraz dostosować prompt na podstawie tego, czy wybór użytkownika z typu unavailable_options
wymaga przedimka „a”.
Aby przetestować działanie, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Test.
- Kliknij lub wpisz
Talk to my test app
w polu Input (Dane wejściowe) i naciśnijEnter
. - Wpisz
Yes
w polu Input (Dane wejściowe) i naciśnijEnter
. Możesz też kliknąć sugestię Tak. - Wpisz
magic
w polu Input (Dane wejściowe) i naciśnijEnter
. - Wpisz
horse
w polu Input (Dane wejściowe) i naciśnijEnter
.
Twoje działanie powinno dodać przedimek „a” przed wyborem „horse”, a podczas tworzenia promptu nie powinno dodawać przedimka „a” przed wyborem „magic”.
Wyczyść projekt [zalecane]
Aby uniknąć ewentualnych opłat, zalecamy usunięcie projektów, których nie zamierzasz używać. Aby usunąć projekty utworzone w tym laboratorium, wykonaj te czynności:
- Aby usunąć projekt Cloud i zasoby, wykonaj czynności opisane w sekcji Wyłączanie (usuwanie) projektów.
- Opcjonalnie: aby natychmiast usunąć projekt z konsoli Actions, przeczytaj artykuł Usuwanie projektu. Jeśli nie wykonasz tego kroku, Twój projekt zostanie automatycznie usunięty po około 30 dniach.
5. Gratulacje!
Poznałeś już umiejętności średniozaawansowane niezbędne do tworzenia działań dla Asystenta Google.
Omówione kwestie
- Jak tworzyć działania konwersacyjne za pomocą biblioteki Node.js do obsługi żądań
- Jak używać slotów do zbierania danych od użytkownika
- Jak używać warunków do dodawania logiki do sceny
- Jak dodać pętlę gry
- Jak dodać ścieżkę wsparcia
Więcej informacji
Aby dowiedzieć się więcej o tworzeniu działań dla Asystenta Google, zapoznaj się z tymi materiałami:
- Dokumentacja dotycząca tworzenia działań dla Asystenta Google
- Strona Actions on Google na GitHubie z przykładowym kodem i bibliotekami
- Oficjalna społeczność na Reddicie dla deweloperów pracujących z Asystentem Google
- Wytyczne dotyczące projektowania konwersacji zawierające sprawdzone metody i wytyczne dotyczące działań konwersacyjnych.
Obserwuj @ActionsOnGoogle na Twitterze, aby być na bieżąco z naszymi najnowszymi ogłoszeniami, i publikuj tweety z hasztagiem #AoGDevs, aby dzielić się tym, co udało Ci się stworzyć.
Ankieta dotycząca opinii
Zanim wyjdziesz, wypełnij krótką ankietę dotyczącą Twoich wrażeń.