Build Actions for Asystent Google – Kreator działań (poziom 2)

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:

dd6f5c61296b8b50.png

eba043f546aa8c51.png,

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:

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:

  1. Otwórz projekt z poziomem ćwiczeń z programowania na poziomie 1.
  2. Na pasku nawigacyjnym kliknij Programowanie.
  3. W sekcji Sceny kliknij scenę Rozpocznij.
  4. Kliknij intencję yes (pole Gdy tak), by otworzyć opcje.
  5. Aby usunąć potwierdzenie, wyczyść opcję Wyślij prośby o potwierdzenie.
  6. W sekcji Przejście kliknij menu, kliknij pole tekstowe i wpisz Fortune.
  7. Kliknij Dodaj. Spowoduje to utworzenie nowej sceny o nazwie Fortune. Dodaje też przejście ze sceny Start na scenę Fortune, gdy użytkownik chce posłuchać swojego fortuny.

56682a0c7459b98c.png

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:

  1. Na pasku nawigacyjnym kliknij Typy.
  2. Kliknij + (znak plusa), wpisz available_options i naciśnij Enter.
  3. 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ć:

  1. Przewiń do sekcji Dodaj wpisy.
  2. W polu New entry (Nowy wpis) wpisz dragon i naciśnij Enter. To działanie spowoduje utworzenie klucza dragon.
  3. Wpisz hydra w polu Dodaj wartości i naciśnij Enter, aby dodać wartość jako synonim. Powtórz ten krok dla wartości lizard.
  4. Dodaj pozostałe klucze i odpowiadające im wartości:
  • translator | translator, communicator, machine, decoder, translate
  • compass | compass, direction, guide

8333b1b67445f21.png

  1. 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:

  1. W sekcji Sceny na pasku nawigacyjnym kliknij Wróżenie.
  2. Na scenie Fortune kliknij + (znak plusa), by wypełnić boks.
  3. W polu Wpisz nazwę boksu dodaj chosenOptions.
  4. Z listy Wybierz typ wybierz typ boksu available_options.
  5. Zaznacz pole wyboru Ten boks jest wymagany.

A461b906476e244.png

  1. 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'
  1. 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:

  1. Kliknij scene.slots.status == "FINAL", by otworzyć okno opcji.
  2. Wybierz Wyślij monity i dodaj ten komunikat:
candidates:
  - first_simple:
      variants:
        - speech: You picked $session.params.chosenOptions.
  1. 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:

  1. Na pasku nawigacyjnym kliknij Przetestuj.
  2. Kliknij lub wpisz Talk to my test app w polu Wejście i naciśnij Enter.
  3. Wpisz Yes w polu Dane wejściowe i naciśnij Enter. (Możesz też kliknąć element Tak).

A899d45c542668f6.png

  1. 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:

  1. Na pasku nawigacyjnym kliknij Programowanie.
  2. Na pasku nawigacyjnym kliknij scenę Wróżenie.
  3. Kliknij scene.slots.status == "FINAL", by otworzyć okno opcji.
  4. Zaktualizuj instrukcję warunku: scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
  5. Wybierz Wyślij potwierdzenia.
  6. 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.
  1. Kliknij Zapisz.

d31767232ad908bd.png

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:

  1. Kliknij + (znak plus) obok opcji Warunek.
  2. Dodaj scene.slots.status == "FINAL" && session.params.chosenOptions == "translator" w polu inny niż.
  3. Wybierz Wyślij monity.
  4. 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.
  1. Kliknij Zapisz.

C1af65e70dbf3dfe.png

Dostosuj majątku compass

Aby dodać warunek i dostosować powiadomienie wyświetlane, gdy użytkownik wybierze opcję „Kompas”:

  1. Kliknij + (znak plus) obok opcji Warunek.
  2. Dodaj scene.slots.status == "FINAL" && session.params.chosenOptions == "compass" w polu tekstowym jeśli jest.
  3. Wybierz Wyślij monity.
  4. 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.
  1. 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:

  1. Na pasku nawigacyjnym kliknij Przetestuj.
  2. Wpisz Talk to my test app w polu Dane wejściowe i naciśnij Enter.
  3. Wpisz Yes w polu Dane wejściowe i naciśnij Enter. Możesz też kliknąć element Tak w sugestii.
  4. Kliknij, wpisz lub powiedz Translator.

