1. Opis
Platforma dewelopera Asystenta Google umożliwia tworzenie oprogramowania rozszerzającego możliwości Asystenta wirtualnego – wirtualnego asystenta osobistego – na ponad miliard urządzeń, takich jak inteligentne głośniki, telefony, samochody, telewizory czy słuchawki. Użytkownicy rozmawiają z Asystentem podczas rozmowy, np. kupując artykuły spożywcze czy rezerwując przejazd. Jako deweloper możesz korzystać z platformy dla deweloperów Asystenta, by łatwo tworzyć przydatne rozmowy i zarządzać nimi między użytkownikami a własną usługą realizacji zamówień.
Ćwiczenia z programowania są na poziomie średniozaawansowanym dotyczącym programowania z pomocą Asystenta Google. Bazują na akcjach utworzonych w ćwiczeniach z programowania na poziomie 1. Przed rozpoczęciem tego ćwiczenia zdecydowanie zalecamy ukończenie ćwiczenia z poziomu 1.
Akcja, którą stworzysz w tym ćwiczeniu z programowania, informuje użytkowników o tym, że ich misja w mitycznym kraju – Gryffinberg jest oparta na wybranej przez nich pomocy.
Co stworzysz
W ramach tego ćwiczenia z programowania tworzysz wyrafinowaną akcję rozmowy z tymi funkcjami:
- Zbiera dane od użytkownika i, w zależności od wartości, modyfikuje komunikaty konwersacyjne
- Odpowiedzi na kolejne pytania uzupełniające rozmowę
- Tworzy pętlę gry, aby użytkownik mógł ponownie wziąć udział w akcji po otrzymaniu fortuny
Zanim zaczniesz tworzyć treści, możesz wchodzić w interakcję z Akcją na urządzeniu z Asystentem Google, mówiąc OK Google, rozmawiaj z Fath i Fortune". Domyślna ścieżka prowadząca przez powracającego użytkownika wygląda tak:
Czego się nauczysz
- Jak używać boksów do zbierania danych od użytkownika.
- Jak dodawać logikę do scen za pomocą warunków
- Jak dodać pętlę gry
- Jak dodać ścieżkę wspierającą
Czego potrzebujesz
Wymagania wstępne dla tych ćwiczeń z programowania:
- Przeglądarka internetowa, np. Google Chrome.
- Ukończony projekt ćwiczenia z programowania na poziomie 1 (Build Actions for Google Assistant using Actions Actions Level 1)
Znajomość języka JavaScript (ES6) jest zalecany, choć niewymagana do zrozumienia kodu realizacji tego ćwiczenia.
2. Kontynuuj tworzenie interfejsu rozmowy
Na pierwszym ćwiczeniu z programowania udało Ci się utworzyć prostą czynność konwersacyjną z jedną sceną (Start
).
Dzięki temu ćwiczeniu możesz przedłużyć rozmowę związaną z akcją. W kolejnych sekcjach skonfigurujesz działanie tak, by:
- Przejście na nową scenerię
Fortune
, gdy użytkownik chce posłuchać swojego fortuny - Zapytaj użytkownika o pomoc, którą chce wybrać podczas podróży
- Indywidualny przekaz w oparciu o wybór użytkownika
Utwórz scenę Fortune
W tej sekcji tworzysz scenę Fortune
i określasz, jak użytkownik ma do niej przechodzić podczas rozmowy.
Aby utworzyć nową scenę o nazwie Fortune
, wykonaj te czynności:
- Otwórz projekt z poziomem ćwiczeń z programowania na poziomie 1.
- Na pasku nawigacyjnym kliknij Programowanie.
- W sekcji Sceny kliknij scenę Rozpocznij.
- Kliknij intencję yes (pole Gdy tak), by otworzyć opcje.
- Aby usunąć potwierdzenie, wyczyść opcję Wyślij prośby o potwierdzenie.
- W sekcji Przejście kliknij menu, kliknij pole tekstowe i wpisz
Fortune
. - Kliknij Dodaj. Spowoduje to utworzenie nowej sceny o nazwie
Fortune
. Dodaje też przejście ze scenyStart
na scenęFortune
, gdy użytkownik chce posłuchać swojego fortuny.
Zdefiniuj logikę rozmowy na Fortune
scenie
W tym ćwiczeniu z programowania konfigurujesz tę scenę w Fortune
tak, by prosiła użytkownika o określenie „Co wybierasz do pomocy w kursie, smoku, tłumaczu czy kompasie?” Aby kontynuować, możesz użyć funkcji wypełniania boksu reklamowego.
Akcja daje fortuna 3 pomocy: smoka, tłumacza i kompasu. Aby skonfigurować akcję do tych 3 opcji w danych wejściowych użytkownika, musisz utworzyć nowy typ.
Do określenia informacji, które chcesz uzyskać od użytkownika, możesz użyć typów scen w scenie. Gdy mechanizm NLU wykryje dopasowanie boksu reklamowego, wpisuje go jako parametr wpisany, dzięki czemu można wykonać logikę w jego charakterze.
Utwórz typ available_options
W tej sekcji utworzysz nowy typ o nazwie available_options
, który określa 3 opcje, które użytkownicy mogą wybrać (smok, tłumacz i kompas) w odpowiedzi na wyświetlenie komunikatu. Możesz też zdefiniować kilka synonimów tych opcji, na wypadek gdyby użytkownik powiedział coś podobnego. W późniejszej sekcji dodaj typ available_options
do boksu, by 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ą skonfigurowane jako pary klucz-wartość, w których 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ć:
- Przewiń do sekcji Dodaj wpisy.
- W polu New entry (Nowy wpis) wpisz
dragon
i naciśnijEnter
. To działanie spowoduje utworzenie kluczadragon
. - Wpisz
hydra
w polu Dodaj wartości i naciśnijEnter
, aby dodać wartość jako synonim. Powtórz ten krok dla wartościlizard
. - Dodaj pozostałe klucze i odpowiadające im wartości:
translator | translator
,communicator
,machine
,decoder
,translate
compass | compass
,direction
,guide
- Kliknij Zapisz.
Akcja rozpoznaje, że available_options
jest smokiem, tłumaczem i kompasem, a także rozpoznaje kilka synonimów.
Skonfiguruj wypełnianie przedziałów
Następnie musisz skonfigurować wypełnienie boksu w scenie Fortune
. Aby skonfigurować procedurę wypełniania boksów, wykonaj te czynności:
- W sekcji Sceny na pasku nawigacyjnym kliknij Wróżenie.
- Na scenie
Fortune
kliknij + (znak plusa), by wypełnić boks. - W polu Wpisz nazwę boksu dodaj
chosenOptions
. - Z listy Wybierz typ wybierz typ boksu
available_options
. - Zaznacz pole wyboru Ten boks jest wymagany.
- Wybierz Wyślij monity i dodaj tę wiadomość oraz elementy z sugestii:
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.
Teraz dodajesz do boksu typ available_options
, który informuje Akcję, jakie informacje musisz uzyskać od użytkownika (jego wybraną pomoc), zanim przejdziesz dalej. W przedziale jest też skonfigurowany alert, który jest dodawany do kolejki powiadomień, gdy użytkownik osiągnie etap wypełniania sceny w boksie.
Pamiętaj, że nadając nazwę boksowi chosenOptions
, zawartość pola Dostosuj wartość przedziału przedziałów jest aktualizowana tą samą nazwą ($session.params.chosenOptions
). Dostęp do tego parametru możesz uzyskać w narzędziu Action Actions i w swojej realizacji za pomocą biblioteki klienta.
Skonfiguruj warunek scene.slots.status == "FINAL"
Gdy dodasz boks, warunek scene.slots.status == "FINAL"
zostanie automatycznie dodany do listy warunków.
Warunek scene.slots.status == "FINAL"
sprawdza, czy boks został wypełniony. Gdy wszystkie boksy są wypełnione, warunek może wywołać webhooka, przejść do nowej sceny lub dodać prośby do kolejki.
W tej sekcji konfigurujesz scene.slots.status == "FINAL"
, aby po wypełnieniu boksów dodać potwierdzenie w kolejce wiersza poleceń.
Aby dodać to pytanie do warunku FINAL
, wykonaj te czynności:
- Kliknij
scene.slots.status == "FINAL"
, by otworzyć okno opcji. - Wybierz Wyślij monity i dodaj ten komunikat:
candidates:
- first_simple:
variants:
- speech: You picked $session.params.chosenOptions.
- Kliknij Zapisz.
Testowanie działania w symulatorze
Na tym etapie określono już, jakie opcje użytkownik powinien wybrać, aby wypełnić boks. Po otrzymaniu tych informacji akcja powinna wyświetlić prośbę o konkretną wybraną opcję.
Aby przetestować działanie, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Przetestuj.
- Kliknij lub wpisz
Talk to my test app
w polu Wejście i naciśnijEnter
. - Wpisz
Yes
w polu Dane wejściowe i naciśnijEnter
. (Możesz też kliknąć element Tak).
- Kliknij, wpisz lub powiedz
dragon
. Powinien pojawić się komunikat "Wybrany przez Ciebie smok."
W następnej sekcji dostosujesz sugestie do poszczególnych typów pomocy wybranych przez użytkownika.
Dostosowywanie próśb przy użyciu warunków
W tej sekcji możesz dodać warunki dla każdej opcji, którą użytkownik może wybrać, oraz dodać niestandardowy alert dla każdego warunku.
Dostosuj majątku dragon
Aby zaktualizować warunek i dostosować prośbę, gdy użytkownik wybierze opcję „smok”, i wykonaj te kroki:
- Na pasku nawigacyjnym kliknij Programowanie.
- Na pasku nawigacyjnym kliknij scenę Wróżenie.
- Kliknij
scene.slots.status == "FINAL"
, by otworzyć okno opcji. - Zaktualizuj instrukcję warunku:
scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
- Wybierz Wyślij potwierdzenia.
- Zaktualizuj wiersz poleceń 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.
Kiedy użytkownik powie "smok" lub coś, co brzmi podobnie, Akcja daje wróżby na podstawie tego wyboru. Następnie dodaj pozostałe dwa ustawienia.
Dostosuj majątku translator
Aby dodać warunek i dostosować powiadomienie wysyłane, gdy użytkownik wybierze opcję „tłumacz” i:
- Kliknij + (znak plus) obok opcji Warunek.
- Dodaj
scene.slots.status == "FINAL" && session.params.chosenOptions == "translator"
w polu inny niż. - Wybierz Wyślij monity.
- Dodaj w edytorze kodu ten wiersz:
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.
Dostosuj majątku compass
Aby dodać warunek i dostosować powiadomienie wyświetlane, gdy użytkownik wybierze opcję „Kompas”:
- Kliknij + (znak plus) obok opcji Warunek.
- Dodaj
scene.slots.status == "FINAL" && session.params.chosenOptions == "compass"
w polu tekstowym jeśli jest. - Wybierz Wyślij monity.
- Dodaj w edytorze kodu ten wiersz:
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
W tym momencie Twoje działanie powinno przedstawiać użytkownikowi fortunę zależną od jego opcji.
Aby przetestować działanie, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Przetestuj.
- Wpisz
Talk to my test app
w polu Dane wejściowe i naciśnijEnter
. - Wpisz
Yes
w polu Dane wejściowe i naciśnijEnter
. Możesz też kliknąć element Tak w sugestii. - Kliknij, wpisz lub powiedz
Translator
.
Wpis powinien być dla Ciebie właściwy.
3. Dodaj pętlę gry
W tej sekcji możesz skonfigurować działanie, tak aby po dokonaniu wyboru użytkownik mógł wybrać inną opcję i usłyszeć inną wróżbę. Ta zmiana jest podobna do komunikatu "Czy chcesz zagrać ponownie po zakończeniu gry? Aby utworzyć tę pętlę, możesz ponownie użyć wcześniej utworzonych intencji yes
i no
oraz dodać je do nowej sceny o nazwie Again
.
Utwórz scenę Again
W tej sekcji tworzysz nową scenę Again
i wyświetlasz użytkownikowi pytanie, czy chce wybrać inną opcję.
Aby utworzyć scenę Again
, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Programowanie.
- W sekcji Sceny kliknij + (znak plus).
- Wpisz
Again
i naciśnijEnter
. - Kliknij scenę
Again
na pasku nawigacyjnym. - Kliknij + (znak plusa) obok opcji Przy włączaniu.
- Wybierz Wysyłaj prośby, a potem dodaj te elementy zamówienia i elementy sugestii:
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.
Dodaj przejście ze sceny Fortune
do Again
Gdy użytkownik otrzyma fortunę, rozmowa musi przejść na nową scenę Again
.
Aby dodać przejście ze sceny Fortune
do sceny Again
, wykonaj te czynności:
- Kliknij scenę Wróżenie.
- Kliknij pierwszy warunek (
scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
), by 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 takim przypadku Akcja powinna wyświetlić użytkownikowi odpowiedni komunikat i wyświetlić następujący komunikat: "Oto co widzę. Czy chcesz wybrać inną opcję i poznać przyszłość?
Aby przetestować działanie, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Przetestuj.
- Wpisz
Talk to my test app
w polu Dane wejściowe i naciśnijEnter
. - Wpisz
Yes
w polu Dane wejściowe i naciśnijEnter
. Możesz też kliknąć element Tak w sugestii. - Kliknij, wpisz lub powiedz
dragon
.
Powinna wyświetlić się wróżka dla smoka i komunikat Again
.
Dodaj zamiary i przejdź do sceny Again
W tej sekcji dodasz do intencji Again
intencje yes
i no
, by 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 Programowanie.
- Kliknij scenę
Again
. - Kliknij + (znak plus) obok pozycji Obsługa intencji użytkownika.
- Wybierz yes (tak) z menu intencji.
- Wybierz
Fortune
z menu Przejście. - Kliknij Zapisz.
- Kliknij + (znak plus) obok pozycji Obsługa intencji użytkownika.
- Wybierz nie z menu intencji.
- Wybierz Zakończ rozmowę z menu Przejście.
- Wybierz Wyślij monity i dodaj ten wiersz w edytorze kodu:
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
Akcja powinna teraz wiedzieć, czy użytkownik chce wybrać nową opcję czy zakończyć rozmowę.
Aby przetestować intencję yes
, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Przetestuj.
- Wpisz
Talk to my test app
w polu Dane wejściowe i naciśnijEnter
. - Wpisz
Yes
w polu Dane wejściowe i naciśnijEnter
. Możesz też kliknąć element Tak w sugestii. - Kliknij, wpisz lub powiedz jedną z opcji.
- Wpisz
Yes
w polu Dane wejściowe i naciśnijEnter
.
Powinien wyświetlić się komunikat: "Co wybierasz do pomocy w kursie, smoku, tłumaczu czy kompasie?
Aby przetestować intencję no
, wykonaj te czynności:
- Kliknij, wpisz lub powiedz jedną z opcji.
- W polu do wprowadzania tekstu wpisz
No
i naciśnijEnter
.
Powinien wyświetlić się komunikat End conversation
: " Przykro mi, że satysfakcjonuje Cię ta opcja. Życzymy powodzenia w zadaniu. Do zobaczenia.
4. Dodaj ścieżkę wspierającą
Udało Ci się utworzyć główną ścieżkę, którą większość użytkowników wykonuje w ramach akcji. Jednak użytkownik może zareagować na powiadomienie z punktu widokowego Fortune
„Co wybierasz do pomocy w zadaniu”,: smok, tłumacz lub kompas?
W tej sekcji konfigurujesz swoją akcję, by dowiedzieć się, kiedy użytkownik wybiera „"magic", "money", " Horse" lub "phone" oraz aby prosił użytkownika o wybranie jednej z 3 pierwotnych odpowiedzi, gdy wybierze jedną z tych opcji. Aby skonfigurować tę logikę, musisz utworzyć nową zasadę type
zawierającą te inne opcje i nową intencję other_option
, która będzie pasować do wybranych przez użytkownika opcji. Musisz też adnotować wyrażenia szkoleniowe w zamiarze other_option
, by rozpoznawać i wyodrębniać parametry intencji.
Kiedy mechanizm przetwarzania języka naturalnego (NLU) wykryje Asystenta i dopasuje parametr do danych wejściowych użytkownika, wyodrębni tę wartość jako parametr wpisany, by można było wykonywać z nim logikę. W tym ćwiczeniu dotyczącym konfigurowania konfigurujesz działanie tak, aby wyodrębniać pomoc, którą wybrał użytkownik, i wskazywać go w pytaniu.
Utwórz typ unavailable_options
Teraz możesz tworzyć typ unavailable_options
, który zawiera różne opcje, dzięki czemu akcja może identyfikować te dane w danych wejściowych użytkownika.
Aby utworzyć typ unavailable_options
, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Programowanie.
- 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 klucz-wartość powinna wyglądać tak:
- Kliknij Zapisz.
Utwórz other_option
intencję
Następnie utwórz intencję o nazwie other_option
i dodaj wyrażenia śledzące, które zawierają opcje w typie unavailable_options
. Ta intencja jest dopasowywana, gdy użytkownik dokona wyboru zawartego w typie unavailable_options
.
Aby utworzyć i skonfigurować intencję other_option
, wykonaj te czynności:
- W sekcji Niestandardowi odbiorcy o podobnych zamiarach kliknij + (znak plus).
- Wpisz
other_option
i naciśnijEnter
. - Kliknij
other_option
, aby otworzyć okno. - Dodaj te wyrażenia na potrzeby trenowania i po każdej 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.
Wpisując wyrażenie do trenowania, Actions Actions rozpoznaje spells
, phone
, magic
, cash
i horse
z typu unavailable_options
i automatycznie wyróżnia te notatki. Actions Actions automatycznie dodaje parametr intencji w sekcji Dodaj parametry zamiaru, jak widać na tym obrazie.
Parametr intencji pozwala wyodrębnić nazwę opcji i użyć jej w komunikacie.
Dodaj intencję other_option
do sceny Fortune
Teraz masz intencję other_option
, która może obsłużyć użytkownika określającą opcję, która nie jest jedną z pierwotnych opcji. W tej sekcji dodasz intencję other_option
do sceny Fortune
. Parametr intencji służy do dostosowywania komunikatu na podstawie danych wejściowych użytkownika.
Aby dodać intencję other_option
do sceny Fortune
, wykonaj te czynności:
- Kliknij scenę Wróżenie.
- Kliknij + (znak plus) obok pozycji Obsługa intencji użytkownika.
- Wybierz
other_option
z menu intencji. - Wybierz Wyślij monity i dodaj ten komunikat:
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. original property
oznacza nieprzetworzone dane wejściowe użytkownika.
- Kliknij Zapisz.
Gdy użytkownik poda na scenie Fortune
opcję wymienioną w typie unavailable_options
, intencja other_option
jest dopasowywana i dodaje się w kolejce wiersza poleceń. Ponieważ nie określono przejścia, pętla wykonywania sceny jest kontynuowana po ponownej ocenie etapu warunków. Wyświetlony przedział chosenOptions
dodaje wiersz poleceń do kolejki, a użytkownik go otrzymuje.
Testowanie działania w symulatorze
Twoje działanie powinno teraz zostać prawidłowo zareagowane, gdy użytkownik wybierze jedną z opcji wymienionych w typie unavailable_options
i określi, której pomocy potrzebuje. Twoje działanie powinno wówczas skłonić użytkownika do wybrania jednej z pierwotnych opcji (smoka, tłumacza lub kompasu).
Aby przetestować działanie w symulatorze, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Przetestuj.
- Wpisz
Talk to my test app
w polu Dane wejściowe i naciśnijEnter
. - Wpisz
Yes
w polu Dane wejściowe i naciśnijEnter
. Możesz też kliknąć element Tak w sugestii. - Wpisz
magic
w polu Dane wejściowe i naciśnijEnter
.
Zdarza się, że znak zapytania nie brzmi poprawnie, gdy użytkownik wybierze opcję „magic"” z powodu &kodu umieszczonego przed nim. Informacje na ten temat znajdziesz w kolejnych sekcjach.
Dodaj moduł obsługi unavailable_options
Aby umieścić „&"artykuł” przed właściwym wyborem z typu unavailable_options
, możesz skonfigurować moduł obsługi zdarzeń w logice realizacji i sprawdzić, czy przed wybraniem opcji przez użytkownika wymagane jest słowo „&”. Najpierw musisz skonfigurować działanie, aby wywołujeło aplikację w konsoli.
Aby dodać moduł obsługi unavailable_options
:
- Na pasku nawigacyjnym kliknij Programowanie.
- Kliknij scenę
Fortune
. - W sekcji Obsługa intencji użytkownika kliknij Gdy wybrana jest inna opcja, aby otworzyć okno.
- Odznacz pole wyboru Wysyłaj potwierdzenia.
- Zaznacz pole wyboru Zadzwoń do webhooka.
- W polu tekstowym modułu obsługi zdarzeń wpisz
unavailable_options
.
- Kliknij Zapisz.
Aktualizowanie i wdrażanie realizacji
Po skonfigurowaniu działania do wywoływania modułu obsługi zdarzeń unavailable_options
możesz zaktualizować go w jego realizacji i wdrożyć.
Aby zaktualizować realizację, wykonaj te czynności:
- Kliknij Webhook na pasku nawigacyjnym.
- Dodaj ten kod do modułu obsługi
greeting
:
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 do sekcji
const app = conversation();
:
const optionsNeedA = new Set();
optionsNeedA.add('horse').add('phone');
- Kliknij Save Fulfillment (Zapisz realizację).
- Kliknij Deploy Fulfillment (Wdróż realizację). Po zakończeniu wdrażania pojawi się komunikat Twoje wdrożenie funkcji w Cloud Functions jest aktualne.
Omówienie kodu
Moduł obsługi unavailable_options
wykonuje te czynności:
- Pobiera dane
option
z obiektuconv
i przypisujeoption
do właściwościoriginal
, która jest nieprzetworzona - Przypisuje
optionKey
do właściwościresolved
, która jest kluczem typuunavailable_options
. - Sprawdza, czy
optionKey
jest jedną z opcji, które wymagają &&;quot; Jeśli tak, tworzy wiadomość z dodanym &"a" - Dodaje wiadomość przez:
conv.add(message)
Testowanie działania w symulatorze
Twoja akcja powinna teraz wyświetlać prośbę w zależności od tego, czy przed wybraniem przez użytkownika typu unavailable_options
trzeba wybrać artykuł.
Aby przetestować działanie, wykonaj te czynności:
- Na pasku nawigacyjnym kliknij Przetestuj.
- Kliknij lub wpisz
Talk to my test app
w polu Wejście i naciśnijEnter
. - Wpisz
Yes
w polu Dane wejściowe i naciśnijEnter
. Możesz też kliknąć element Tak w sugestii. - Wpisz
magic
w polu Dane wejściowe i naciśnijEnter
. - Wpisz
horse
w polu Dane wejściowe i naciśnijEnter
.
Akcja powinna dodać artykuł „przed” i „konię” przed wybraniem „artykułu”, który będzie się wyświetlać podczas tworzenia prośby, tak aby nie została ona wybrana za pomocą „&magii”.
Sprzątnij projekt [zalecane]
Aby uniknąć ewentualnych opłat, zalecamy usunięcie projektów, których nie chcesz używać. Aby usunąć projekty utworzone w tym ćwiczeniu, wykonaj te czynności:
- Aby usunąć projekt i zasoby Cloud, wykonaj czynności opisane w sekcji Wyłączanie (usuwanie) projektów.
- Opcjonalnie: aby od razu usunąć projekt z konsoli Actions, zobacz Usuwanie projektu. Jeśli nie wykonasz tego kroku, Twój projekt zostanie automatycznie usunięty po około 30 dniach.
5. Gratulacje!
Udało Ci się opanować umiejętności średnio zaawansowane niezbędne do tworzenia akcji w Asystencie Google.
Omawiane zagadnienia
- Jak tworzyć akcje konwersacyjne z użyciem biblioteki realizacji Node.js
- Jak używać przedziałów do gromadzenia danych od użytkownika
- Jak dodawać warunki do logiki
- Jak dodać pętlę gry
- Jak dodać ścieżkę wspierającą
Więcej informacji
Zapoznaj się z tymi materiałami, aby dowiedzieć się więcej o tworzeniu działań w Asystencie Google:
- Dokumentacja tworzenia działań Asystenta Google
- Strona Actions on Google GitHub dla przykładowego kodu i bibliotek
- Oficjalna Forum pomocy dla deweloperów korzystających z Asystenta Google
- Wskazówki dotyczące projektowania rozmów: sprawdzone metody i wytyczne dotyczące rozmów
Obserwuj @ActionsOnGoogle na Twitterze, aby otrzymywać najnowsze ogłoszenia i tweety do #AoGDevs, aby dzielić się swoimi pomysłami.
Ankieta dotycząca opinii
Zanim skończysz, wypełnij krótką ankietę.