1. Übersicht
Mit der Google Assistant-Entwicklerplattform können Sie Software erstellen, um die Funktionalität von Google Assistant, einem virtuellen persönlichen Assistenten, auf mehr als 1 Milliarde Geräte zu erweitern, darunter intelligente Lautsprecher, Telefone, Autos, Fernseher, Kopfhörer und mehr. Benutzer beteiligen sich mit dem Assistenten an Gesprächen, um Dinge zu erledigen, beispielsweise Lebensmittel einzukaufen oder eine Fahrt zu buchen. Als Entwickler können Sie die Assistant-Entwicklerplattform nutzen, um auf einfache Weise angenehme und effektive Gesprächserlebnisse zwischen Benutzern und Ihrem eigenen Drittanbieter-Fulfillment-Service zu erstellen und zu verwalten.
Dieses Codelab behandelt Konzepte mittlerer Ebene für die Entwicklung mit Google Assistant, Cloud Functions und Cloud Firestore. In diesem Codelab erstellen Sie ein Spiel namens „Spelling Practice“, das mithilfe von Google Assistant Benutzer auffordert, Wörter zu buchstabieren.
Was Sie bauen werden
In diesem Codelab erstellen Sie ein anspruchsvolles Spiel mit der folgenden Funktionalität:
- Empfängt Rechtschreibantworten vom Benutzer und ändert je nach Wert die Konversationsaufforderungen
- Antwortet mit Hinweisen zur Schreibweise des Wortes, etwa seiner Definition oder der Wiederholung des Wortes
- Erstellt eine Spielschleife, sodass ein Benutzer erneut mit dem Assistenten interagieren kann, nachdem er das Wort geschrieben hat
Bevor Sie mit dem Erstellen beginnen, können Sie mit der Live -Aktion auf Ihrem Google Assistant-fähigen Gerät interagieren, indem Sie „Hey Google, sprechen Sie mit Spelling Practice“ sagen. Der Standardpfad durch diese Aktion für einen wiederkehrenden Benutzer sieht wie die folgende Interaktion aus:
Wenn Sie dieses Codelab abgeschlossen haben, wird Ihre abgeschlossene Aktion den folgenden Konversationsablauf haben:
Was Sie lernen werden
- So interagieren Sie mit Cloud Firestore
- So verwenden Sie Slots, um Daten vom Benutzer zu sammeln
- So verarbeiten Sie die Eingabe eines Benutzers und geben eine Antwort zurück
- So verwenden Sie Bedingungen, um einer Szene Logik hinzuzufügen
- So fügen Sie eine Spielschleife hinzu
Was du brauchen wirst
Die Voraussetzungen für dieses Codelab umfassen Folgendes:
- Ein Webbrowser wie Google Chrome
- Eine IDE zum Schreiben von Cloud-Funktionen.
- Eine Zahlungsmethode. Dieses Codelab nutzt Cloud Functions für Firebase, was erfordert, dass Ihr Projekt im Firebase Blaze-Preisplan enthalten ist ( Weitere Informationen ).
- Ein Terminal zum Ausführen von Shell-Befehlen
- Node.js 10 oder höher
2. Holen Sie sich den Funktionscode
Klonen Sie das GitHub-Repository über die Befehlszeile:
$ git clone https://github.com/FirebaseExtended/codelab-actions-firestore
3. Erstellen Sie ein Firebase-Projekt und richten Sie Ihre App ein
Erstellen Sie ein Firebase-Projekt
- Melden Sie sich bei Firebase an.
- Klicken Sie in der Firebase-Konsole auf Projekt hinzufügen (oder Projekt erstellen ) und nennen Sie dann Ihr Firebase-Projekt
Spelling-Practice
.
- Klicken Sie sich durch die Projekterstellungsoptionen. Akzeptieren Sie die Firebase-Bedingungen, wenn Sie dazu aufgefordert werden. Überspringen Sie die Einrichtung von Google Analytics, da Sie Analytics für diese App nicht verwenden werden.
Weitere Informationen zu Firebase-Projekten finden Sie unter Grundlegendes zu Firebase-Projekten .
Upgraden Sie auf den Blaze-Preisplan
Um Cloud Functions für Firebase nutzen zu können, müssen Sie Ihr Firebase-Projekt auf den Blaze-Preisplan aktualisieren, was bedeutet, dass Sie Ihrem Projekt ein Google Cloud-Rechnungskonto hinzufügen. Hierzu ist die Angabe einer Kreditkarte oder einer anderen Zahlungsmethode erforderlich.
Alle Firebase-Projekte, einschließlich derjenigen im Blaze-Plan, haben weiterhin Zugriff auf die kostenlosen Nutzungskontingente für Cloud Functions. Die in diesem Codelab beschriebenen Schritte fallen innerhalb der kostenlosen Nutzungsgrenzen. Es fallen jedoch geringe Gebühren ( ca. 0,03 $ ) für Cloud Storage an, das zum Hosten Ihrer Cloud Functions-Build-Images verwendet wird.
4. Installieren Sie die Firebase-CLI
Mit der Firebase-CLI (Befehlszeilenschnittstelle) können Sie Ihre Cloud-Funktionen bereitstellen.
Abhängig von Ihrem Betriebssystem und Anwendungsfall gibt es mehrere Optionen für die Installation der Firebase-CLI . Die folgenden Schritte beschreiben die häufigste Option, wenn Sie auch Cloud Functions verwenden.
- Stellen Sie sicher, dass Sie npm installiert haben, das normalerweise mit Node.js geliefert wird.
- Installieren oder aktualisieren Sie die CLI, indem Sie den folgenden npm-Befehl ausführen:
$ npm -g install firebase-tools
- Überprüfen Sie, ob die CLI korrekt installiert wurde, indem Sie Folgendes ausführen:
$ firebase --version
Stellen Sie sicher, dass die Version der Firebase-CLI 9.0.0 oder höher ist, damit sie über alle neuesten Funktionen verfügt, die für Cloud Functions erforderlich sind. Wenn nicht, führen Sie npm install -g firebase-tools aus, um das Upgrade wie oben gezeigt durchzuführen.
- Autorisieren Sie die Firebase-CLI, indem Sie Folgendes ausführen:
$ firebase login
- Richten Sie im Verzeichnis „spelling-functions-start“ die Firebase-CLI für die Verwendung Ihres Firebase-Projekts ein. Führen Sie den folgenden Befehl aus, wählen Sie Ihre Projekt-ID aus und folgen Sie dann den Anweisungen. Wenn Sie dazu aufgefordert werden, können Sie einen beliebigen Alias auswählen, z. B.
codelab
.
$ firebase use --add
5. Das Funktionsverzeichnis
Jetzt fügen Sie mithilfe des Firebase SDK für Cloud Functions Funktionen hinzu, um das Backend für das Spiel Spelling Practice zu erstellen.
Cloud Functions ermöglicht es Ihnen, Code in der Cloud auszuführen, ohne einen Server einrichten zu müssen. In diesem Codelab erfahren Sie, wie Sie Funktionen erstellen, die auf Ereignisse der Firebase-Authentifizierung, des Cloud-Speichers und der Firebase-Echtzeitdatenbank reagieren. Beginnen wir mit der Authentifizierung.
Wenn Sie das Firebase SDK für Cloud Functions verwenden, befindet sich Ihr Funktionscode (standardmäßig) im functions
. Um es Ihnen einfacher zu machen, haben wir bereits die Datei functions/index.js
erstellt, in der Ihr Code abgelegt wird. Werfen Sie einen Blick in das functions
, bevor Sie fortfahren.
$ cd functions $ ls
Ihr Funktionscode ist ebenfalls eine Node.js- App und benötigt daher eine package.json
, die einige Informationen über Ihre App bereitstellt und Abhängigkeiten auflistet.
Wenn Sie mit Node.js nicht vertraut sind, ist es hilfreich, mehr darüber zu erfahren, bevor Sie mit dem Codelab fortfahren.
In der Datei package.json
sind bereits zwei erforderliche Abhängigkeiten aufgeführt: das Firebase SDK für Cloud Functions und das Firebase Admin SDK . Um sie lokal zu installieren, führen Sie npm install
aus dem functions
aus:
$ npm install
Schauen wir uns nun die Datei index.js
an:
index.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.
Sie importieren zunächst die erforderlichen Module und schreiben dann vier Funktionen anstelle der TODOs. Fahren Sie mit dem nächsten Schritt des Codelabs fort, um die Module zu importieren.
6. Importieren Sie die erforderlichen Module
Dieses Codelab erfordert drei Module.
- Mit dem
firebase-functions
Modul können wir die Trigger für unsere Cloud-Funktionen schreiben - Das
firebase-admin
Modul ermöglicht es uns, die Firebase-Plattform auf einem Server mit Admin-Zugriff zu nutzen, um beispielsweise in den Cloud Firestore zu schreiben. - Die Actions SDK Node.js Fulfillment Library erfüllt Actions SDK-Handler für den Google Assistant.
- Installieren Sie das Actions SDK, indem Sie den folgenden npm-Befehl ausführen:
$ npm install @assistant/conversation
- Ersetzen Sie in der Datei
index.js
das erste TODO durch das Folgende.
Diese Änderungen importieren jedes der erforderlichen Module.
Außerdem kann das Firebase Admin SDK automatisch konfiguriert werden, wenn es in einer Cloud Functions-Umgebung oder einem anderen Google Cloud-Container bereitgestellt wird. Das passiert, wenn wir admin.initializeApp();
in den folgenden Änderungen.
index.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.
Fügen wir nun Geschäftslogik hinzu, indem wir Funktionen zur Unterstützung von Assistentenaktionen verwenden.
7. Erstellen Sie Funktionen
Holen Sie sich die Wortdefinitionen und schreiben Sie sie in Cloud Firestore
Sie verwenden die öffentliche API dictionaryapi.dev
, um die Wortdefinitionen abzurufen.
Ersetzen Sie in der Datei index.js
das TODO für getWordDetailsFromDictionaryAPI
durch Folgendes:
index.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(); }
Fügen Sie einen Cloud Firestore-Trigger hinzu
Als Nächstes erstellen Sie eine Cloud-Funktion, die immer dann ausgelöst wird, wenn ein neues Dokument in Cloud Firestore erstellt wird. Es ruft die dictionaryapi.dev
API auf, um Wortdefinitionen über die Funktion getWordDetailsFromDictionaryAPI
abzurufen, die wir oben geschrieben haben.
Ersetzen Sie in der Datei index.js
das TODO für createSpellingPracticeWord
durch Folgendes:
index.js
// Firestore-Trigger, der Wortdefinitionen über getWordDetailsFromDictionaryAPI für jedes neue Firestore-Dokument abruft
exports.createSpellingPracticeWord = functions.firestore .document('wordlist/{word}') .onCreate((snap, context) => { const newValue = snap.data(); const word = newValue.word; getWordDetailsFromDictionaryAPI(word); });
Holen Sie sich eine Liste mit Wörtern für das Spiel
Sie können eine Cloud-Funktion schreiben, die eine Liste mit Rechtschreibübungswörtern aus Cloud Firestore für den Assistenten abruft. Hierzu nutzen wir den App-Handler.
Ersetzen Sie in der Datei index.js
das TODO für getSpellingWordList
durch Folgendes.
Das Hinzufügen dieser Funktion zum speziellen app.handle
ist eine Möglichkeit, die Funktion über den Assistenten zugänglich zu machen.
index.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; }); }); })
Erhalten Sie ein Wort aus der Assistentensitzung
Sie können eine Cloud-Funktion schreiben, die das nächste Buchstabierwort aus der Wortliste zurückgibt.
Ersetzen Sie in der Datei index.js
das TODO für getSpellingWord
durch Folgendes:
index.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'); });
Aktivieren Sie das Spiel, um das Wort zu wiederholen
Sie können eine Cloud-Funktion schreiben, die das aktuelle Wort für das Spiel wiederholt.
Ersetzen Sie in der Datei index.js
das TODO für repeatSpellingWord
durch Folgendes:
index.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'); });
Holen Sie sich die Definition des Wortes
Sie können eine Cloud-Funktion schreiben, die die Definition des aktuellen Worts für das Spiel bereitstellt.
Ersetzen Sie in der Datei index.js
das TODO für definitionOfSpellingWord
durch Folgendes:
index.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); });
Überprüfen Sie die Rechtschreibantwort des Benutzers
Sie können eine Cloud-Funktion schreiben, die die Antwort des Benutzers auf die Schreibweise des aktuellen Worts für das Spiel überprüft.
Ersetzen Sie in der Datei index.js
das TODO für verifySpellingWord
durch Folgendes:
index.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);
Stellen Sie alle Ihre Funktionen bereit
Ihre Cloud-Funktionen werden erst aktiv, nachdem Sie sie in Firebase bereitgestellt haben.
Führen Sie im Stammverzeichnis des Verzeichnisses spelling-functions-start
den folgenden Befehl aus:
$ firebase deploy --only functions
Dies ist die Konsolenausgabe, die Sie sehen sollten:
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
Notieren Sie sich die HTTP-Endpunkt-URL der ActionsOnGoogleFulfillment-Funktion zur späteren Verwendung. Um den Endpunkt zu erhalten, öffnen Sie die Firebase-Konsole und klicken Sie dann auf Rechtschreibübungsprojekt . Öffnen Sie das Funktions-Dashboard, um den Funktionsendpunkt anzuzeigen.
Sie haben alle erforderlichen Funktionen hinzugefügt. Kommen wir nun zum Einrichten von Cloud Firestore.
8. Aktivieren Sie Cloud Firestore
Sie müssen Cloud Firestore aktivieren.
Klicken Sie im Build- Bereich der Firebase-Konsole auf Firestore . Klicken Sie dann auf Datenbank erstellen .
Der Zugriff auf Daten in Cloud Firestore wird durch Sicherheitsregeln gesteuert. Zunächst müssen Sie einige Grundregeln für die Daten festlegen, um loszulegen. Klicken Sie auf Firestore und fügen Sie dann auf der Registerkarte „Regeln“ der Firebase-Konsole die folgenden Regeln hinzu und klicken Sie dann auf „Veröffentlichen“ .
Die folgenden Regeln beschränken den Datenzugriff auf angemeldete Benutzer, wodurch nicht authentifizierte Benutzer am Lesen oder Schreiben gehindert werden.
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. Fügen Sie Daten zu Rechtschreibwörtern zum Cloud Firestore hinzu
In diesem Schritt schreiben Sie Daten zu Rechtschreibwörtern in Cloud Firestore, damit Sie eine Wortliste für den Assistenten (und das Spiel) erstellen können.
Cloud Firestore-Daten sind in Sammlungen, Dokumente, Felder und Untersammlungen strukturiert. Jedes Wort für das Spiel wird als eigenes Dokument in einer Sammlung auf oberster Ebene namens wordlist
gespeichert. Für jedes neue Dokument in der Firestore-Sammlung wird die Funktion „createSpellingPracticeWord“ ausgelöst, um die Wortdetails vom Wörterbuch-API-Dienst abzurufen.
Erstellen Sie eine Cloud Firestore-Sammlung
- Navigieren Sie in der Firebase-Konsole zum Abschnitt „Cloud Firestore“.
- Klicken Sie auf + Sammlung starten .
- Geben Sie im Textfeld „Sammlungs-ID“
wordlist
ein und klicken Sie dann auf „Weiter“ .
Als Nächstes erstellen wir ein Dokument für ein Wort: Vereinbarung
- Geben Sie im Textfeld „Dokument-ID“
agreement
ein. - Geben Sie im Textfeld „ Feld “
word
und im Textfeld „Wert “ „agreement
ein. - Klicken Sie auf Speichern .
Wenn Sie dieses Dokument zu Cloud Firestore hinzufügen, wird Ihre Funktion „createSpellingPracticeWord“ ausgelöst, um die Definitionsdetails für das Wort abzurufen. Fügen Sie weitere Wörter hinzu (zum Beispiel: Ehrfurcht, Auto, wahr, erzählen, besser, pendeln, ...), indem Sie für jedes Wort ein neues Dokument erstellen.
10. Richten Sie Google Assistant ein
In den folgenden Abschnitten wird beschrieben, wie Sie Ihre Google Assistant-Entwicklungsumgebung einrichten und Ihr Actions-Projekt erstellen.
Überprüfen Sie Ihre Google-Berechtigungseinstellungen
Um die Aktion zu testen, die Sie in diesem Codelab erstellen, müssen Sie die erforderlichen Berechtigungen aktivieren, damit der Simulator auf Ihre Aktion zugreifen kann. Um Berechtigungen zu aktivieren, führen Sie die folgenden Schritte aus:
- Gehen Sie zur Seite Aktivitätskontrollen .
- Melden Sie sich mit Ihrem Google-Konto an, falls Sie dies noch nicht getan haben.
- Aktivieren Sie die folgenden Berechtigungen:
- Web- und App-Aktivitäten
- Aktivieren Sie unter „Web- und App-Aktivität“ das Kontrollkästchen neben „Chrome-Verlauf und Aktivität von Websites, Apps und Geräten einbeziehen, die Google-Dienste nutzen“ .
Erstellen Sie ein Actions-Projekt
Ihr Actions-Projekt ist ein Container für Ihre Aktion. Führen Sie die folgenden Schritte aus, um Ihr Aktionsprojekt für dieses Codelab zu erstellen:
- Öffnen Sie die Aktionskonsole .
- Klicken Sie auf Neues Projekt .
- Akzeptieren Sie die Nutzungsbedingungen
- Geben Sie
spelling-practice-codelab
ein oder wählen Sie es aus, das Sie mit der Firebase Console erstellt haben. (Der Name dient Ihrer internen Referenz. Später können Sie einen externen Namen für Ihr Projekt festlegen.)
- Klicken Sie auf Projekt importieren .
- Im Feld Welche Art von Aktion möchten Sie erstellen? Wählen Sie auf dem Bildschirm die benutzerdefinierte Karte aus.
- Weiter klicken .
- Wählen Sie die leere Projektkarte aus.
- Klicken Sie auf „Bau starten“ .
- Geben Sie die Rechtschreibprüfung für den Anzeigenamen ein und klicken Sie auf „Speichern“.
Benutzer beginnen die Konversation mit Ihrer Aktion durch Aufruf . Beispielsweise können Benutzer Ihre Aktion aufrufen, indem sie einen Satz wie „Hey Google, sprechen Sie mit Spelling Practice“ sagen, wobei Spelling Practice der Anzeigename ist.
Ihre Aktion muss einen Anzeigenamen haben, wenn Sie sie in der Produktion bereitstellen möchten. Um Ihre Aktion zu testen, müssen Sie jedoch keinen Anzeigenamen definieren. Stattdessen können Sie im Simulator den Satz „Mit meiner Test-App sprechen“ verwenden, um Ihre Aktion aufzurufen.
Konfigurieren Sie die Erfüllung
Sie müssen die Ereignishandler für die Cloud-Funktionen, die Sie zuvor in diesem Codelab geschrieben und bereitgestellt haben, mit dem Assistenten verbinden.
Um Ihr Fulfillment zu konfigurieren, befolgen Sie diese Schritte:
- Klicken Sie in der Seitennavigation auf Webhook .
- Wählen Sie HTTP-Endpunkt als Erfüllungsoption:
- Geben Sie die URL des Endpunkts Ihrer Funktion in das Textfeld „HTTPs-Endpunkt“ ein und klicken Sie dann auf „Speichern“ .
Im nächsten Abschnitt passen Sie die Eingabeaufforderung für Ihren Hauptaufruf in der Aktionskonsole an.
Hauptaufruf einrichten
Sie müssen den Hauptaufruf bearbeiten, um zu definieren, was passiert, nachdem ein Benutzer Ihre Aktion aufruft.
Standardmäßig stellt Actions Builder eine generische Eingabeaufforderung bereit, wenn Ihr Aufruf ausgelöst wird ( „Beginnen Sie mit dem Erstellen Ihrer Aktion, indem Sie den Hauptaufruf definieren.“).
Um die Eingabeaufforderung zu ändern, die Ihre Aktion an den Benutzer zurücksendet, wenn dieser Ihre Aktion aufruft, führen Sie die folgenden Schritte aus:
- Klicken Sie in der Navigation auf Hauptaufruf .
- Aktivieren Sie
Call your webhook
und fügen Sie den Event-Handler-NamengetSpellingWordList
in das Textfeld ein. - Ersetzen Sie im Code-Editor den Text im
speech
durch die folgende Willkommensnachricht:Welcome to Spelling Practice
Hinweis: Sie können zum Bearbeiten Ihrer Eingabeaufforderungen entweder die YAML- oder die JSON- Formatierung verwenden.
- Klicken Sie auf Speichern .
Testen Sie den Hauptaufruf im Simulator
Die Actions-Konsole bietet ein Webtool zum Testen Ihrer Aktion namens Simulator . Die Schnittstelle simuliert Hardwaregeräte und deren Einstellungen, sodass Sie mit Ihrer Aktion kommunizieren können, als ob sie auf einem Smart Display, einem Telefon, einem Lautsprecher oder KaiOS ausgeführt würde.
Führen Sie die folgenden Schritte aus, um den Hauptaufruf Ihrer Aktion im Simulator zu testen:
- Klicken Sie in der oberen Navigationsleiste auf Test , um zum Simulator zu gelangen.
- Um Ihre Aktion im Simulator aufzurufen, geben Sie
Talk to Spelling Practice
in das Eingabefeld oben links ein und drücken Sie dann die Eingabetaste auf Ihrer Tastatur.
Wenn Sie den Hauptaufruf Ihrer Aktion auslösen, antwortet der Assistent mit Ihrer individuellen Willkommensnachricht. An diesem Punkt endet das Gespräch, nachdem der Assistent mit einer Begrüßung antwortet.
Ereignisprotokolle anzeigen
Wenn Sie sich auf der Registerkarte „Test“ befinden, werden im rechten Bereich die Ereignisprotokolle angezeigt, die den Konversationsverlauf als Ereignisprotokolle anzeigen. In jedem Ereignisprotokoll werden die Ereignisse angezeigt, die während dieser Konversationsrunde aufgetreten sind. Um das Ereignisprotokoll anzuzeigen, klicken Sie auf das graue Symbol vor dem Ereignis.
Ihre Aktion verfügt derzeit über ein Ereignisprotokoll, das sowohl die Benutzereingabe ( „Talk to Spelling Practice“ ) als auch die Antwort Ihrer Aktion anzeigt. Der folgende Screenshot zeigt das Ereignisprotokoll Ihrer Aktion:
11. Bauen Sie das Gespräch zum Üben der Rechtschreibung auf
Nachdem Sie nun definiert haben, was passiert, nachdem ein Benutzer Ihre Aktion aufruft, können Sie den Rest der Konversation Ihrer Aktion aufbauen. Spelling Practice hat vier Szenen und Sie müssen jede Szene aktivieren, bevor sie ausgeführt werden kann. Die gebräuchlichste Methode zum Aktivieren einer Szene besteht darin, Ihre Aktion so zu konfigurieren, dass, wenn ein Benutzer mit einer Benutzerabsicht innerhalb einer Szene übereinstimmt, diese Absicht den Übergang zu einer anderen Szene auslöst und diese aktiviert.
Übergang vom Hauptaufruf zur Startszene
In diesem Abschnitt erstellen Sie eine neue Szene namens Start
, die eine Eingabeaufforderung an den Benutzer sendet, in der er gefragt wird, ob er mit dem Spielen von Spelling Practice beginnen möchte. Sie fügen außerdem einen Übergang vom Hauptaufruf zur neuen Start
hinzu.
Um diese Szene zu erstellen und ihr einen Übergang hinzuzufügen, führen Sie die folgenden Schritte aus:
- Klicken Sie in der oberen Navigation auf „Entwickeln“ . Klicken Sie dann im linken Navigationsbereich auf Hauptaufruf .
- Klicken Sie im Abschnitt „Übergang“ auf der rechten Seite auf das Dropdown-Menü und geben Sie dann
Start
in das Textfeld ein.
- Klicken Sie auf Hinzufügen . Dadurch wird eine Szene mit dem Namen
Start
erstellt und die Aktion angewiesen, zurStart
überzugehen, nachdem die Aktion dem Benutzer die Begrüßungsaufforderung übermittelt hat. - Klicken Sie im linken Navigationsbereich auf Szenen , um die Liste der Szenen anzuzeigen.
- Klicken Sie unter Szenen auf Start , um die
Start
anzuzeigen. - Klicken Sie im Abschnitt „Bei Eingabe“ der
Start
auf + . - Wählen Sie Aufforderungen senden aus.
- Ersetzen Sie den Satz im
speech
(Enter the response that users will see or hear...
) durch eine Frage an den Benutzer:Use phonetic alphabet to spell the word. For example alpha for a, bravo for b, charlie for c etc. Do you want to continue?
Vorschlagschips bieten dem Benutzer anklickbare Vorschläge, die Ihre Aktion als Benutzereingabe verarbeitet. In diesem Abschnitt fügen Sie Vorschlagschips hinzu, die unter der soeben konfigurierten Eingabeaufforderung angezeigt werden ( Do you want to play
Spelling Practice
?
), um Benutzer auf Geräten mit Bildschirmen zu unterstützen.
Um der Eingabeaufforderung der Start
Vorschlagschips hinzuzufügen, gehen Sie folgendermaßen vor:
- Klicken Sie in der
Start
unter dem Code-Editor auf Vorschläge. Diese Aktion fügt einen einzelnen Vorschlagschip hinzu. - Ersetzen Sie im
title
Suggested Response
durch'Yes'
. - Fügen Sie mit derselben Formatierung manuell einen Vorschlagschip mit den Titeln
'No'
und'Help with Phonetics'
hinzu. Ihr Code sollte wie das folgende Snippet aussehen: - Klicken Sie auf Speichern .
Testen Sie Ihre Aktion im Simulator
An diesem Punkt sollte Ihre Aktion vom Hauptaufruf zur Startszene übergehen und den Benutzer fragen, ob er fortfahren möchte. In der simulierten Anzeige sollten auch Vorschlagschips erscheinen.
Um Ihre Aktion im Simulator zu testen, gehen Sie folgendermaßen vor:
- Klicken Sie in der Navigationsleiste auf Test , um zum Simulator zu gelangen.
- Um Ihre Aktion im Simulator zu testen, geben Sie
Talk to Spelling Practice
in das Eingabefeld ein. - Drücken Sie Enter . Ihre Aktion sollte mit der
Main invocation
und der hinzugefügtenStart
„Willkommen bei der Rechtschreibübung“ antworten. Verwenden Sie das phonetische Alphabet, um das Wort zu buchstabieren. Zum Beispiel Alpha für a, Bravo für b, Charlie für c usw. Möchten Sie? weitermachen?" .
Der folgende Screenshot zeigt diese Interaktion:
- Klicken Sie auf den Vorschlagschip
Yes
,No
oderHelp with Phonetics
um auf die Eingabeaufforderung zu antworten. (Sie können auch „Ja“ oder „Nein“ oder „Hilfe zur Phonetik“ sagen oderYes
“ oderNo
“ oderHelp with Phonetics
in das Eingabefeld eingeben.)
Wenn Sie auf die Eingabeaufforderung antworten, antwortet Ihre Aktion mit einer Meldung, die darauf hinweist, dass sie Ihre Eingabe nicht verstehen kann: „Das habe ich leider nicht verstanden. Können Sie es noch einmal versuchen?“ Da Sie Ihre Aktion noch nicht so konfiguriert haben, dass sie „Ja“- oder „Nein“ -Eingaben versteht und darauf reagiert, ordnet Ihre Aktion Ihre Eingabe einer NO_MATCH
Absicht zu.
Standardmäßig stellt die Systemabsicht NO_MATCH
generische Antworten bereit. Sie können diese Antworten jedoch anpassen, um dem Benutzer anzuzeigen, dass Sie seine Eingaben nicht verstanden haben. Der Assistent beendet die Konversation des Benutzers mit Ihrer Aktion, nachdem die Benutzereingabe dreimal nicht mit der Benutzereingabe übereinstimmt.
Fügen Sie „Nein“ und „Phonetikabsichten“ hinzu
Da Benutzer nun auf die von Ihrer Aktion gestellte Frage antworten können, können Sie Ihre Aktion so konfigurieren, dass sie die Antworten der Benutzer versteht ( „Ja“ oder „Nein“ oder „Hilfe zur Phonetik“ ). In den folgenden Abschnitten erstellen Sie Benutzerabsichten, die abgeglichen werden, wenn der Benutzer „Ja“ oder „Nein“ oder „Hilfe zur Phonetik“ sagt, und fügen diese Absichten der Start
hinzu. Wir werden die Systemabsicht yes
verwenden und andere Absichten erstellen.
Erstellen Sie no
Absicht
Jetzt müssen Sie die no
schaffen, den Benutzer zu verstehen und darauf zu reagieren, wenn er das Spiel nicht spielen möchte. Um diese Absicht zu erstellen, führen Sie die folgenden Schritte aus:
- Klicken Sie in der Navigation auf „Entwickeln“ .
- Klicken Sie in der Navigation auf Benutzerdefinierte Absichten , um die Liste der Absichten zu öffnen.
- Klicken Sie am Ende der Absichtsliste auf + (Pluszeichen) . Benennen Sie die neue Absicht
no
und drücken Sie die Eingabetaste . - Klicken Sie auf „Nein“ , um die Seite
no
Absicht“ zu öffnen. - Klicken Sie im Abschnitt „Trainingsphrasen hinzufügen“ in das Textfeld „Phrase eingeben“ und geben Sie die folgenden Phrasen ein:
-
No
-
N
-
I don't want
-
nope
- Klicken Sie auf Speichern .
Fügen Sie der Start
no
Absicht hinzu
Jetzt kann die Aktion verstehen, wenn ein Benutzer „Nein“ oder etwas Ähnliches wie „Nein“ wie „Nein“ ausdrückt. Sie müssen die Absicht no
Benutzer“ zur Start
hinzufügen, da der Benutzer auf die Start
reagiert („ Willkommen bei der Rechtschreibübung. Verwenden Sie das phonetische Alphabet, um das Wort zu buchstabieren. Zum Beispiel Alpha für a, Bravo für b, Charlie für c usw. Möchten Sie fortfahren?" ).
Um diese Absicht für die Start
hinzuzufügen, führen Sie die folgenden Schritte aus:
- Klicken Sie in der Navigation auf die Startszene .
- Klicken Sie in der
Start
neben „Benutzerabsichtsbehandlung “ auf das Pluszeichen „+“ . - Wählen Sie im Abschnitt „Absicht“ im Dropdown-Menü „Nein“ aus.
- Klicken Sie auf Aufforderungen senden und aktualisieren Sie das
speech
mit dem folgenden Text:Good Bye
.
Der Code in Ihrem Editor sollte wie das folgende Snippet aussehen:
candidates: - first_simple: variants: - speech: >- Goodbye.
- Wählen Sie im Abschnitt „Übergang“ die Option „Konversation beenden“ aus der Dropdown-Liste aus.
- Klicken Sie auf Speichern .
Testen Sie no
Absicht im Simulator
An diesem Punkt erkennt Ihre Aktion, wenn der Benutzer das Spiel nicht spielen möchte, und gibt die entsprechende Antwort zurück.
Um diese Absicht im Simulator zu testen, gehen Sie folgendermaßen vor:
- Klicken Sie in der Navigationsleiste auf Testen .
- Geben Sie
Talk to Spelling Practice
in das Eingabefeld ein und drücken SieEnter
. - Geben Sie
No
in das Eingabefeld ein und drücken Sie die Eingabetaste. Klicken Sie alternativ auf das Feld „Kein Vorschlag“.
Fügen Sie der Start
die Systemabsicht YES
hinzu
Jetzt fügen wir der Start
die SYSTEM- Absicht „YES“ hinzu, da der Benutzer auf die Start
mit „ Willkommen bei der Rechtschreibübung“ antwortet. Verwenden Sie das phonetische Alphabet, um das Wort zu buchstabieren. Zum Beispiel Alpha für a, Bravo für b, charlie für c usw. Möchten Sie fortfahren?
Um diese Benutzerabsicht zur Start
hinzuzufügen, führen Sie die folgenden Schritte aus:
- Klicken Sie in der Navigation auf die Startszene .
- Klicken Sie in der
Start
neben Benutzerabsichtsbehandlung auf das + (Pluszeichen) . - Wählen Sie unter „Alle Systemabsichten“ im Dropdown-Menü „Absicht“ die Option JA aus.
- Klicken Sie auf „Call your webhook“ und aktualisieren Sie das
event handler
Textfeld mit der Funktion, die Sie zuvor erstellt haben:getSpellingWordList
- Klicken Sie im Abschnitt „Übergang“ auf das Dropdown-Menü und wählen Sie „Konversation beenden“ aus.
- Klicken Sie auf Speichern .
Testen Sie YES
Absicht im Simulator
An diesem Punkt erkennt Ihre Aktion, wann der Benutzer das Spiel spielen möchte, und gibt die entsprechende Antwort zurück.
Um diese Absicht im Simulator zu testen, gehen Sie folgendermaßen vor:
- Klicken Sie in der Navigationsleiste auf Testen .
- Um Ihre Aktion im Simulator zu testen, geben Sie
Talk to Spelling Practice
in das Eingabefeld ein und drücken Sie die Eingabetaste . - Geben Sie
Yes
in das Eingabefeld ein und drücken Sie die Eingabetaste . Alternativ können Sie auch auf den VorschlagschipYes
klicken.
Ihre Aktion ruft eine Liste aller Rechtschreibübungswörter ab und speichert sie in der Sitzung. Ihre Aktion beendet dann die Sitzung, da Sie den Übergang End conversation
für die Absicht YES
ausgewählt haben.
Erstellen Sie Phonetics
Absicht
Um die Phonetics
Absicht zu erstellen, führen Sie die folgenden Schritte aus:
- Klicken Sie in der Navigation auf „Entwickeln“ .
- Klicken Sie in der Navigation auf Benutzerdefinierte Absichten , um die Liste der Absichten zu öffnen.
- Klicken Sie am Ende der Absichtsliste auf + (Pluszeichen) . Benennen Sie die neue
phonetics
und drücken SieEnter
. - Klicken Sie auf die
phonetics
, um die Seite mit derphonetics
zu öffnen. - Klicken Sie im Abschnitt „Trainingsphrasen hinzufügen“ auf das Textfeld „Phrase eingeben“ und geben Sie die folgenden Phrasen ein:
-
how do I spell words
-
phonetics
-
help me with phonetics
-
phonetic alphabet
- Klicken Sie auf Speichern .
Fügen Sie der Start
phonetics
Absicht hinzu
Jetzt kann die Aktion verstehen, wenn ein Benutzer eine „phonetische“ Absicht zum Ausdruck bringt. Sie können die phonetics
Benutzerabsicht zur Start
hinzufügen, da der Benutzer auf die Start
reagiert („ Willkommen bei der Rechtschreibübung. Verwenden Sie das phonetische Alphabet, um das Wort zu buchstabieren. Zum Beispiel Alpha für a, Bravo für b, Charlie für c usw. Möchten Sie fortfahren?" ).
Um diese Benutzerabsicht zur Start
hinzuzufügen, führen Sie die folgenden Schritte aus:
- Klicken Sie in der Navigation auf die Startszene .
- Klicken Sie in der
Start
neben „Benutzerabsichtsbehandlung“ auf das Pluszeichen „+“. - Wählen Sie im Absichts-Dropdown die Phonetik aus.
- Klicken Sie im Abschnitt „Übergang“ auf das Dropdown-Menü und wählen Sie „Konversation beenden“ aus.
- Klicken Sie auf Speichern .
Übergang von der Startszene zur Rechtschreibszene
In diesem Abschnitt erstellen Sie eine neue Szene namens Spelling , die eine Aufforderung an den Benutzer sendet, das Wort mit dem phonetischen Alphabet zu buchstabieren.
Um diese Szene zu erstellen und ihr einen Übergang hinzuzufügen, führen Sie die folgenden Schritte aus:
- Klicken Sie in der oberen Navigation auf „Entwickeln“ . Klicken Sie dann im linken Navigationsbereich auf Szene starten .
- Klicken Sie im Abschnitt „Handhabung von Benutzerabsichten“
when actions.intent.YES is matched
und klicken Sie rechts im Übergangsabschnitt auf das Dropdown-Menü und geben SieSpelling
in das Textfeld ein. - Klicken Sie auf Hinzufügen . Dadurch wird eine Szene mit dem Namen
Spelling
erstellt und die Aktion angewiesen, nach dem Abgleich mit der Absicht YES zurSpelling
Szene überzugehen. - Erweitern Sie Szenen in der linken Navigation, um die Liste der Szenen anzuzeigen.
- Klicken Sie unter Szenen auf Spelling, um die
Spelling
Szene anzuzeigen. - Klicken Sie im Bereich „Bei Eingabe“ der Szene
Spelling
auf + . - Klicken Sie auf Webhook aufrufen und geben Sie getSpellingWord in das Textfeld des Ereignishandlers ein.
- Wählen Sie Aufforderungen senden aus.
- Ersetzen Sie den Satz im
speech
(Enter the response that users will see or hear...
) durch {} . Die eigentliche Eingabeaufforderung wird vom Webhook ausgefüllt.
Vorschlagschips bieten dem Benutzer anklickbare Vorschläge, die Ihre Aktion als Benutzereingabe verarbeitet.
Gehen Sie folgendermaßen vor, um der Eingabeaufforderung der Spelling
Vorschlagschips hinzuzufügen:
- Klicken Sie in der Szene
Spelling
auf „Vorschläge“ unter dem Code-Editor. Diese Aktion fügt drei Vorschlagschips hinzu. - Ersetzen Sie im
title
Suggested Response
“ durch'Repeat'
. - Fügen Sie mit derselben Formatierung manuell einen Vorschlagschip mit dem Titel
'Skip'
hinzu. - Fügen Sie mit derselben Formatierung manuell einen Vorschlagschip mit dem Titel
'Quit'
hinzu. Ihr Code sollte wie das folgende Snippet aussehen: - Klicken Sie auf Speichern .
suggestions: - title: 'Repeat' - title: 'Skip' - title: 'Quit'
Erstellen Sie Repeat
Um die repeat
zu erstellen, führen Sie die folgenden Schritte aus:
- Klicken Sie in der Navigation auf „Entwickeln“ .
- Klicken Sie in der Navigation auf Benutzerdefinierte Absichten , um die Liste der Absichten zu öffnen.
- Klicken Sie am Ende der Absichtsliste auf + (Pluszeichen) . Benennen Sie die neue
repeat
und drücken SieEnter
. - Klicken Sie auf die
repeat
, um die Seite mit derdefinition
zu öffnen. - Klicken Sie im Abschnitt „Trainingsphrasen hinzufügen“ auf das Textfeld „Phrase eingeben“ und geben Sie die folgenden Phrasen ein:
-
one more time please
-
say the word again
-
repeat the word
-
tell me again
-
repeat
- Klicken Sie auf Speichern .
Fügen Sie der Spelling
repeat
hinzu
Jetzt kann die Aktion verstehen, wenn ein Benutzer eine „Wiederholungsabsicht“ zum Ausdruck bringt. Sie können die repeat
Benutzerabsicht zur Spelling
hinzufügen, da der Benutzer auf die Spelling
reagiert („ Buchstabieren Sie das Wort mit phonetischem Alphabet “).
Um diese Benutzerabsicht zur Spelling
hinzuzufügen, führen Sie die folgenden Schritte aus:
- Klicken Sie in der Navigation auf die Szene Rechtschreibung .
- Klicken Sie in der Szene
Spelling
“ neben „Benutzerabsichtsbehandlung“ auf das Pluszeichen „+“ . - Wählen Sie im Dropdown-Menü „Absicht“ die Option „Wiederholen“ aus.
- Aktivieren Sie „Rufen Sie Ihren Webhook auf“ und geben Sie „repeatSpellingWord“ in das Event-Handler-Textfeld ein, um die Wortdefinition zu erhalten.
- Aktivieren Sie „Eingabeaufforderungen senden“ .
- Ersetzen Sie den Satz im
speech
(Enter the response that users will see or hear...
) durch ''. Die eigentliche Eingabeaufforderung wird vom Webhook ausgefüllt.
Vorschlagschips zu „Wenn Wiederholung übereinstimmt“ hinzufügen
- Klicken Sie unter „ Wenn Wiederholung übereinstimmt “ unter Benutzerabsichtsbehandlung auf Vorschläge unter dem Code-Editor. Diese Aktion fügt drei Vorschlagschips hinzu.
- Ersetzen Sie im
title
Suggested Response
“ durch'Skip'
. - Fügen Sie mit derselben Formatierung manuell einen Vorschlagschip mit dem Titel
'Quit'
hinzu. Ihr Code sollte wie das folgende Snippet aussehen:
suggestions: - title: 'Skip' - title: 'Quit'
- Klicken Sie auf Speichern.
definition
erstellen
Um die definition
zu erstellen, führen Sie die folgenden Schritte aus:
- Klicken Sie in der Navigation auf „Entwickeln“ .
- Klicken Sie in der Navigation auf Benutzerdefinierte Absichten , um die Liste der Absichten zu öffnen.
- Klicken Sie am Ende der Absichtsliste auf + (Pluszeichen) . Benennen Sie die neue
definition
und drücken SieEnter
. - Klicken Sie auf die
definition
, um die Seite mit derdefinition
zu öffnen. - Klicken Sie im Abschnitt „Trainingsphrasen hinzufügen“ auf das Textfeld „Phrase eingeben“ und geben Sie die folgenden Phrasen ein:
-
I would like to know the definition
-
tell me the definition
-
what does it mean
-
meaning
-
definition
-
what is the definition?
- Klicken Sie auf Speichern .
Fügen Sie der Spelling
definition
hinzu
Jetzt kann die Aktion verstehen, wann ein Benutzer eine „Definitions“ -Absicht zum Ausdruck bringt. Sie können die definition
der Benutzerabsicht zur Spelling
hinzufügen, da der Benutzer auf die Spelling
reagiert („ Buchstabieren Sie das Wort mit phonetischem Alphabet “).
Befolgen Sie die folgenden Schritte, um diese Benutzerabsicht in die Spelling
hinzuzufügen:
- Klicken Sie in der Navigation auf die Rechtschreibszene .
- Klicken Sie in der
Spelling
neben dem Umgang mit Benutzerabsichten auf das + (Plus -Zeichen) . - Wählen Sie Definition in der Dropdown-Absicht.
- Überprüfen Sie den Anruf in Ihrem Webhook und geben Sie DefinitionsOfSpellingWord im Ereignis -Handler -Textfeld ein, um die Wortdefinition zu erhalten.
- Überprüfen Sie die Eingabeaufforderungen .
- Ersetzen Sie den Satz im
speech
(Enter the response that users will see or hear...
) durch ''. Die tatsächliche Eingabeaufforderung wird von Webhook besiedelt.
Fügen Sie der Webhook -Antwort Vorschlag -Chips hinzu
- Klicken Sie in der
Start
auf Vorschläge unter dem Code -Editor. Diese Aktion fügt drei Vorschlag -Chips hinzu. - Ersetzen Sie im
title
Suggested Response
durch'Skip'
. - Fügen Sie mit derselben Formatierung einen Vorschlag -Chip mit dem Titel
'Quit'
manuell hinzu. Ihr Code sollte wie das folgende Snippet aussehen:
suggestions: - title: 'Skip' - title: 'Quit'
- Klicken Sie auf Speichern .
Überspringen Sie skip
Absicht
Befolgen Sie die folgenden Schritte, um die skip
zu erstellen:
- Klicken Sie in der Navigation auf Entwicklung .
- Klicken Sie in der Navigation auf Absichten , um die Absichtenliste zu öffnen.
- Klicken Sie am Ende der Absichtenliste + (plus Zeichen) . Nennen Sie die neue Absicht
skip
und drücken SieEnter
. - Klicken Sie auf die Absicht
skip
, um die Seiteskip
" zu öffnen. - Klicken Sie im Abschnitt "Trainingsphrasen hinzufügen" auf das Textfeld eingeben und die folgenden Phrasen eingeben:
-
next word
-
go next
-
next
-
skip
-
skip word
- Klicken Sie auf Speichern .
Fügen Sie Skip
Absicht in die Spelling
hinzu
Jetzt kann die Aktion verstehen, wenn ein Benutzer eine "Übersprung" -Absicht zum Ausdruck bringt. Sie können die Spelling
skip
, da der Benutzer auf die Spelling
reagiert (" Das Wort mit phonetischem Alphabet buchstabieren ").
Befolgen Sie die folgenden Schritte, um diese Benutzerabsicht in die Spelling
hinzuzufügen:
- Klicken Sie in der Navigation auf die Rechtschreibszene .
- Klicken Sie in der
Spelling
neben dem Benutzerabsichten Handlin G auf das + (plus Zeichen) . - Wählen Sie in der Dropdown-Absicht überspringen .
- Klicken Sie im Abschnitt Übergang rechts auf das Dropdown-Menü und wählen Sie
Spelling
.
- Klicken Sie auf Speichern .
Erstellen Sie die Absicht quit
Befolgen Sie die folgenden Schritte, um die Absicht der Quit
zu erstellen:
- Klicken Sie in der Navigation auf Entwicklung .
- Klicken Sie in der Navigation auf Absichten , um die Absichtenliste zu öffnen.
- Klicken Sie am Ende der Absichtenliste + (plus Zeichen) . Nennen Sie die neue Absicht
Quit
und drücken SieEnter
. - Klicken Sie auf die Absicht der
Quit
, um die Seite Definition intent zu öffnen. - Klicken Sie im Abschnitt "Trainingsphrasen hinzufügen" auf das Textfeld eingeben und die folgenden Phrasen eingeben:
-
I quit
-
Goodbye
-
Cancel
-
Exit
-
Quit
- Klicken Sie auf Speichern.
Fügen Sie Quit
Absicht der Spelling
hinzu, die Szene zu beenden
Jetzt kann die Aktion verstehen, wenn ein Benutzer eine Absicht "Beendigung" ausdrückt. Sie können die Absicht der quit
der Spelling
hinzufügen, da der Benutzer auf die Spelling
reagiert (" Das Wort mit phonetischem Alphabet buchstabieren ").
Befolgen Sie die folgenden Schritte, um diese Benutzerabsicht in die Spelling
hinzuzufügen:
- Klicken Sie in der Navigation auf die Rechtschreibszene .
- Klicken Sie in der
Spelling
neben dem Umgang mit Benutzerabsichten auf das + (Plus -Zeichen) . - Wählen Sie in der Dropdown-Absichts-Absicht aus .
- Klicken Sie im Abschnitt Übergang rechts auf das Dropdown-Menü und wählen Sie
End conversation
. - Klicken Sie auf Speichern .
Erstellen Sie einen phonetic_alphabet
-Typ
In diesem Abschnitt erstellen Sie einen neuen Typ namens phonetic_alphabet
, der die phonetischen Alphabetoptionen angibt, die die Benutzer das Wort buchstabieren können. Sie können auch einige Synonyme für diese Optionen definieren, falls ein Benutzer etwas Ähnliches sagt. In einem späteren Abschnitt fügen Sie einen Slot des phonetic_alphabet
hinzu, um anzugeben, dass Sie die Antwort des Benutzers erhalten möchten.
Befolgen Sie die folgenden Schritte, um den Typ phonetic_alphabet
zu erstellen:
- Klicken Sie in der Navigation auf Entwicklung .
- Klicken Sie unter Typen auf das + (plus Zeichen) .
- Geben Sie
phonetic_alphabet
ein und drücken SieEnter
. - Klicken Sie auf
phonetic_alphabet
, um die Optionen zu öffnen. - In welcher Art von Werten unterstützt dieser Typ? Abschnitt, wählen Sie die Option Wörter und Synonyme aus
- Geben Sie die folgenden Einträge und entsprechenden Werte in den Abschnitt "Einträge hinzufügen" ein:
A | Alpha, Apple, Amsterdam |
B | Bravo, Butter, Baltimore |
C | Charlie, Katze, Casablanca |
D | Delta, Hund, Dänemark |
e | Echo, Edward, Edison |
F | Foxtrot, Fox, Florida |
G | Golf, George, Gallipoli |
H | Hotel, Harry, Havanna |
ich | Indien, Tinte, Italien |
J | Juliette, Johnny, Jerusalem |
k | Kilo, König, Kilogramm |
l | Lima, Liebe, London |
M | Mike, Geld, Madagaskar |
N | November, New York, Nancy |
Ö | Oscar, Orange, Oslo |
P | Papa, Paris, Peter |
Q | Quebec, Königin |
R | Romeo, Roma, Robert |
S | Sierra, Zucker, Santiago |
T | Tango, Tommy, Tripolis |
u | Uniform, Regenschirm, Onkel |
v | Victor, Essig, Valencia |
w | Whisky, William, Washington |
X | Röntgenaufnahme |
y | Yankee, Gelb, Yorker |
z | Zulu, Zebra, Zürich |
Ihre Schlüsselwerttabelle sollte wie Folgendes aussehen:
- Klicken Sie auf Speichern .
Konfigurieren Sie die Schlitzfüllung
Als nächstes müssen Sie die Slot -Füllung in der Rechtschreibszene konfigurieren. Befolgen Sie die folgenden Schritte, um die Logik mit Slotfüllung zu konfigurieren:
- Klicken Sie in der Navigation auf die Rechtschreibszene .
- Klicken Sie in der
Spelling
auf das + (plus Zeichen) für die Schlitzfüllung . - Fügen Sie im Feld Slot -Name
userresponse
als Slot -Name hinzu. - Wählen Sie in der Dropdown- Art-Art von Typ Phonetic_alphabet als Steckplatztyp aus.
- Überprüfen Sie , ob dieser Slot eine Liste von Werten akzeptiert
- Überprüfen Sie, ob dieser Steckplatz erforderlich ist .
- Wählen Sie die Option "Slot Value Reportback anpassen" und geben Sie die USERResponse in das Session -Parameter -Textfeld ein.
- Klicken Sie auf Speichern .
Fügen Sie dem Spelling
den Zustand hinzu
Um der Spelling
Bedingung hinzuzufügen, befolgen Sie die folgenden Schritte:
- Klicken Sie in der Navigation auf die Rechtschreibszene .
- Klicken Sie in der
Spelling
neben dem Zustand auf das + (plus Zeichen) . - Geben Sie
scene.slots.status == "FINAL"
als Bedingung ein - Überprüfen Sie das Event -Handler -Textfeld , um die Benutzerantwort zu überprüfen.
- Überprüfen Sie die Eingabeaufforderungen.
- Ersetzen Sie den Satz im
speech
(Enter the response that users will see or hear...
) durch {} . Die tatsächliche Eingabeaufforderung wird von Webhook besiedelt.
Fügen Sie der Webhook -Antwort Vorschlag -Chips hinzu
- Klicken Sie in der
Start
auf Vorschläge unter dem Code -Editor. Diese Aktion fügt drei Vorschlag -Chips hinzu. - Ersetzen Sie im
title
Suggested Response
durch'Next'
. - Fügen Sie mit derselben Formatierung einen Vorschlag -Chip mit dem Titel
'Quit'
manuell hinzu. Ihr Code sollte wie das folgende Snippet aussehen:
suggestions: - title: 'Next' - title: 'Quit'
- Klicken Sie auf Speichern .
12. Rechtschreibpraxis im Simulator
Befolgen Sie die folgenden Schritte, um Ihre Aktion im Simulator zu testen:
- Klicken Sie in der Navigationsleiste auf Test , um Sie zum Simulator zu bringen.
- Um Ihre Aktion im Simulator zu testen, geben Sie
Talk to Spelling Practice
im Eingabebuch. - Drücken Sie Enter . Ihre Aktion sollte mit der Eingabeaufforderung der
Main invocation
und der hinzugefügtenStart
-Eingabeaufforderung reagieren. weitermachen?" . - Sag Ja, um fortzufahren
- Simulator spielt ein Wortklang zum Zauber
- Sie können das Wort mit phonetischen Alphabeten buchstabieren. Zum Beispiel besser sagen oder tippen "Bravo Echo Tango Tango Echo Romeo"
- Simulator antwortet entweder mit der richtigen oder falschen Antwort.
- Sagen Sie als nächstes , um das nächste Wort fortzusetzen oder zu beenden, um die Spielschleife zu verlassen.
13. Herzlichen Glückwunsch
Herzlichen Glückwunsch, Sie haben Ihr Spiel und Ihre Rechtschreibpraxis erfolgreich aufgebaut!
Sie kennen jetzt die wichtigsten Schritte, die erforderlich sind, um ein Spiel mit Cloud Firestore, Cloud -Funktionen und Google Assistant Action Builder zu erstellen.
Was du abgedeckt hast
- Wie man mit Cloud Firestore interagiert
- So verwenden Sie Slots, um Daten vom Benutzer zu sammeln
- So verarbeiten Sie die Eingabe eines Benutzers und geben eine Antwort zurück
- So verwenden Sie Bedingungen, um einer Szene Logik hinzuzufügen
- So fügen Sie eine Spielschleife hinzu
Zusätzliche Lernressourcen
Sie können diese Ressourcen untersuchen, um über das Erstellen von Aktionen für Google Assistant zu lernen:
- Dokumentation zur Entwicklung von Aktionen für Google Assistant
- Aktionen auf Google Github -Seite für Beispielcode und Bibliotheken
- Die offizielle Reddit -Community für Entwickler, die mit dem Google Assistant zusammenarbeiten
- Richtlinien für Konversationsdesign für Best Practices und Richtlinien in Bezug auf Gesprächsaktionen
- Einführung in Cloud Firestore
Reinigen Sie Ihr Projekt [empfohlen]
Um mögliche Gebühren zu vermeiden, wird empfohlen, Projekte zu entfernen, die Sie nicht verwenden möchten. Befolgen Sie die folgenden Schritte, um die in diesem Codelab erstellten Projekte zu löschen:
- Um Ihr FireBase -Projekt und Ihre Ressourcen zu löschen, führen Sie die im Abschnitt zum Schalten abgeschalteten Projekte (Löschen) von den Schritten aus.
Achtung: Stellen Sie sicher, dass Sie das richtige Projekt für das Löschen auf der Einstellungen der Google Cloud Console auswählen.
- Optional: Um Ihr Projekt sofort aus der Aktionskonsole zu entfernen, führen Sie die im Abschnitt Löschen eines Projektabschnitts aufgeführten Schritte aus. Wenn Sie diesen Schritt nicht abschließen, wird Ihr Projekt nach ungefähr 30 Tagen automatisch entfernt.
Folgen Sie @actionsgoogle & @Firebase auf Twitter, um uns auf unsere neuesten Ankündigungen und Tweet zu #Googleio zu halten, um das zu teilen, was Sie aufgebaut haben!