29e17f950bd0dd71.png

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:

  1. Na pasku nawigacyjnym kliknij Programowanie.
  2. W sekcji Sceny kliknij + (znak plus).
  3. Wpisz Again i naciśnij Enter.
  4. Kliknij scenę Again na pasku nawigacyjnym.
  5. Kliknij + (znak plusa) obok opcji Przy włączaniu.
  6. 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'
  1. 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:

  1. Kliknij scenę Wróżenie.
  2. Kliknij pierwszy warunek (scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"), by otworzyć okno opcji.
  3. Przewiń i wybierz Again w sekcji Przejście.
  4. Kliknij Zapisz.
  5. Kliknij drugi warunek, aby otworzyć okno opcji.
  6. Przewiń i wybierz Again w sekcji Przejście.
  7. Kliknij Zapisz.
  8. Kliknij trzeci warunek, aby otworzyć okno opcji.
  9. Przewiń i wybierz Again w sekcji Przejście.
  10. 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:

  1. Na pasku nawigacyjnym kliknij Przetestuj.
  2. Wpisz Talk to my test app w polu Dane wejściowe i naciśnij Enter.
  3. Wpisz Yes w polu Dane wejściowe i naciśnij Enter. Możesz też kliknąć element Tak w sugestii.
  4. Kliknij, wpisz lub powiedz dragon.

b299e9fed9aedb69.png

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:

  1. Na pasku nawigacyjnym kliknij Programowanie.
  2. Kliknij scenę Again.
  3. Kliknij + (znak plus) obok pozycji Obsługa intencji użytkownika.
  4. Wybierz yes (tak) z menu intencji.
  5. Wybierz Fortune z menu Przejście.
  6. Kliknij Zapisz.

C2efba35ea881b0d.png

  1. Kliknij + (znak plus) obok pozycji Obsługa intencji użytkownika.
  2. Wybierz nie z menu intencji.
  3. Wybierz Zakończ rozmowę z menu Przejście.
  4. 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.
  1. 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:

  1. Na pasku nawigacyjnym kliknij Przetestuj.
  2. Wpisz Talk to my test app w polu Dane wejściowe i naciśnij Enter.
  3. Wpisz Yes w polu Dane wejściowe i naciśnij Enter. Możesz też kliknąć element Tak w sugestii.
  4. Kliknij, wpisz lub powiedz jedną z opcji.
  5. Wpisz Yes w polu Dane wejściowe i naciśnij Enter.

5d0690332efe2e29.png

Powinien wyświetlić się komunikat: "Co wybierasz do pomocy w kursie, smoku, tłumaczu czy kompasie?

Aby przetestować intencję no, wykonaj te czynności:

  1. Kliknij, wpisz lub powiedz jedną z opcji.
  2. W polu do wprowadzania tekstu wpisz No i naciśnij Enter.

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 FortuneCo 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:

  1. Na pasku nawigacyjnym kliknij Programowanie.
  2. Kliknij + (znak plusa) w sekcji Typy.
  3. Wpisz unavailable_options i naciśnij Enter.
  4. Kliknij unavailable_options, aby otworzyć opcje.
  5. W sekcji Dodaj wpisy wpisz te wpisy i odpowiadające im wartości:

horse

horse, stallion, steed

magic

magic, enchanted, spells

money

money, cash, gold

phone

phone, cell, apps

Tabela klucz-wartość powinna wyglądać tak:

C9E119e0f5fb2a47.png

  1. 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:

  1. W sekcji Niestandardowi odbiorcy o podobnych zamiarach kliknij + (znak plus).
  2. Wpisz other_option i naciśnij Enter.
  3. Kliknij other_option, aby otworzyć okno.
  4. 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
  1. W sekcji Dodaj parametry intencji zmień nazwę parametru na chosenUnavailableOption.
  2. 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.

DF61D4489f0910.png

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:

  1. Kliknij scenę Wróżenie.
  2. Kliknij + (znak plus) obok pozycji Obsługa intencji użytkownika.
  3. Wybierz other_option z menu intencji.
  4. 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.

  1. Kliknij Zapisz.

4bab1efbe21056aa.png,

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:

  1. Na pasku nawigacyjnym kliknij Przetestuj.
  2. Wpisz Talk to my test app w polu Dane wejściowe i naciśnij Enter.
  3. Wpisz Yes w polu Dane wejściowe i naciśnij Enter. Możesz też kliknąć element Tak w sugestii.
  4. Wpisz magic w polu Dane wejściowe i naciśnij Enter.

3a42c33eca435f32.png

Zdarza się, że znak zapytania nie brzmi poprawnie, gdy użytkownik wybierze opcję „magic&quot” 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:

  1. Na pasku nawigacyjnym kliknij Programowanie.
  2. Kliknij scenę Fortune.
  3. W sekcji Obsługa intencji użytkownika kliknij Gdy wybrana jest inna opcja, aby otworzyć okno.
  4. Odznacz pole wyboru Wysyłaj potwierdzenia.
  5. Zaznacz pole wyboru Zadzwoń do webhooka.
  6. W polu tekstowym modułu obsługi zdarzeń wpisz unavailable_options.

52a0fba115f1b377.png

  1. 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:

  1. Kliknij Webhook na pasku nawigacyjnym.
  2. 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);
});
  1. Dodaj ten kod do sekcji const app = conversation();:
const optionsNeedA = new Set();
optionsNeedA.add('horse').add('phone');
  1. Kliknij Save Fulfillment (Zapisz realizację).
  2. 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 obiektu conv i przypisuje option do właściwości original, która jest nieprzetworzona
  • Przypisuje optionKey do właściwości resolved, która jest kluczem typu unavailable_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:

  1. Na pasku nawigacyjnym kliknij Przetestuj.
  2. Kliknij lub wpisz Talk to my test app w polu Wejście i naciśnij Enter.
  3. Wpisz Yes w polu Dane wejściowe i naciśnij Enter. Możesz też kliknąć element Tak w sugestii.
  4. Wpisz magic w polu Dane wejściowe i naciśnij Enter.
  5. Wpisz horse w polu Dane wejściowe i naciśnij Enter.

54ee24c5c3c56e.png

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:

  1. Aby usunąć projekt i zasoby Cloud, wykonaj czynności opisane w sekcji Wyłączanie (usuwanie) projektów.
  1. 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:

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ę.