1. Przegląd
Platforma programistyczna Asystenta Google umożliwia tworzenie oprogramowania rozszerzającego funkcjonalność Asystenta Google, wirtualnego asystenta osobistego, na ponad miliard urządzeń, w tym inteligentne głośniki, telefony, samochody, telewizory, słuchawki i nie tylko. Użytkownicy angażują Asystenta w rozmowę, aby załatwić sprawę, na przykład kupić artykuły spożywcze lub zarezerwować przejazd. Jako programista możesz korzystać z platformy programistycznej Asystenta, aby łatwo tworzyć atrakcyjne i skuteczne konwersacje między użytkownikami a własną zewnętrzną usługą realizacji oraz zarządzać nimi.
To ćwiczenie z programowania obejmuje koncepcje na poziomie średniozaawansowanym dotyczące programowania za pomocą Asystenta Google, Cloud Functions i Cloud Firestore. Podczas tych zajęć z programowania utworzysz grę o nazwie „Praktyka pisowni”, która używa Asystenta Google do proszenia użytkowników o pisownię słów.
Co zbudujesz
Podczas tych zajęć z programowania zbudujesz zaawansowaną grę o następujących funkcjach:
- Otrzymuje od użytkownika odpowiedzi dotyczące pisowni i w zależności od wartości modyfikuje podpowiedzi konwersacyjne
- Odpowiada podpowiedziami dotyczącymi pisowni słowa, takimi jak jego definicja lub powtórzenie słowa
- Tworzy pętlę gry, dzięki której użytkownik może ponownie wejść w interakcję z Asystentem po pisowni słowa
Zanim zaczniesz budować, możesz wejść w interakcję z akcją na żywo na swoim urządzeniu obsługującym Asystenta Google, mówiąc „Hej, Google, porozmawiaj z Działem Ortografii”. Domyślna ścieżka tej akcji dla powracającego użytkownika wygląda następująco:
Po ukończeniu tych ćwiczeń z programowania ukończona Akcja będzie miała następujący przebieg konwersacji:
Czego się dowiesz
- Jak wchodzić w interakcję z Cloud Firestore
- Jak używać slotów do zbierania danych od użytkownika
- Jak przetworzyć dane wejściowe użytkownika i zwrócić odpowiedź
- Jak używać warunków, aby dodać logikę do sceny
- Jak dodać pętlę gry
Co będziesz potrzebował
Wymagania wstępne dotyczące tego ćwiczenia z programowania obejmują:
- Przeglądarka internetowa, taka jak Google Chrome
- IDE do pisania funkcji w chmurze.
- Metoda płatności. To ćwiczenie z programowania wykorzystuje Cloud Functions dla Firebase, co wymaga, aby Twój projekt był objęty planem cenowym Firebase Blaze ( Dowiedz się więcej ).
- Terminal do uruchamiania poleceń powłoki
- Node.js 10 lub nowszy
2. Uzyskaj kod funkcji
Sklonuj repozytorium GitHub z wiersza poleceń:
$ git clone https://github.com/FirebaseExtended/codelab-actions-firestore
3. Utwórz projekt Firebase i skonfiguruj aplikację
Utwórz projekt Firebase
- Zaloguj się do Firebase .
- W konsoli Firebase kliknij Dodaj projekt (lub Utwórz projekt ), a następnie nazwij swój projekt Firebase
Spelling-Practice
.
- Kliknij opcje tworzenia projektu. Jeśli pojawi się monit, zaakceptuj warunki Firebase. Pomiń konfigurowanie Google Analytics, ponieważ nie będziesz używać Analytics w tej aplikacji.
Aby dowiedzieć się więcej o projektach Firebase, zobacz Omówienie projektów Firebase .
Przejdź na plan cenowy Blaze
Aby korzystać z Cloud Functions dla Firebase, musisz uaktualnić swój projekt Firebase do planu cenowego Blaze , co oznacza, że do swojego projektu dołączysz konto rozliczeniowe Google Cloud. Wymaga to podania karty kredytowej lub innej metody płatności.
Wszystkie projekty Firebase, w tym te objęte planem Blaze, nadal mają dostęp do bezpłatnych limitów wykorzystania Cloud Functions. Kroki opisane w tym ćwiczeniu z programowania będą mieścić się w bezpłatnych limitach użytkowania. Będziesz jednak pobierać niewielkie opłaty ( około 0,03 USD ) za usługę Cloud Storage, która jest używana do hostowania obrazów kompilacji Cloud Functions.
4. Zainstaluj interfejs wiersza polecenia Firebase
Interfejs Firebase CLI (interfejs wiersza poleceń) umożliwia wdrożenie funkcji Cloud Functions.
Istnieje kilka opcji instalacji Firebase CLI w zależności od systemu operacyjnego i przypadku użycia. Poniższe kroki opisują najczęstszą opcję, jeśli korzystasz także z Cloud Functions.
- Upewnij się, że zainstalowałeś npm , który zazwyczaj jest dostarczany z Node.js .
- Zainstaluj lub zaktualizuj interfejs CLI, uruchamiając następującą komendę npm:
$ npm -g install firebase-tools
- Sprawdź, czy interfejs CLI został poprawnie zainstalowany, uruchamiając:
$ firebase --version
Upewnij się, że wersja Firebase CLI to 9.0.0 lub nowsza, aby zawierała wszystkie najnowsze funkcje wymagane przez Cloud Functions. Jeśli nie, uruchom npm install -g firebase-tools, aby dokonać aktualizacji, jak pokazano powyżej.
- Autoryzuj interfejs CLI Firebase, uruchamiając:
$ firebase login
- W katalogu Spelling-functions-start skonfiguruj interfejs CLI Firebase do korzystania z projektu Firebase. Uruchom następujące polecenie, wybierz identyfikator projektu i postępuj zgodnie z instrukcjami. Po wyświetleniu monitu możesz wybrać dowolny alias, na przykład
codelab
.
$ firebase use --add
5. Katalog funkcji
Teraz dodasz funkcjonalność, korzystając z pakietu SDK Firebase dla funkcji w chmurze, aby zbudować zaplecze gry, Ćwiczenie pisowni .
Cloud Functions umożliwia korzystanie z kodu działającego w chmurze bez konieczności konfigurowania serwera. W tym laboratorium z programowania dowiesz się, jak tworzyć funkcje reagujące na zdarzenia Firebase Authentication, Cloud Storage i Firebase Realtime Database. Zacznijmy od uwierzytelnienia.
Podczas korzystania z pakietu SDK Firebase dla Cloud Functions kod funkcji będzie znajdować się w katalogu functions
(domyślnie). Aby Ci to ułatwić, stworzyliśmy już functions/index.js
, w którym będzie umieszczony Twój kod. Zanim przejdziesz dalej, możesz sprawdzić katalog functions
.
$ cd functions $ ls
Twój kod funkcji jest również aplikacją Node.js i dlatego potrzebuje package.json
, który zawiera pewne informacje o Twojej aplikacji i listę zależności.
Jeśli nie znasz Node.js , warto dowiedzieć się o nim więcej przed kontynuowaniem ćwiczeń z kodowania.
Plik package.json
zawiera już listę dwóch wymaganych zależności: pakietu SDK Firebase dla funkcji w chmurze i pakietu SDK administratora Firebase . Aby zainstalować je lokalnie, uruchom npm install
z katalogu functions
:
$ npm install
Przyjrzyjmy się teraz plikowi index.js
:
indeks.js
/** * Copyright 2021 Google Inc. All Rights Reserved. * ... */ // TODO(DEVELOPER): Import the Cloud Functions for Firebase and Firebase Admin modules here. Also import the Actions SDK here. // TODO(DEVELOPER): Write the getWordDetailsFromDictionaryAPI function here. // TODO(DEVELOPER): Write the createSpellingPracticeWord function here. // TODO(DEVELOPER): Write the app Handle getSpellingWordList function here. // TODO(DEVELOPER): Write the app Handle getSpellingWord function here. // TODO(DEVELOPER): Write the app Handle repeatSpellingWord function here. // TODO(DEVELOPER): Write the app Handle definitionOfSpellingWord function here. // TODO(DEVELOPER): Write the app Handle verifySpellingWord function here.
Najpierw zaimportujesz wymagane moduły, a następnie napiszesz cztery funkcje w miejsce TODO. Przejdź do następnego kroku ćwiczeń z programowania, aby zaimportować moduły.
6. Zaimportuj wymagane moduły
To ćwiczenie z programowania wymaga trzech modułów.
- Moduł
firebase-functions
pozwala nam pisać wyzwalacze dla naszych funkcji w chmurze - Moduł
firebase-admin
pozwala nam na korzystanie z platformy Firebase na serwerze z dostępem administratora, na przykład w celu zapisu do Cloud Firestore. - Biblioteka realizacji Actions SDK Node.js obsługuje moduły obsługi Actions SDK dla Asystenta Google.
- Zainstaluj zestaw Actions SDK, uruchamiając następującą komendę npm:
$ npm install @assistant/conversation
- W pliku
index.js
zamień pierwsze TODO na poniższe.
Zmiany te importują każdy z wymaganych modułów.
Ponadto pakiet Firebase Admin SDK można skonfigurować automatycznie po wdrożeniu w środowisku Cloud Functions lub innym kontenerze Google Cloud. To właśnie się dzieje, gdy wywołujemy admin.initializeApp();
w poniższych zmianach.
indeks.js
/** * Copyright 2021 Google Inc. All Rights Reserved. * ... */ // Import the Actions SDK const {conversation} = require('@assistant/conversation'); const https = require('https'); const app = conversation(); const cors = require('cors')({origin: true}); // Import the Firebase SDK for Cloud Functions. const functions = require('firebase-functions'); // Import and initialize the Firebase Admin SDK. const admin = require('firebase-admin'); admin.initializeApp(); // To access Cloud Firestore const db = admin.firestore(); // TODO(DEVELOPER): Write the getWordDetailsFromDictionaryAPI function here. // TODO(DEVELOPER): Write the createSpellingPracticeWord function here. // TODO(DEVELOPER): Write the shuffleWordList function here. // TODO(DEVELOPER): Write the app Handle getSpellingWordList function here. // TODO(DEVELOPER): Write the app Handle getSpellingWord function here. // TODO(DEVELOPER): Write the app Handle repeatSpellingWord function here. // TODO(DEVELOPER): Write the app Handle definitionOfSpellingWord function here. // TODO(DEVELOPER): Write the app Handle verifySpellingWord function here.
Dodajmy teraz logikę biznesową za pomocą funkcji obsługujących Akcje Asystenta.
7. Utwórz funkcje
Uzyskaj definicje słów i zapisz je w Cloud Firestore
Aby uzyskać definicje słów, użyjesz publicznego interfejsu API dictionaryapi.dev
.
W pliku index.js
zamień TODO dla getWordDetailsFromDictionaryAPI
na następujący:
indeks.js
// Retrieves word definition and audio pronunciation from api.dictionaryapi.dev service // Function uses service provided by https://dictionaryapi.dev/ async function getWordDetailsFromDictionaryAPI(word) { let responseData=""; let req = https.request({ host: 'api.dictionaryapi.dev', port: 443, path:'/api/v2/entries/en/' + word, method:'GET' }, (res) => { res.setEncoding('utf8'); res.on('data', d => { responseData+=d; }) res.on('end',function(){ let object = JSON.parse(responseData) const wordListRef = db.collection('wordlist'); wordListRef.doc(object[0].word).set( object[0] ); return responseData; }); }); req.end(); }
Dodaj aktywator Cloud Firestore
Następnie utworzysz funkcję chmury, która będzie uruchamiana za każdym razem, gdy w Cloud Firestore zostanie utworzony nowy dokument. Wywoła API dictionaryapi.dev
, aby uzyskać definicje słów za pomocą funkcji getWordDetailsFromDictionaryAPI
którą napisaliśmy powyżej.
W pliku index.js
zamień TODO dla createSpellingPracticeWord
na następujący:
indeks.js
// Aktywator Firestore, który pobiera definicje słów poprzez getWordDetailsFromDictionaryAPI dla każdego nowego dokumentu Firestore
exports.createSpellingPracticeWord = functions.firestore .document('wordlist/{word}') .onCreate((snap, context) => { const newValue = snap.data(); const word = newValue.word; getWordDetailsFromDictionaryAPI(word); });
Uzyskaj listę słów do gry
Możesz napisać funkcję Cloud, która pobiera listę słów do ćwiczeń pisowni z Cloud Firestore dla Asystenta. W tym celu używamy modułu obsługi aplikacji.
W pliku index.js
zamień TODO dla getSpellingWordList
na poniższy.
Dodanie tej funkcji do specjalnego app.handle
to sposób na udostępnienie tej funkcji z poziomu Asystenta.
indeks.js
// Store the list of spelling words in Assistant session app.handle('getSpellingWordList', conv => { const wordListRef = db.collection('wordlist').limit(50); const snapshot = wordListRef; if (snapshot.empty) { console.log('No matching documents.'); return; } VocabularyList = [] return snapshot.get().then(snapshot => { snapshot.forEach(doc => { if (doc.data().word) { let definition = 'unknown'; let audio = 'unknown'; try { if(doc.data().hasOwnProperty('meanings')) { if(doc.data().meanings[0].hasOwnProperty('definitions')) { definition = doc.data().meanings[0].definitions[0].definition; } } if(doc.data().hasOwnProperty('phonetics')) { if(doc.data().phonetics.length > 0) audio = doc.data().phonetics[0].audio; } } catch (error) { console.log(error); } let obj = { word: doc.data().word, answer: doc.data().word.split("").join(" "), definition: definition, audio: audio } VocabularyList.push(obj); } // Shuffle the array let currentIndex = VocabularyList.length, temporaryValue, randomIndex; while (0 !== currentIndex) { randomIndex = Math.floor(Math.random() * currentIndex); currentIndex -= 1; temporaryValue = VocabularyList[currentIndex]; VocabularyList[currentIndex] = VocabularyList[randomIndex]; VocabularyList[randomIndex] = temporaryValue; } conv.session.params.vocabWord = VocabularyList; conv.session.params.vocabWordIndex = 0; }); }); })
Uzyskaj wiadomość od sesji Asystenta
Możesz napisać funkcję Cloud, która zwraca następne słowo pisowni z listy słów.
W pliku index.js
zamień TODO dla getSpellingWord
na następujący:
indeks.js
// Returns a spelling practice word to Google Assistant and uses Speech Synthesis Markup Language (SSML) to format the response app.handle('getSpellingWord', conv => { if (!conv.session.params.vocabWord.empty) { conv.session.params.vocabWordIndex+=1; const ssml = '<speak>' + '<audio src="'+ conv.session.params.vocabWord[conv.session.params.vocabWordIndex].audio +'">Use phonetics to spell the word.</audio> ' + '</speak>'; conv.add(ssml); } else conv.add('Great job! You completed the Spelling practice'); });
Włącz grę, aby powtórzyć słowo
Możesz napisać funkcję Cloud, która powtarza bieżące słowo w grze.
W pliku index.js
zamień TODO dla repeatSpellingWord
na następujący:
indeks.js
// Returns current spelling word app.handle('repeatSpellingWord', conv => { if (!conv.session.params.vocabWord.empty) { const ssml = '<speak>' + '<audio src="'+ conv.session.params.vocabWord[conv.session.params.vocabWordIndex].audio +'">Use phonetics to spell the word. </audio> ' + '</speak>'; conv.add(ssml); } else conv.add('Great job! You completed the Spelling practice'); });
Zapoznaj się z definicją słowa
Możesz napisać funkcję chmury, która zapewni definicję bieżącego słowa w grze.
W pliku index.js
zamień TODO na definitionOfSpellingWord
na następujący:
indeks.js
// Returns spelling word definition from Assistant session parameter app.handle('definitionOfSpellingWord', conv => { conv.add( 'It means ' + conv.session.params.vocabWord[conv.session.params.vocabWordIndex].definition); });
Sprawdź pisownię użytkownika
Możesz napisać funkcję w chmurze, która weryfikuje odpowiedź użytkownika dotyczącą pisowni bieżącego słowa w grze.
W pliku index.js
zamień TODO dla verifySpellingWord
na następujący:
indeks.js
// Verifies user spelling response app.handle('verifySpellingWord', conv => { try { userResponse = conv.intent.params.userresponse.resolved.join(""); if (userResponse.toLowerCase() === conv.session.params.vocabWord[conv.session.params.vocabWordIndex].word.toLowerCase()) { conv.add('You are correct. Say next to continue.'); } else { conv.add('Sorry, wrong answer. The correct answer is ' + conv.session.params.vocabWord[conv.session.params.vocabWordIndex].answer + ' . Say next to continue.'); } } catch (error) { conv.add('Sorry. I did not understand your response' ); } }); exports.ActionsOnGoogleFulfillment = functions.https.onRequest(app);
Wdróż wszystkie swoje funkcje
Twoje funkcje Cloud Functions będą aktywne dopiero po wdrożeniu ich w Firebase.
W katalogu głównym katalogu spelling-functions-start
uruchom następującą komendę:
$ firebase deploy --only functions
To jest wyjście konsoli, które powinieneś zobaczyć:
i deploying functions i functions: ensuring necessary APIs are enabled... ⚠ functions: missing necessary APIs. Enabling now... i env: ensuring necessary APIs are enabled... ⚠ env: missing necessary APIs. Enabling now... i functions: waiting for APIs to activate... i env: waiting for APIs to activate... ✔ env: all necessary APIs are enabled ✔ functions: all necessary APIs are enabled i functions: preparing functions directory for uploading... i functions: packaged functions (X.XX KB) for uploading ✔ functions: functions folder uploaded successfully i starting release process (may take several minutes)... i functions: creating function createSpellingPracticeWord(us-central1)... ✔ functions[createSpellingPracticeWord(us-central1)]: Successful create operation. i functions: creating function ActionsOnGoogleFulfillment(us-central1)... ✔ functions[ActionsOnGoogleFulfillment(us-central1)]: Successful create operation. ✔ Deploy complete! Project Console: https://console.firebase.google.com/project/spelling-practice-1234/overview
Zanotuj adres URL punktu końcowego HTTP funkcji ActionsOnGoogleFulfillment do późniejszego wykorzystania. Aby uzyskać punkt końcowy, otwórz konsolę Firebase , a następnie kliknij projekt ćwiczeń pisowni . Otwórz pulpit nawigacyjny Funkcje, aby wyświetlić punkt końcowy funkcji.
Zakończyłeś dodawanie wszystkich wymaganych funkcji. Przejdźmy teraz do konfiguracji Cloud Firestore.
8. Włącz Cloud Firestore
Musisz włączyć Cloud Firestore.
W sekcji Kompilacja konsoli Firebase kliknij Firestore . Następnie kliknij opcję Utwórz bazę danych .
Dostęp do danych w Cloud Firestore jest kontrolowany przez reguły bezpieczeństwa. Najpierw musisz ustawić kilka podstawowych zasad dotyczących danych, aby rozpocząć. Kliknij Firestore, a następnie na karcie Reguły konsoli Firebase dodaj następujące reguły, a następnie kliknij Publikuj .
Poniższe reguły ograniczają dostęp do danych do zalogowanych użytkowników, co uniemożliwia nieuwierzytelnionym użytkownikom czytanie i pisanie.
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { // // WARNING: These rules are insecure! We will replace them with // more secure rules later in the codelab // allow read, write: if request.auth != null; } } }
9. Dodaj dane dotyczące pisowni do Cloud Firestore
Na tym etapie zapiszesz dane dotyczące pisowni słów w Cloud Firestore, aby móc wygenerować listę słów dla Asystenta (i gry).
Dane Cloud Firestore są podzielone na kolekcje, dokumenty, pola i podzbiory. Każde słowo w grze będzie przechowywane jako osobny dokument w kolekcji najwyższego poziomu zwanej wordlist
. Dla każdego nowego dokumentu w kolekcji Firestore zostanie uruchomiona funkcja createSpellingPracticeWord w celu pobrania szczegółów słowa z usługi Dictionary API .
Utwórz kolekcję Cloud Firestore
- W konsoli Firebase przejdź do sekcji Cloud Firestore.
- Kliknij + Rozpocznij zbieranie .
- W polu tekstowym Identyfikator kolekcji wprowadź
wordlist
, a następnie kliknij Dalej .
Następnie stworzymy dokument dla słowa: umowa
- W polu tekstowym Identyfikator dokumentu wpisz
agreement
. - W polu tekstowym Pole wpisz
word
, a w polu tekstowym Wartość wpiszagreement
. - Kliknij Zapisz .
Dodanie tego dokumentu do Cloud Firestore uruchamia funkcję createSpellingPracticeWord w celu pobrania szczegółów definicji słowa. Dodaj więcej słów (na przykład: podziw, samochód, prawda, powiedz, lepiej, dojazd do pracy, ...), tworząc nowy dokument dla każdego słowa.
10. Skonfiguruj Asystenta Google
W poniższych sekcjach opisano, jak skonfigurować środowisko programistyczne Asystenta Google i utworzyć projekt Actions.
Sprawdź ustawienia uprawnień Google
Aby przetestować akcję zbudowaną w ramach tych zajęć z kodowania, musisz włączyć niezbędne uprawnienia, aby symulator mógł uzyskać dostęp do Twojej akcji. Aby włączyć uprawnienia, wykonaj następujące kroki:
- Przejdź do strony Sterowanie aktywnością .
- Zaloguj się na swoje konto Google, jeśli jeszcze tego nie zrobiłeś.
- Włącz następujące uprawnienia:
- Aktywność w internecie i aplikacjach
- W sekcji Aktywność w internecie i aplikacjach zaznacz pole wyboru Uwzględnij historię Chrome oraz aktywność w witrynach, aplikacjach i urządzeniach korzystających z usług Google .
Utwórz projekt działań
Twój projekt Actions jest kontenerem na Twoją Akcję. Aby utworzyć projekt Actions na potrzeby tych zajęć z programowania, wykonaj następujące kroki:
- Otwórz konsolę Akcje .
- Kliknij Nowy projekt .
- Zaakceptuj warunki korzystania z usługi
- Wpisz lub wybierz
spelling-practice-codelab
, który utworzyłeś za pomocą konsoli Firebase. (Nazwa służy do celów wewnętrznych. Później możesz ustawić zewnętrzną nazwę dla swojego projektu.)
- Kliknij opcję Importuj projekt .
- W sekcji Jakiego rodzaju akcję chcesz zbudować? wybierz kartę Niestandardowa .
- Kliknij Następny .
- Wybierz pustą kartę projektu .
- Kliknij Rozpocznij budowanie .
- Wpisz Spelling Practice dla wyświetlanej nazwy i kliknij Zapisz.
Użytkownicy rozpoczynają rozmowę z Twoją Akcją poprzez wywołanie . Na przykład użytkownicy mogą wywołać Twoją akcję, wypowiadając frazę „Hej Google, porozmawiaj z praktyką pisowni”, gdzie praktyka pisowni jest nazwą wyświetlaną.
Twoja akcja musi mieć nazwę wyświetlaną, jeśli chcesz ją wdrożyć w środowisku produkcyjnym; jednak, aby przetestować akcję, nie musisz definiować nazwy wyświetlanej. Zamiast tego możesz użyć w symulatorze frazy „Porozmawiaj z moją aplikacją testową”, aby wywołać akcję.
Skonfiguruj realizację
Musisz połączyć się z Asystentem procedurami obsługi zdarzeń dla Cloud Functions, które napisałeś i wdrożyłeś wcześniej w tym laboratorium.
Aby skonfigurować realizację, wykonaj następujące kroki:
- Kliknij opcję Webhook w bocznej nawigacji.
- Wybierz punkt końcowy HTTPS jako opcję realizacji:
- Wpisz adres URL punktu końcowego swojej funkcji w polu tekstowym Punkt końcowy HTTPs , a następnie kliknij Zapisz .
W następnej sekcji dostosujesz monit dotyczący głównego wywołania w konsoli Akcje.
Skonfiguruj wywołanie główne
Musisz edytować główne wywołanie , aby zdefiniować, co się stanie, gdy użytkownik wywoła Twoją akcję.
Domyślnie Konstruktor Akcji wyświetla ogólny monit po uruchomieniu wywołania ( „Rozpocznij budowanie swojej Akcji od zdefiniowania głównego wywołania.”).
Aby zmodyfikować monit wysyłany przez akcję do użytkownika, gdy ten wywoła akcję, wykonaj następujące kroki:
- Kliknij opcję Wywołanie główne w nawigacji.
- Zaznacz opcję
Call your webhook
i dodaj nazwę procedury obsługi zdarzeńgetSpellingWordList
w polu tekstowym. - W edytorze kodu zastąp tekst w polu
speech
następującym komunikatem powitalnym:Welcome to Spelling Practice
Uwaga: do edytowania podpowiedzi możesz użyć formatu YAML lub JSON .
- Kliknij Zapisz .
Przetestuj główne wywołanie w symulatorze
Konsola Actions udostępnia narzędzie internetowe do testowania akcji zwane symulatorem . Interfejs symuluje urządzenia sprzętowe i ich ustawienia, dzięki czemu możesz rozmawiać ze swoją Action tak, jakby była uruchomiona na inteligentnym ekranie, telefonie, głośniku lub systemie KaiOS.
Aby przetestować główne wywołanie akcji w symulatorze, wykonaj następujące kroki:
- Na górnym pasku nawigacyjnym kliknij Test , aby przejść do symulatora.
- Aby wywołać akcję w symulatorze, wpisz
Talk to Spelling Practice
w polu wejściowym w lewym górnym rogu, a następnie naciśnij klawisz Enter na klawiaturze.
Kiedy uruchomisz główne wywołanie Akcji, Asystent odpowie spersonalizowaną wiadomością powitalną. W tym momencie rozmowa kończy się po tym, jak Asystent odpowie powitaniem.
Wyświetl dzienniki zdarzeń
Gdy jesteś na karcie Test , panel po prawej stronie pokazuje dzienniki zdarzeń , które wyświetlają historię rozmów w postaci dzienników zdarzeń. Każdy dziennik zdarzeń wyświetla zdarzenia, które miały miejsce podczas tej tury rozmowy. Aby wyświetlić dziennik zdarzeń, kliknij szarą ikonę przed wydarzeniem.
Twoja akcja ma obecnie jeden dziennik zdarzeń, który pokazuje zarówno dane wprowadzone przez użytkownika ( „Porozmawiaj z praktyką pisowni” ), jak i odpowiedź Twojej akcji. Poniższy zrzut ekranu przedstawia dziennik zdarzeń Twojej akcji:
11. Zbuduj rozmowę na potrzeby ćwiczeń ortograficznych
Teraz, gdy zdefiniowałeś, co się stanie, gdy użytkownik wywoła Twoją Akcję, możesz opracować dalszą część konwersacji na temat Akcji. Ćwiczenie pisowni składa się z czterech scen i każdą ze scen należy aktywować, zanim będzie można ją uruchomić. Najczęstszym sposobem aktywowania sceny jest skonfigurowanie akcji w taki sposób, aby gdy użytkownik dopasuje intencję użytkownika w scenie, intencja ta wyzwalała przejście do innej sceny i aktywowała ją.
Przejście od głównego wywołania do sceny początkowej
W tej sekcji tworzysz nową scenę o nazwie Start
, która wysyła do użytkownika pytanie, czy chce rozpocząć grę w Ćwiczenia pisowni . Dodajesz także przejście z głównego wywołania do nowej sceny Start
.
Aby utworzyć tę scenę i dodać do niej przejście, wykonaj następujące kroki:
- Kliknij opcję Rozwijaj w górnym panelu nawigacyjnym. Następnie kliknij Wywołanie główne w lewym panelu nawigacyjnym.
- W sekcji Przejście po prawej stronie kliknij menu rozwijane, a następnie wpisz
Start
w polu tekstowym.
- Kliknij Dodaj . Tworzy to scenę o nazwie
Start
i informuje Akcję o przejściu do scenyStart
po tym, jak Akcja wyświetli użytkownikowi monit powitalny. - Kliknij Sceny w lewym panelu nawigacyjnym, aby wyświetlić listę scen.
- W obszarze Sceny kliknij przycisk Start , aby wyświetlić scenę
Start
. - Kliknij + w sekcji Po wejściu sceny
Start
. - Wybierz opcję Wyślij monity .
- Zastąp zdanie w polu
speech
(Enter the response that users will see or hear...
) pytaniem, które należy zadać użytkownikowi:Use phonetic alphabet to spell the word. For example alpha for a, bravo for b, charlie for c etc. Do you want to continue?
Elementy sugestii oferują klikalne sugestie dla użytkownika, które Twoja Akcja przetwarza jako dane wejściowe użytkownika. W tej sekcji możesz dodać żetony sugestii, które pojawią się pod właśnie skonfigurowanym monitem ( Do you want to play
Spelling Practice
?
) w celu obsługi użytkowników na urządzeniach z ekranami.
Aby dodać elementy sugestii do zachęty sceny Start
, wykonaj następujące kroki:
- W scenie
Start
kliknij sugestie poniżej edytora kodu. Ta akcja dodaje pojedynczy żeton sugestii. - W polu
title
zamieńSuggested Response
na'Yes'
. - Używając tego samego formatowania, ręcznie dodaj sugestię zatytułowaną
'No'
i'Help with Phonetics'
. Twój kod powinien wyglądać jak następujący fragment: - Kliknij Zapisz .
Przetestuj swoją akcję w symulatorze
W tym momencie Twoja Akcja powinna przejść od głównego wywołania do sceny Start i zapytać użytkownika, czy chce kontynuować. Na symulowanym ekranie powinny także pojawić się żetony sugestii.
Aby przetestować akcję w symulatorze, wykonaj następujące kroki:
- Na pasku nawigacyjnym kliknij Test , aby przejść do symulatora.
- Aby przetestować akcję w symulatorze, wpisz
Talk to Spelling Practice
w polu wejściowym. - Naciśnij enter . Twoja akcja powinna odpowiedzieć monitem
Main invocation
i dodanym monitem scenyStart
: „Witamy w praktyce pisowni. Do przeliterowania słowa użyj alfabetu fonetycznego. Na przykład alfa dla a, bravo dla b, charlie dla c itd. Czy chcesz Kontynuować?" .
Poniższy zrzut ekranu przedstawia tę interakcję:
- Kliknij sugestię
Yes
lubNo
alboHelp with Phonetics
aby odpowiedzieć na monit. (Możesz także powiedzieć „Tak” , „Nie” lub „Pomoc w zakresie fonetyki” albo wpisaćYes
” lubNo
alboHelp with Phonetics
w polu wprowadzania .)
Gdy odpowiesz na monit, akcja wyświetli komunikat wskazujący, że nie może zrozumieć wprowadzonych danych: „Przepraszam, nie zrozumiałem. Czy możesz spróbować jeszcze raz?” Ponieważ nie skonfigurowałeś jeszcze swojej akcji, aby rozumieć i reagować na dane wejściowe „Tak” lub „Nie” , Twoja Akcja dopasowuje Twoje dane wejściowe do intencji NO_MATCH
.
Domyślnie intencja systemowa NO_MATCH
zapewnia ogólne odpowiedzi, ale możesz dostosować te odpowiedzi, aby wskazać użytkownikowi, że nie zrozumiałeś jego wkładu. Asystent kończy rozmowę użytkownika z Twoją akcją, gdy trzykrotnie nie będzie w stanie dopasować danych wprowadzonych przez użytkownika.
Dodaj nie i intencje fonetyczne
Teraz, gdy użytkownicy mogą odpowiedzieć na pytanie zadane przez Twoją akcję, możesz skonfigurować akcję tak, aby rozumiała odpowiedzi użytkowników ( „Tak” lub „Nie” lub „Pomoc dotycząca fonetyki” ). W poniższych sekcjach tworzysz intencje użytkownika, które są dopasowane, gdy użytkownik powie „Tak” lub „Nie” lub „Pomoc w zakresie fonetyki” i dodajesz te intencje do sceny Start
. Użyjemy intencji systemowej yes
i utworzymy inne intencje.
Nie twórz no
zamiarów
Teraz musisz stworzyć intencję no
zrozumienia i zareagowania na użytkownika, gdy nie chce grać w grę. Aby utworzyć tę intencję, wykonaj następujące kroki:
- Kliknij opcję Rozwijaj w nawigacji.
- Kliknij opcję Niestandardowe intencje w nawigacji, aby otworzyć listę intencji.
- Kliknij + (znak plus) na końcu listy intencji. Nadaj nowemu zamiarowi nazwę
no
i naciśnij klawisz Enter . - Kliknij Nie , aby otworzyć stronę
no
zamiaru. - W sekcji Dodaj frazy szkoleniowe kliknij pole tekstowe Wprowadź frazę i wprowadź następujące frazy:
-
No
-
N
-
I don't want
-
nope
- Kliknij Zapisz .
no
dodawaj intencji do sceny Start
Teraz Akcja może zrozumieć, kiedy użytkownik wyraża „nie” lub coś podobnego do „nie” , na przykład „nie” . Musisz dodać intencję no
użytkownika do sceny Start
, ponieważ użytkownik odpowiada na monit Start
(„ Witamy w praktyce pisowni. Do przeliterowania słowa użyj alfabetu fonetycznego. Na przykład alfa dla a, bravo dla b, charlie dla c itd. Czy chcesz kontynuować?” ).
Aby dodać tę intencję do sceny Start
, wykonaj następujące kroki:
- Kliknij scenę Start w nawigacji.
- Kliknij znak + (plus) w scenie
Start
obok opcji Obsługa intencji użytkownika. - W sekcji Intencja wybierz z listy rozwijanej opcję Nie .
- Kliknij opcję Wyślij monity i zaktualizuj pole
speech
następującym tekstem:Good Bye
.
Kod w edytorze powinien wyglądać jak następujący fragment:
candidates: - first_simple: variants: - speech: >- Goodbye.
- W sekcji Przejście wybierz z listy rozwijanej opcję Zakończ rozmowę .
- Kliknij Zapisz .
Testuj no
zamiaru w symulatorze
W tym momencie Twoja Akcja rozumie, kiedy użytkownik nie chce grać w grę i zwraca odpowiednią reakcję.
Aby przetestować tę intencję w symulatorze, wykonaj następujące kroki:
- Na pasku nawigacyjnym kliknij Testuj .
- Wpisz
Talk to Spelling Practice
w polu wprowadzania i naciśnij klawiszEnter
. - Wpisz
No
w polu wejściowym i naciśnij Enter. Możesz też kliknąć element Brak sugestii.
Dodaj systemową intencję YES
do sceny Start
Teraz do sceny Start
dodamy intencję SYSTEMU „TAK” , ponieważ użytkownik odpowiada „tak” na monit Start
(„ Witamy w praktyce pisowni. Do przeliterowania słowa użyj alfabetu fonetycznego. Na przykład alfa dla a, bravo dla b, Charlie przez c itd. Czy chcesz kontynuować?” ).
Aby dodać tę intencję użytkownika do sceny Start
, wykonaj następujące kroki:
- Kliknij scenę Start w nawigacji.
- Kliknij znak + (plus) w scenie
Start
obok opcji Obsługa intencji użytkownika . - W obszarze Wszystkie intencje systemowe wybierz TAK z listy rozwijanej intencji.
- Kliknij opcję Zadzwoń do webhooka i zaktualizuj pole tekstowe
event handler
za pomocą utworzonej wcześniej funkcji:getSpellingWordList
- W sekcji Przejście kliknij menu i wybierz Zakończ rozmowę .
- Kliknij Zapisz .
Przetestuj zamiar YES
w symulatorze
W tym momencie Twoja Akcja rozumie, kiedy użytkownik chce zagrać w grę i zwraca odpowiednią reakcję.
Aby przetestować tę intencję w symulatorze, wykonaj następujące kroki:
- Na pasku nawigacyjnym kliknij Testuj .
- Aby przetestować akcję w symulatorze, wpisz
Talk to Spelling Practice
w polu wejściowym i naciśnij Enter . - Wpisz
Yes
w polu wejściowym i naciśnij klawisz Enter . Możesz też kliknąć element sugestiiYes
.
Twoja akcja pobiera listę wszystkich słów do ćwiczeń pisowni i przechowuje je w sesji. Twoja akcja kończy sesję, ponieważ wybrałeś przejście End conversation
dla zamiaru YES
.
Utwórz intencję Phonetics
Aby utworzyć intencję Phonetics
, wykonaj następujące kroki:
- Kliknij opcję Rozwijaj w nawigacji.
- Kliknij opcję Niestandardowe intencje w nawigacji, aby otworzyć listę intencji.
- Kliknij + (znak plus) na końcu listy intencji. Nazwij nową
phonetics
intencji i naciśnijEnter
. - Kliknij intencję
phonetics
, aby otworzyć stronę intencjiphonetics
. - W sekcji Dodaj frazy szkoleniowe kliknij pole tekstowe Wprowadź frazę i wprowadź następujące frazy:
-
how do I spell words
-
phonetics
-
help me with phonetics
-
phonetic alphabet
- Kliknij Zapisz .
Dodaj intencję phonetics
do sceny Start
Teraz Akcja może zrozumieć, kiedy użytkownik wyraża zamiar „fonetyczny” . Możesz dodać intencję użytkownika phonetics
do sceny Start
, ponieważ użytkownik odpowiada na monit Start
(„ Witamy w praktyce pisowni. Do przeliterowania słowa użyj alfabetu fonetycznego. Na przykład alfa dla a, bravo dla b, Charlie dla c itd. Czy chcesz kontynuować?” ).
Aby dodać tę intencję użytkownika do sceny Start
, wykonaj następujące kroki:
- Kliknij scenę Start w nawigacji.
- Kliknij znak + (plus) w scenie
Start
obok opcji Obsługa intencji użytkownika. - Wybierz fonetykę z listy rozwijanej intencji.
- W sekcji Przejście kliknij menu i wybierz Zakończ rozmowę.
- Kliknij Zapisz .
Przejście ze sceny Start do sceny Pisownia
W tej sekcji utworzysz nową scenę o nazwie Spelling , która wysyła do użytkownika monit o przeliterowanie słowa przy użyciu alfabetu fonetycznego.
Aby utworzyć tę scenę i dodać do niej przejście, wykonaj następujące kroki:
- Kliknij opcję Rozwijaj w górnym panelu nawigacyjnym. Następnie kliknij opcję Rozpocznij scenę w lewym panelu nawigacyjnym.
- W sekcji Obsługa intencji użytkownika kliknij
when actions.intent.YES is matched
, a po prawej stronie w sekcji przejścia kliknij menu rozwijane i wpiszSpelling
w polu tekstowym. - Kliknij Dodaj . Tworzy to scenę o nazwie
Spelling
i nakazuje akcji przejście do scenySpelling
po dopasowaniu z intencją YES. - Rozwiń Sceny w lewym panelu nawigacyjnym, aby wyświetlić listę scen.
- W obszarze Sceny kliknij opcję Pisownia, aby wyświetlić scenę
Spelling
. - Kliknij + w sekcji Po wejściu sceny
Spelling
. - Kliknij opcję Zadzwoń do webhooka i wpisz getSpellingWord w polu tekstowym procedury obsługi zdarzeń.
- Wybierz opcję Wyślij monity .
- Zamień zdanie w polu
speech
(Enter the response that users will see or hear...
) na {} . Rzeczywisty monit zostanie wypełniony przez element webhook.
Elementy sugestii oferują klikalne sugestie dla użytkownika, które Twoja Akcja przetwarza jako dane wejściowe użytkownika.
Aby dodać elementy sugestii do podpowiedzi sceny Spelling
, wykonaj następujące kroki:
- W scenie
Spelling
kliknij sugestie poniżej edytora kodu. Ta akcja dodaje trzy żetony sugestii. - W polu
title
zamieńSuggested Response
na'Repeat'
. - Używając tego samego formatowania, ręcznie dodaj element sugestii zatytułowany
'Skip'
. - Używając tego samego formatowania, ręcznie dodaj element sugestii zatytułowany
'Quit'
. Twój kod powinien wyglądać jak następujący fragment: - Kliknij Zapisz .
suggestions: - title: 'Repeat' - title: 'Skip' - title: 'Quit'
Utwórz Repeat
intencję
Aby utworzyć intencję repeat
, wykonaj następujące kroki:
- Kliknij opcję Rozwijaj w nawigacji.
- Kliknij opcję Niestandardowe intencje w nawigacji, aby otworzyć listę intencji.
- Kliknij + (znak plus) na końcu listy intencji. Nazwij nowe
repeat
intencji i naciśnijEnter
. - Kliknij intencję
repeat
, aby otworzyć stronę intencjidefinition
. - W sekcji Dodaj frazy szkoleniowe kliknij pole tekstowe Wprowadź frazę i wprowadź następujące frazy:
-
one more time please
-
say the word again
-
repeat the word
-
tell me again
-
repeat
- Kliknij Zapisz .
Dodaj zamiar repeat
do sceny Spelling
Teraz akcja może zrozumieć, kiedy użytkownik wyraża zamiar „powtórzenia” . Możesz dodać intencję repeat
użytkownika do sceny Spelling
, ponieważ użytkownik odpowiada na monit Spelling
(„ Przeliteruj słowo przy użyciu alfabetu fonetycznego ”).
Aby dodać tę intencję użytkownika do sceny Spelling
, wykonaj następujące kroki:
- Kliknij scenę Pisownia w nawigacji.
- Kliknij znak + (plus) w scenie
Spelling
obok opcji Obsługa intencji użytkownika . - Wybierz opcję Powtórz z listy rozwijanej intencji.
- Zaznacz opcję Zadzwoń do webhooka i wpisz polecenie RepeatSpellingWord w polu tekstowym procedury obsługi zdarzeń, aby uzyskać definicję słowa.
- Zaznacz opcję Wyślij monity .
- Zastąp zdanie w polu
speech
(Enter the response that users will see or hear...
) na „”. Rzeczywisty monit zostanie wypełniony przez element webhook.
Dodaj elementy sugestii do „Po dopasowaniu powtórzenia”
- W sekcji „ Po dopasowaniu powtórzenia ” w obszarze Obsługa intencji użytkownika kliknij sugestie poniżej edytora kodu. Ta akcja dodaje trzy żetony sugestii.
- W polu
title
zamieńSuggested Response
na'Skip'
. - Używając tego samego formatowania, ręcznie dodaj sugestię zatytułowaną
'Quit'
. Twój kod powinien wyglądać jak następujący fragment:
suggestions: - title: 'Skip' - title: 'Quit'
- Kliknij Zapisz.
Utwórz intencję definition
Aby utworzyć intencję definition
, wykonaj następujące kroki:
- Kliknij opcję Rozwijaj w nawigacji.
- Kliknij opcję Niestandardowe intencje w nawigacji, aby otworzyć listę intencji.
- Kliknij + (znak plus) na końcu listy intencji. Nazwij nową
definition
intencji i naciśnij klawiszEnter
. - Kliknij intencję
definition
, aby otworzyć stronę intencjidefinition
. - W sekcji Dodaj frazy szkoleniowe kliknij pole tekstowe Wprowadź frazę i wprowadź następujące frazy:
-
I would like to know the definition
-
tell me the definition
-
what does it mean
-
meaning
-
definition
-
what is the definition?
- Kliknij Zapisz .
Dodaj intencję definition
do sceny Spelling
Teraz Akcja może zrozumieć, kiedy użytkownik wyraża intencję „zdefiniowaną” . Możesz dodać intencję użytkownika definition
do sceny Spelling
, ponieważ użytkownik odpowiada na monit Spelling
(„ Przeliteruj słowo przy użyciu alfabetu fonetycznego ”).
Aby dodać ten użytkownik do sceny Spelling
, wykonaj następujące kroki:
- Kliknij scenę pisowni podczas nawigacji.
- Kliknij + (znak plus) w scenie
Spelling
obok obsługi intencji użytkownika . - Wybierz definicję w rozwijaniu zamiarów.
- Sprawdź zadzwoń do WebHook i wprowadź definicję SPELLEWO WORDE w polu tekstowym zdarzenia, aby uzyskać definicję słowa.
- Sprawdź wyślij monity .
- Wymień zdanie w polu
speech
(Enter the response that users will see or hear...
) na „”. Rzeczywisty monit zostanie wypełniony przez WebHook.
Dodaj układy sugestii do odpowiedzi Webhook
- Na scenie
Start
kliknij sugestie poniżej edytora kodu. Ta akcja dodaje trzy układy sugestii. - W polu
title
zamieńSuggested Response
na'Skip'
. - Korzystając z tego samego formatowania, ręcznie dodaj układ sugestii zatytułowany
'Quit'
. Twój kod powinien wyglądać jak następujący fragment:
suggestions: - title: 'Skip' - title: 'Quit'
- Kliknij Zapisz .
Utwórz skip
pomijania
Aby utworzyć zamiar skip
, wykonaj następujące kroki:
- Kliknij Opracuj w nawigacji.
- Kliknij Intenty w nawigacji, aby otworzyć listę intencji.
- Kliknij + (znak plus) na końcu listy intencji. Nazwij nowe zamiary
skip
i naciśnijEnter
. - Kliknij
skip
, aby otworzyć stronę Intentskip
. - W sekcji Dodaj wyrażenia treningowe kliknij pole tekstowe Wprowadź wyrażenie i wprowadź następujące wyrażenia:
-
next word
-
go next
-
next
-
skip
-
skip word
- Kliknij Zapisz .
Dodaj Skip
pomijania sceny Spelling
Teraz akcja może zrozumieć, kiedy użytkownik wyraża zamiar „pomiń” . Możesz dodać intencję użytkownika skip
do sceny Spelling
, ponieważ użytkownik odpowiada na wiersz Spelling
(„ Przeliteruj słowo za pomocą alfabetu fonetycznego ”).
Aby dodać ten użytkownik do sceny Spelling
, wykonaj następujące kroki:
- Kliknij scenę pisowni podczas nawigacji.
- Kliknij + (znak plus) na scenie
Spelling
obok Handlin Intent User Handlin G. - Wybierz Pomiń rozwijanie zamiaru.
- W sekcji przejściowej po prawej stronie kliknij menu rozwijane i wybierz
Spelling
.
- Kliknij Zapisz .
Utwórz quit
Aby utworzyć zamiar Quit
, wykonaj następujące kroki:
- Kliknij Opracuj w nawigacji.
- Kliknij Intenty w nawigacji, aby otworzyć listę intencji.
- Kliknij + (znak plus) na końcu listy intencji. Nazwij nowy zamiar
Quit
i naciśnijEnter
. - Kliknij stronę, aby otworzyć stronę
Quit
Definicja . - W sekcji Dodaj wyrażenia treningowe kliknij pole tekstowe Wprowadź wyrażenie i wprowadź następujące wyrażenia:
-
I quit
-
Goodbye
-
Cancel
-
Exit
-
Quit
- Kliknij Zapisz.
Dodaj Quit
sceny Spelling
Teraz działanie może zrozumieć, kiedy użytkownik wyraża zamiar „rzucenia” . Możesz dodać zamiar quit
użytkownika do sceny Spelling
, ponieważ użytkownik odpowiada na wiersz Spelling
(„ Plikuj słowo za pomocą alfabetu fonetycznego ”).
Aby dodać ten użytkownik do sceny Spelling
, wykonaj następujące kroki:
- Kliknij scenę pisowni podczas nawigacji.
- Kliknij + (znak plus) w scenie
Spelling
obok obsługi intencji użytkownika . - Wybierz oprócz rozwijania zamiaru.
- W sekcji przejściowej po prawej stronie kliknij menu rozwijane i wybierz
End conversation
. - Kliknij Zapisz .
Utwórz typ phonetic_alphabet
W tej sekcji tworzysz nowy typ o nazwie phonetic_alphabet
, który określa opcje alfabetu fonetycznego, które użytkownicy mogą wybrać przeliterowanie słowa. Możesz także zdefiniować kilka synonimów tych opcji na wypadek, gdyby użytkownik powiedział coś podobnego. W późniejszej sekcji dodajesz typ phonetic_alphabet
do gniazda, aby określić, że chcesz uzyskać odpowiedź użytkownika.
Aby utworzyć typ phonetic_alphabet
, wykonaj następujące kroki:
- Kliknij Opracuj w nawigacji.
- Kliknij + (znak plus) w typach .
- Wpisz
phonetic_alphabet
i naciśnijEnter
. - Kliknij
phonetic_alphabet
, aby otworzyć opcje. - W jakich wartościach będzie obsługiwał ten typ? sekcja, wybierz opcję słów i synonimów
- Wprowadź następujące wpisy i odpowiednie wartości w sekcji Dodaj wpisy :
A | Alpha, Apple, Amsterdam |
B | Bravo, masło, Baltimore |
C | Charlie, Cat, Casablanca |
D | Delta, pies, Dania |
mi | Echo, Edward, Edison |
F | Foxtrot, Fox, Floryda |
G | Golf, George, Gallipoli |
H | Hotel, Harry, Hawana |
I | Indie, atrament, Italia |
J | Juliette, Johnny, Jerozolima |
k | Kilo, król, kilogram |
l | Lima, miłość, Londyn |
M | Mike, pieniądze, Madagaskar |
N | Listopad, Nowy Jork, Nancy |
o | Oscar, Orange, Oslo |
P | Papa, Paryż, Peter |
Q | Quebec, królowa |
R | Romeo, Roma, Robert |
S | Sierra, Sugar, Santiago |
T | Tango, Tommy, Trypolis |
ty | mundur, parasol, wujek |
v | Victor, Ocet, Walencja |
w | Whisky, William, Waszyngton |
X | prześwietlenie |
y | Yankee, żółty, Yorker |
z | Zulu, Zebra, Zurych |
Twoja tabela wartości kluczowej powinna wyglądać jak następujące:
- Kliknij Zapisz .
Skonfiguruj wypełnienie gniazda
Następnie musisz skonfigurować wypełnienie szczelin w scenie pisowni. Aby skonfigurować logikę wypełniania szczelin, wykonaj następujące kroki:
- Kliknij scenę pisowni podczas nawigacji.
- Kliknij + (znak plus) w scenie
Spelling
do wypełnienia automatów . - W polu Enter Name Name dodaj
userresponse
jako nazwę gniazda. - W rozwijaniu typu Wybierz wybierz Phonetic_alphabet jako typ szczelin.
- Sprawdź ten gniazdo akceptuje listę wartości
- Sprawdź, czy to gniazdo jest wymagane .
- Wybierz Dostosuj opcję pisania wartości gniazda i wprowadź UserResponse w polu tekstowym parametru sesji.
- Kliknij Zapisz .
Dodaj warunek ekranu Spelling
Aby dodać warunek sceny Spelling
, wykonaj następujące kroki:
- Kliknij scenę pisowni podczas nawigacji.
- Kliknij + (znak plus) w scenie
Spelling
obok warunku. - Wprowadź
scene.slots.status == "FINAL"
jako warunek - Sprawdź zadzwoń do WebHook i wprowadź Verifyspelling Word w polu tekstowym, aby sprawdzić odpowiedź użytkownika.
- Sprawdź wyślij monity.
- Wymień zdanie w polu
speech
(Enter the response that users will see or hear...
) na {} . Rzeczywisty monit zostanie wypełniony przez WebHook.
Dodaj układy sugestii do odpowiedzi Webhook
- Na scenie
Start
kliknij sugestie poniżej edytora kodu. Ta akcja dodaje trzy układy sugestii. - W polu
title
zamieńSuggested Response
na'Next'
. - Korzystając z tego samego formatowania, ręcznie dodaj układ sugestii zatytułowany
'Quit'
. Twój kod powinien wyglądać jak następujący fragment:
suggestions: - title: 'Next' - title: 'Quit'
- Kliknij Zapisz .
12. Testuj praktykę pisowni w symulatorze
Aby przetestować działanie w symulatorze, wykonaj następujące kroki:
- Na pasku nawigacji kliknij test , aby zabrać do symulatora.
- Aby przetestować swoją akcję w symulatorze,
Talk to Spelling Practice
w polu wejściowym. - Naciśnij enter . Twoja akcja powinna odpowiedzieć
Main invocation
i dodaną monit scenyStart
: „Witaj w praktyce pisowni. Użyj alfabetu fonetycznego, aby przeliterować słowo. Na przykład alfa dla A, Bravo dla B, Charlie dla C itd. Czy chcesz Kontynuować?" . - Powiedz tak, aby kontynuować
- Symulator odtworzy dźwięk słowa do przeliterowania
- Możesz przeliterować słowo za pomocą alfabetów fonetycznych. Na przykład dla lepszego powiedz lub wpisz „Bravo Echo Tango Tango Tango Echo Romeo”
- Symulator zareaguje z poprawną lub nieprawidłową odpowiedzią.
- Powiedz obok następnego słowa lub powiedz, że przestań wyjść z pętli gry.
13. Gratulacje
Gratulacje, z powodzeniem zbudowałeś swoją grę, praktyka pisowni !
Znasz teraz kluczowe kroki wymagane do zbudowania gry za pomocą Cloud Firestore, funkcji w chmurze i Boge Assistant Action Builder.
Co omówiłeś
- Jak wchodzić w interakcje z Cloud Firestore
- Jak używać gniazd do gromadzenia danych od użytkownika
- Jak przetworzyć dane wejściowe użytkownika i zwrócić odpowiedź
- Jak używać warunków, aby dodać logikę do sceny
- Jak dodać pętlę gier
Dodatkowe zasoby edukacyjne
Możesz zbadać te zasoby do nauki o budowaniu działań dla Google Assistant:
- Dokumentacja do opracowywania działań dla Asystent Google
- Działania na stronie Google Github dla przykładowych kodów i bibliotek
- Oficjalna społeczność Reddit dla programistów pracujących z Asystentem Google
- Wytyczne dotyczące projektowania rozmowy dla najlepszych praktyk i wytycznych dotyczących działań konwersacyjnych
- Wprowadzenie do Cloud Firestore
Oczyść swój projekt [zalecany]
Aby uniknąć poniesienia możliwych opłat, zaleca się usuwanie projektów, których nie zamierzasz używać. Aby usunąć projekty utworzone w tym kodelab, wykonaj następujące kroki:
- Aby usunąć projekt i zasoby Firebase, wypełnij kroki wymienione w sekcji Projekty zamykania (usuwanie) .
Uwaga: Upewnij się, że wybierzesz poprawny projekt do usunięcia na stronie Ustawienia Konsoli Google Cloud.
- Opcjonalnie: Aby natychmiast usunąć projekt z konsoli akcji, wypełnij kroki wymienione w sekcji usuwania projektu . Jeśli nie ukończysz tego kroku, Twój projekt zostanie automatycznie usunięty po około 30 dniach.
Śledź @ActionSongoogle i @firebase na Twitterze, aby być na bieżąco z naszymi najnowszymi ogłoszeniami i tweet do #Googleio, aby udostępnić to, co zbudowałeś!