1. Übersicht
Mit der Google Assistant-Entwicklerplattform können Sie Software erstellen, um die Funktionen von Google Assistant, einem virtuellen persönlichen Assistenten, auf mehr als einer Milliarde Geräten zu erweitern, darunter Smart Speaker, Smartphones, Autos, Fernseher, Kopfhörer und mehr. Nutzer interagieren mit Assistant, um Dinge zu erledigen, z. B. Lebensmittel zu kaufen oder eine Fahrt zu buchen. Als Entwickler können Sie die Assistant-Entwicklerplattform nutzen, um auf einfache Weise ansprechende und effektive Unterhaltungen zwischen Nutzern und Ihrem eigenen Drittanbieter-Fulfillment-Dienst zu erstellen und zu verwalten.
In diesem Codelab werden Konzepte für die Entwicklung mit Google Assistant, Cloud Functions und Cloud Firestore behandelt. In diesem Codelab erstellen Sie das Spiel „Rechtschreibübung“, in dem Google Assistant Nutzer auffordert, Wörter zu buchstabieren.
Umfang
In diesem Codelab entwickeln Sie ein anspruchsvolles Spiel mit den folgenden Funktionen:
- Empfängt Rechtschreibantworten vom Nutzer und ändert je nach Wert die Konversationsaufforderungen.
- Antwortet mit Hinweisen zur Schreibweise des Wortes, z. B. mit der Definition oder durch Wiederholung des Wortes
- Erstellt eine Spielschleife, damit ein Nutzer nach dem Buchstabieren des Wortes wieder mit Assistant interagieren kann.
Bevor Sie mit der Entwicklung beginnen, können Sie mit der Live-Aktion auf Ihrem Google Assistant-fähigen Gerät interagieren, indem Sie „Hey Google, sprich mit Spelling Practice“ sagen. Der Standardpfad durch diese Aktion für einen wiederkehrenden Nutzer sieht so aus:
Wenn Sie dieses Codelab abgeschlossen haben, hat Ihre fertige Aktion den folgenden Konversationsablauf:
Lerninhalte
- Mit Cloud Firestore interagieren
- Slots verwenden, um Daten vom Nutzer zu erheben
- Nutzereingaben verarbeiten und eine Antwort zurückgeben
- Bedingungen verwenden, um einer Szene Logik hinzuzufügen
- Spielschleife hinzufügen
Voraussetzungen
Für dieses Codelab sind folgende Voraussetzungen erforderlich:
- Ein Webbrowser wie Google Chrome
- Eine IDE zum Schreiben von Cloud Functions-Funktionen.
- Eine Zahlungsmethode In diesem Codelab wird Cloud Functions for Firebase verwendet. Dazu muss für Ihr Projekt der Firebase-Tarif „Blaze“ aktiviert sein ( weitere Informationen).
- Ein Terminal zum Ausführen von Shell-Befehlen
- Node.js 10 oder höher
2. Funktionscode abrufen
Klonen Sie das GitHub-Repository über die Befehlszeile:
$ git clone https://github.com/FirebaseExtended/codelab-actions-firestore
3. Firebase-Projekt erstellen und App einrichten
Firebase-Projekt erstellen
- Melden Sie sich in Firebase an.
- Klicken Sie in der Firebase Console auf Projekt hinzufügen (oder Projekt erstellen) und geben Sie dann
Spelling-Practice
als Namen für Ihr Firebase-Projekt ein.
- Klicken Sie sich durch die Optionen zur Projekterstellung. Akzeptieren Sie die Firebase-Nutzungsbedingungen, 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
Upgrade auf den Blaze-Tarif durchführen
Wenn Sie Cloud Functions for Firebase verwenden möchten, müssen Sie ein Upgrade Ihres Firebase-Projekts auf den Blaze-Tarif durchführen. Das bedeutet, dass Sie Ihrem Projekt ein Google Cloud-Rechnungskonto zuweisen. Dazu müssen Sie eine Kreditkarte oder eine andere Zahlungsmethode angeben.
Alle Firebase-Projekte, auch solche mit dem Blaze-Tarif, haben weiterhin Zugriff auf die kostenlosen Nutzungskontingente für Cloud Functions. Die in diesem Codelab beschriebenen Schritte fallen unter die kostenlosen Nutzungslimits. 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. Firebase CLI installieren
Mit der Firebase CLI (Befehlszeile) können Sie Ihre Cloud Functions bereitstellen.
Je nach Betriebssystem und Anwendungsfall gibt es verschiedene Optionen für die Installation der Firebase CLI. In den folgenden Schritten wird die häufigste Option beschrieben, wenn Sie auch Cloud Functions verwenden.
- Achten Sie darauf, dass Sie npm installiert haben. Das ist in der Regel bei Node.js der Fall.
- Installieren oder aktualisieren Sie die CLI mit dem folgenden npm-Befehl:
$ npm -g install firebase-tools
- Prüfen Sie mit folgendem Befehl, ob die Befehlszeile korrekt installiert wurde:
$ firebase --version
Die Version der Firebase-CLI muss 9.0.0 oder höher sein, damit alle neuen Funktionen für Cloud Functions verfügbar sind. Falls nicht, führen Sie „npm install -g firebase-tools“ aus, um ein Upgrade durchzuführen (siehe oben).
- 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 der Anleitung. Wenn Sie dazu aufgefordert werden, können Sie einen beliebigen Alias auswählen, z. B.
codelab
.
$ firebase use --add
5. Das Funktionsverzeichnis
Als Nächstes fügen Sie mithilfe des Firebase SDK for Cloud Functions Funktionen hinzu, um das Backend für das Spiel Spelling Practice zu erstellen.
Mit Cloud Functions können Sie Code in der Cloud ausführen, ohne einen Server einrichten zu müssen. In diesem Codelab erfahren Sie, wie Sie Funktionen erstellen, die auf Firebase Authentication-, Cloud Storage- und Firebase Realtime Database-Ereignisse reagieren. Beginnen wir mit der Authentifizierung.
Wenn Sie das Firebase SDK for Cloud Functions verwenden, befindet sich Ihr Functions-Code standardmäßig im Verzeichnis functions
. Um Ihnen die Arbeit zu erleichtern, haben wir bereits die Datei functions/index.js
erstellt, in die Ihr Code eingefügt wird. Sie können das Verzeichnis functions
gerne überprüfen, bevor Sie fortfahren.
$ cd functions $ ls
Der Functions-Code ist auch eine Node.js-App. Daher ist eine package.json
-Datei mit Angaben zu Ihrer App und einer Liste der Abhängigkeiten erforderlich.
Wenn Sie sich nicht mit Node.js auskennen, sollten Sie sich vor dem Fortfahren mit dem Codelab näher damit vertraut machen.
In der Datei package.json
sind bereits zwei erforderliche Abhängigkeiten aufgeführt: das Firebase SDK for Cloud Functions und das Firebase Admin SDK. Wenn Sie sie lokal installieren möchten, führen Sie npm install
im Verzeichnis functions
aus:
$ npm install
Sehen 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.
Zuerst importieren Sie 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. Erforderliche Module importieren
Für dieses Codelab sind drei Module erforderlich.
- Mit dem Modul
firebase-functions
können wir die Trigger für unsere Cloud Functions schreiben. - Mit dem Modul
firebase-admin
können wir die Firebase-Plattform auf einem Server mit Administratorzugriff verwenden, z. B. um in Cloud Firestore zu schreiben. - Die Actions SDK Node.js Fulfillment Library erfüllt Actions SDK-Handler für Google Assistant.
- Installieren Sie das Actions SDK mit dem folgenden npm-Befehl:
$ npm install @assistant/conversation
- Ersetzen Sie in der Datei
index.js
den ersten TODO-Eintrag durch Folgendes.
Durch diese Änderungen werden alle erforderlichen Module importiert.
Außerdem kann das Firebase Admin SDK automatisch konfiguriert werden, wenn es in einer Cloud Functions-Umgebung oder in einem anderen Google Cloud-Container bereitgestellt wird. Das passiert, wenn wir admin.initializeApp();
in den Änderungen unten aufrufen.
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 mit Funktionen hinzu, um Assistant-Aktionen zu unterstützen.
7. Funktionen erstellen
Wortdefinitionen abrufen und in Cloud Firestore schreiben
Sie verwenden die öffentliche API von dictionaryapi.dev
, um die Wortdefinitionen abzurufen.
Ersetzen Sie in der Datei index.js
den TODO-Eintrag 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(); }
Cloud Firestore-Trigger hinzufügen
Als Nächstes erstellen Sie eine Cloud Functions-Funktion, die immer dann ausgelöst wird, wenn in Cloud Firestore ein neues Dokument erstellt wird. Dazu wird die dictionaryapi.dev
API aufgerufen, um Wortdefinitionen über die getWordDetailsFromDictionaryAPI
-Funktion abzurufen, die wir gerade oben geschrieben haben.
Ersetzen Sie in der Datei index.js
den TODO-Eintrag für createSpellingPracticeWord
durch Folgendes:
index.js
// Firestore-Trigger, der für jedes neue Firestore-Dokument Wortdefinitionen über getWordDetailsFromDictionaryAPI abruft
exports.createSpellingPracticeWord = functions.firestore .document('wordlist/{word}') .onCreate((snap, context) => { const newValue = snap.data(); const word = newValue.word; getWordDetailsFromDictionaryAPI(word); });
Eine Liste mit Wörtern für das Spiel abrufen
Sie können eine Cloud Functions-Funktion schreiben, die eine Liste von Rechtschreibübungen aus Cloud Firestore für den Assistant abruft. Dazu verwenden wir den App-Handler.
Ersetzen Sie in der Datei index.js
den TODO-Kommentar für getSpellingWordList
durch Folgendes.
Dadurch, dass diese Funktion dem spezifischen Objekt app.handle
hinzugefügt wird, kann über Assistant darauf zugegriffen werden.
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; }); }); })
Ein Wort aus einer Assistant-Sitzung abrufen
Sie können eine Cloud Functions-Funktion schreiben, die das nächste Rechtschreibwort aus der Wortliste zurückgibt.
Ersetzen Sie in der Datei index.js
den TODO-Eintrag 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'); });
Das Spiel soll das Wort wiederholen
Sie können eine Cloud Functions-Funktion schreiben, die das aktuelle Wort für das Spiel wiederholt.
Ersetzen Sie in der Datei index.js
den TODO-Eintrag 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'); });
Definition des Wortes abrufen
Sie können eine Cloud Functions-Funktion schreiben, die die Definition des aktuellen Wortes für das Spiel bereitstellt.
Ersetzen Sie in der Datei index.js
den TODO-Eintrag 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); });
Rechtschreibantwort des Nutzers prüfen
Sie können eine Cloud Functions-Funktion schreiben, die die Antwort des Nutzers darauf überprüft, wie das aktuelle Wort für das Spiel geschrieben wird.
Ersetzen Sie in der Datei index.js
den TODO-Eintrag 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);
Alle Funktionen bereitstellen
Ihre Cloud Functions sind 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
Die Ausgabe der Konsole sollte so aussehen:
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 Funktion „ActionsOnGoogleFulfillment“ für die spätere Verwendung. Um den Endpunkt zu erhalten, öffnen Sie die Firebase Console und klicken Sie dann auf das Projekt spelling-practice. Öffnen Sie das Functions-Dashboard, um den Funktionsendpunkt aufzurufen.
Sie haben alle erforderlichen Funktionen hinzugefügt. Kommen wir nun zur Einrichtung von Cloud Firestore.
8. Cloud Firestore aktivieren
Sie müssen Cloud Firestore aktivieren.
Klicken Sie in der Firebase Console im Abschnitt Build auf Firestore. Klicken Sie dann auf Datenbank erstellen.
Der Zugriff auf Daten in Cloud Firestore wird durch Sicherheitsregeln gesteuert. Zuerst müssen Sie einige grundlegende Regeln für die Daten festlegen. Klicken Sie auf Firestore und fügen Sie dann auf dem Tab „Regeln“ der Firebase Console die folgenden Regeln hinzu. Klicken Sie anschließend auf Veröffentlichen.
Die folgenden Regeln beschränken den Datenzugriff auf angemeldete Nutzer. Dadurch wird verhindert, dass nicht authentifizierte Nutzer Daten lesen oder schreiben können.
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. Rechtschreibwörterdaten zu Cloud Firestore hinzufügen
In diesem Schritt schreiben Sie Daten zu Rechtschreibwörtern in Cloud Firestore, damit Sie eine Liste von Wörtern für den Assistant (und das Spiel) generieren 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 aus dem Dictionary API-Dienst abzurufen.
Cloud Firestore-Sammlung erstellen
- Rufen Sie in der Firebase Console den Abschnitt „Cloud Firestore“ auf.
- Klicken Sie auf + Sammlung starten.
- Geben Sie im Textfeld Sammlungs-ID
wordlist
ein und klicken Sie auf Weiter.
Als Nächstes erstellen wir ein Dokument für das Wort Vereinbarung.
- Geben Sie im Textfeld Dokument-ID den Wert
agreement
ein. - Geben Sie in das Textfeld Feld den Wert
word
und in das Textfeld Wert den Wertagreement
ein. - Klicken Sie auf Speichern.
Wenn Sie dieses Dokument Cloud Firestore hinzufügen, wird die Funktion createSpellingPracticeWord ausgelöst, um die Definitionsdetails für das Wort abzurufen. Fügen Sie weitere Wörter hinzu (z. B. „Ehrfurcht“, „Auto“, „wahr“, „erzählen“, „besser“, „Pendeln“), indem Sie für jedes Wort ein neues Dokument erstellen.
10. Google Assistant einrichten
In den folgenden Abschnitten wird beschrieben, wie Sie Ihre Google Assistant-Entwicklungsumgebung einrichten und Ihr Actions-Projekt erstellen.
Google-Berechtigungseinstellungen prüfen
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. So aktivieren Sie Berechtigungen:
- Rufen Sie die Seite Aktivitätseinstellungen auf.
- Melden Sie sich mit Ihrem Google-Konto an, falls Sie das noch nicht getan haben.
- Aktivieren Sie die folgenden Berechtigungen:
- Web- & App-Aktivitäten
- Setzen Sie unter Web- & App-Aktivitäten ein Häkchen neben Auch den Chrome-Verlauf sowie Aktivitäten auf Websites, in Apps und auf Geräten berücksichtigen, die Google-Dienste nutzen.
Actions-Projekt erstellen
Ihr Actions-Projekt ist ein Container für Ihre Aktion. So erstellen Sie Ihr Actions-Projekt für dieses Codelab:
- Öffnen Sie die Actions Console.
- Klicken Sie auf Neues Projekt.
- Nutzungsbedingungen akzeptieren
- Geben Sie
spelling-practice-codelab
ein oder wählen Sie es aus. Sie haben es mit der Firebase Console erstellt. Der Name dient nur zu Ihrer internen Referenz. Später können Sie einen externen Namen für Ihr Projekt festlegen.)
- Klicken Sie auf Projekt importieren.
- Wählen Sie auf dem Bildschirm What kind of Action do you want to build? (Welche Art von Action möchten Sie erstellen?) die Karte Custom (Benutzerdefiniert) aus.
- Klicken Sie auf Weiter.
- Wählen Sie die Karte Leeres Projekt aus.
- Klicken Sie auf Start building (Erstellen starten).
- Geben Sie Rechtschreibübung als Anzeigenamen ein und klicken Sie auf „Speichern“.
Nutzer starten die Unterhaltung mit Ihrer Aktion über die Invocation. Nutzer können Ihre Aktion beispielsweise mit einem Satz wie Hey Google, sprich mit Rechtschreibübung aufrufen. Rechtschreibübung ist dabei der Anzeigename.
Ihre Aktion muss einen Anzeigenamen haben, wenn Sie sie in der Produktion bereitstellen möchten. Zum Testen Ihrer Aktion müssen Sie den Anzeigenamen jedoch nicht definieren. Stattdessen können Sie im Simulator den Satz Talk to my test app verwenden, um Ihre Aktion aufzurufen.
Auftragsausführung konfigurieren
Sie müssen die Ereignishandler für die Cloud Functions, die Sie zuvor in diesem Codelab geschrieben und bereitgestellt haben, mit Assistant verbinden.
So konfigurieren Sie die Auftragsausführung:
- Klicken Sie in der Seitenleiste auf Webhook.
- Wählen Sie HTTPS-Endpunkt als Erfüllungsoption aus:
- Geben Sie die URL des Endpunkts Ihrer Funktion in das Textfeld HTTPS-Endpunkt ein und klicken Sie auf Speichern.
Im nächsten Abschnitt passen Sie den Prompt für Ihren Hauptaufruf in der Actions Console an.
Hauptaufruf einrichten
Sie müssen den Hauptaufruf bearbeiten, um festzulegen, was passiert, nachdem ein Nutzer Ihre Action aufgerufen hat.
Standardmäßig stellt Actions Builder einen generischen Prompt bereit, wenn Ihr Aufruf ausgelöst wird („Beginnen Sie mit der Entwicklung Ihrer Aktion, indem Sie den Hauptaufruf definieren.“).
So ändern Sie den Prompt, den Ihre Aktion an den Nutzer zurücksendet, wenn er Ihre Aktion aufruft:
- Klicken Sie in der Navigation auf Hauptaufruf.
- Klicken Sie das Kästchen
Call your webhook
an und fügen Sie den Namen des Event-HandlersgetSpellingWordList
in das Textfeld ein. - Ersetzen Sie im Code-Editor den Text im Feld
speech
durch die folgende Willkommensnachricht:Welcome to Spelling Practice
Hinweis:Sie können Ihre Prompts entweder im YAML- oder im JSON-Format bearbeiten.
- Klicken Sie auf Speichern.
Hauptaufruf im Simulator testen
Die Actions-Konsole bietet ein Webtool zum Testen Ihrer Action, den Simulator. Die Benutzeroberfläche simuliert Hardwaregeräte und ihre Einstellungen, sodass Sie mit Ihrer Action interagieren können, als würde sie auf einem Smart Display, Smartphone, Lautsprecher oder KaiOS ausgeführt.
So testen Sie den Hauptaufruf Ihrer Action im Simulator:
- Klicken Sie in der oberen Navigationsleiste auf Testen, um zum Simulator zu gelangen.
- Um Ihre Aktion im Simulator aufzurufen, geben Sie links oben im Eingabefeld
Talk to Spelling Practice
ein und drücken Sie dann die Eingabetaste auf Ihrer Tastatur.
Wenn Sie den Hauptaufruf Ihrer Aktion auslösen, antwortet Assistant mit Ihrer benutzerdefinierten Begrüßungsnachricht. An diesem Punkt endet die Unterhaltung, nachdem der Assistant mit einer Begrüßung geantwortet hat.
Ereignisprotokolle ansehen
Wenn Sie sich auf dem Tab Test befinden, wird im Bereich rechts das Ereignisprotokoll angezeigt, in dem der Unterhaltungsverlauf als Ereignisprotokoll dargestellt wird. In jedem Ereignisprotokoll werden die Ereignisse angezeigt, die während dieser Unterhaltungsrunde stattfinden. Wenn Sie das Ereignisprotokoll aufrufen möchten, klicken Sie auf das graue Symbol vor dem Ereignis.
Ihre Action hat derzeit ein Ereignisprotokoll, in dem sowohl die Eingabe des Nutzers („Talk to Spelling Practice“) als auch die Antwort Ihrer Action angezeigt werden. Der folgende Screenshot zeigt das Ereignisprotokoll Ihrer Aktion:
11. Konversation für Rechtschreibübungen erstellen
Nachdem Sie definiert haben, was passiert, nachdem ein Nutzer Ihre Aktion aufgerufen hat, können Sie den Rest der Unterhaltung Ihrer Aktion erstellen. Rechtschreibübung hat vier Szenen, die Sie jeweils aktivieren müssen, bevor sie ausgeführt werden können. Die häufigste Methode zum Aktivieren einer Szene besteht darin, Ihre Aktion so zu konfigurieren, dass ein Nutzer-Intent in einer Szene den Übergang zu einer anderen Szene auslöst und diese aktiviert.
Übergang vom Hauptaufruf zur Startszene
In diesem Abschnitt erstellen Sie eine neue Szene mit dem Namen Start
, in der der Nutzer gefragt wird, ob er Spelling Practice spielen möchte. Außerdem fügen Sie einen Übergang vom Hauptaufruf zur neuen Szene Start
hinzu.
So erstellen Sie diese Szene und fügen ihr eine Übergangsblende hinzu:
- Klicken Sie oben in der Navigationsleiste auf Entwickeln. Klicken Sie dann links im Navigationsbereich auf Hauptaufruf.
- Klicken Sie rechts im Bereich Übergang auf das Drop-down-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 der Action wird mitgeteilt, dass nach der Bereitstellung des Begrüßungsprompts für den Nutzer zur SzeneStart
gewechselt werden soll. - Klicken Sie in der linken Navigationsleiste auf Szenen, um die Liste der Szenen aufzurufen.
- Klicken Sie unter Szenen auf Starten, um die Szene
Start
aufzurufen. - Klicken Sie im Abschnitt Bei Eingabe der Szene
Start
auf +. - Wählen Sie Prompts senden aus.
- Ersetzen Sie den Satz im Feld
speech
(Enter the response that users will see or hear...
) durch eine Frage an den Nutzer: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 Nutzer anklickbare Vorschläge, die von Ihrer Action als Nutzereingabe verarbeitet werden. In diesem Abschnitt fügen Sie Vorschlags-Chips hinzu, die unter dem gerade konfigurierten Prompt angezeigt werden (Do you want to play
Spelling Practice
?
), um Nutzer auf Geräten mit Displays zu unterstützen.
So fügen Sie dem Prompt der Szene Start
Vorschlagschips hinzu:
- Klicken Sie in der Szene
Start
unter dem Code-Editor auf Vorschläge. Dadurch wird ein einzelner Vorschlags-Chip hinzugefügt. - Ersetzen Sie im Feld
title
Suggested Response
durch'Yes'
. - Fügen Sie manuell einen Vorschlagschip mit dem Titel
'No'
und'Help with Phonetics'
hinzu. Verwenden Sie dabei dieselbe Formatierung. Ihr Code sollte so aussehen: - Klicken Sie auf Speichern.
Aktion im Simulator testen
An diesem Punkt sollte Ihre Aktion vom Hauptaufruf zur Szene Start übergehen und den Nutzer fragen, ob er fortfahren möchte. Außerdem sollten Vorschlagschips auf dem simulierten Display angezeigt werden.
So testen Sie Ihre Action im Simulator:
- Klicken Sie in der Navigationsleiste auf Testen, um den Simulator aufzurufen.
- Wenn Sie Ihre Aktion im Simulator testen möchten, geben Sie
Talk to Spelling Practice
in das Eingabefeld ein. - Drücken Sie die Eingabetaste. Ihre Aktion sollte mit dem Prompt
Main invocation
und dem hinzugefügten Szenen-PromptStart
antworten, „Willkommen beim Buchstabieren. Buchstabieren Sie das Wort mithilfe des phonetischen Alphabets. Zum Beispiel „alpha“ für „a“, „bravo“ für „b“, „charlie“ für „c“ usw. Möchten Sie fortfahren?“
Der folgende Screenshot zeigt diese Interaktion:
- Klicken Sie auf den Vorschlagschip
Yes
,No
oderHelp with Phonetics
, um auf den Prompt zu reagieren. Sie können auch Ja, Nein oder Hilfe bei der Phonetik sagen oderYes
,No
oderHelp with Phonetics
in das Feld Eingabe eingeben.
Wenn Sie auf den Prompt antworten, antwortet Ihr Action mit einer Meldung, dass es Ihre Eingabe nicht versteht: „Das habe ich nicht verstanden. Kannst du es noch einmal versuchen?“ Da Sie Ihre Aktion noch nicht so konfiguriert haben, dass sie die Eingaben „Ja“ oder „Nein“ versteht und darauf reagiert, wird Ihre Eingabe einem NO_MATCH
-Intent zugeordnet.
Standardmäßig werden mit dem System-Intent NO_MATCH
allgemeine Antworten bereitgestellt. Sie können diese Antworten jedoch anpassen, um dem Nutzer mitzuteilen, dass Sie seine Eingabe nicht verstanden haben. Assistant beendet die Unterhaltung des Nutzers mit Ihrer Aktion, wenn die Nutzereingabe dreimal nicht zugeordnet werden kann.
„Nein“- und phonetische Intentionen hinzufügen
Da Nutzer jetzt auf die Frage Ihrer Action antworten können, können Sie Ihre Action so konfigurieren, dass sie die Antworten der Nutzer versteht (Ja, Nein oder Hilfe bei der Aussprache). In den folgenden Abschnitten erstellen Sie Nutzer-Intents, die abgeglichen werden, wenn der Nutzer Ja, Nein oder „Hilfe bei der Aussprache“ sagt, und fügen diese Intents der Szene Start
hinzu. Wir verwenden den System-Intent yes
und erstellen weitere Intents.
no
-Intent erstellen
Jetzt müssen Sie den Intent no
erstellen, damit der Nutzer verstanden wird und Sie ihm antworten können, wenn er das Spiel nicht spielen möchte. So erstellen Sie diesen Intent:
- Klicken Sie in der Navigation auf Entwickeln.
- Klicken Sie in der Navigation auf Benutzerdefinierte Intents, um die Liste der Intents zu öffnen.
- Klicken Sie am Ende der Liste mit den Intentionen auf das Pluszeichen (+). Geben Sie dem neuen Intent den Namen
no
und drücken Sie die Eingabetaste. - Klicken Sie auf Nein, um die Intent-Seite
no
zu öffnen. - Klicken Sie im Abschnitt Trainingsformulierungen hinzufügen in das Textfeld Formulierung eingeben und geben Sie die folgenden Formulierungen ein:
No
N
I don't want
nope
- Klicken Sie auf Speichern.
no
-Absicht zur Start
-Szene hinzufügen
Die Action kann jetzt verstehen, wenn ein Nutzer „Nein“ oder etwas Ähnliches wie „Nein“ sagt, z. B. „Nee“. Sie müssen der Start
-Szene die Nutzerabsicht no
hinzufügen, da der Nutzer auf den Start
-Prompt („Willkommen beim Rechtschreibtraining. Buchstabieren Sie das Wort mithilfe des phonetischen Alphabets. Zum Beispiel „alpha“ für „a“, „bravo“ für „b“, „charlie“ für „c“ usw. Möchten Sie fortfahren?“).
So fügen Sie diesen Intent für die Szene Start
hinzu:
- Klicken Sie in der Navigation auf die Szene Start.
- Klicken Sie in der Szene
Start
neben „Nutzerabsicht verarbeiten“ auf das Pluszeichen (+). - Wählen Sie im Abschnitt Intent im Drop-down-Menü die Option Nein aus.
- Klicken Sie auf Prompts senden und aktualisieren Sie das Feld
speech
mit dem folgenden Text:Good Bye
.
Der Code in Ihrem Editor sollte so aussehen:
candidates: - first_simple: variants: - speech: >- Goodbye.
- Wählen Sie im Bereich Übergang im Drop-down-Menü die Option Unterhaltung beenden aus.
- Klicken Sie auf Speichern.
no
-Intent im Simulator testen
An diesem Punkt versteht Ihre Aktion, wenn der Nutzer das Spiel nicht spielen möchte, und gibt die entsprechende Antwort zurück.
So testen Sie diesen Intent im Simulator:
- Klicken Sie in der Navigationsleiste auf Test.
- Geben Sie
Talk to Spelling Practice
in das Eingabefeld ein und drücken SieEnter
. - Geben Sie
No
in das Feld Eingabe ein und drücken Sie die Eingabetaste. Alternativ können Sie auf den Chip „Kein Vorschlag“ klicken.
Der Szene Start
den System-Intent YES
hinzufügen
Jetzt fügen wir der Szene Start
den SYSTEM-Intent YES hinzu, da der Nutzer mit „Ja“ auf den Prompt Start
(„Willkommen beim Buchstabiertraining. Buchstabieren Sie das Wort mithilfe des phonetischen Alphabets. Zum Beispiel „alpha“ für „a“, „bravo“ für „b“, „charlie“ für „c“ usw. Möchten Sie fortfahren?“).
So fügen Sie diesen Nutzer-Intent der Szene Start
hinzu:
- Klicken Sie in der Navigation auf die Szene Start.
- Klicken Sie in der Szene
Start
neben User intent handling (Umgang mit Nutzerabsichten) auf das + (Pluszeichen). - Wählen Sie unter „Alle System-Intents“ im Drop-down-Menü für Intents YES aus.
- Klicken Sie auf Webhook aufrufen und aktualisieren Sie das Textfeld
event handler
mit der Funktion, die Sie zuvor erstellt haben:getSpellingWordList
. - Klicken Sie im Abschnitt Übergang auf das Drop-down-Menü und wählen Sie Unterhaltung beenden aus.
- Klicken Sie auf Speichern.
YES
-Intent im Simulator testen
An diesem Punkt versteht Ihre Aktion, wann der Nutzer das Spiel spielen möchte, und gibt die entsprechende Antwort zurück.
So testen Sie diesen Intent im Simulator:
- Klicken Sie in der Navigationsleiste auf Test.
- Wenn Sie Ihre Aktion im Simulator testen möchten, geben Sie im Feld Eingabe
Talk to Spelling Practice
ein und drücken Sie die Eingabetaste. - Geben Sie
Yes
in das Feld Eingabe ein und drücken Sie die Eingabetaste. Alternativ können Sie auch auf den VorschlagschipYes
klicken.
Ihre Aktion ruft eine Liste aller Rechtschreibübungsbegriffe ab und speichert sie in der Sitzung. Ihre Aktion beendet dann die Sitzung, da Sie den Übergang End conversation
für die Intention YES
ausgewählt haben.
Phonetics
-Intent erstellen
So erstellen Sie den Intent Phonetics
:
- Klicken Sie in der Navigation auf Entwickeln.
- Klicken Sie in der Navigation auf Benutzerdefinierte Intents, um die Liste der Intents zu öffnen.
- Klicken Sie am Ende der Liste mit den Intentionen auf das Pluszeichen (+). Geben Sie einen Namen für den neuen Intent ein
phonetics
und drücken Sie die Eingabetaste.Enter
- Klicken Sie auf den Intent
phonetics
, um die Seite für den Intentphonetics
zu öffnen. - Klicken Sie im Abschnitt „Trainingsformulierungen hinzufügen“ auf das Textfeld Formulierung eingeben und geben Sie die folgenden Formulierungen ein:
how do I spell words
phonetics
help me with phonetics
phonetic alphabet
- Klicken Sie auf Speichern.
phonetics
-Absicht zur Start
-Szene hinzufügen
Die Aktion kann jetzt erkennen, wenn ein Nutzer den Intent phonetics (Phonetik) äußert. Sie können den Nutzer-Intent phonetics
der Szene Start
hinzufügen, da der Nutzer auf den Prompt Start
(„Willkommen beim Rechtschreibtraining. Buchstabieren Sie das Wort mithilfe des phonetischen Alphabets. Zum Beispiel „alpha“ für „a“, „bravo“ für „b“, „charlie“ für „c“ usw. Möchten Sie fortfahren?“).
So fügen Sie diesen Nutzer-Intent der Szene Start
hinzu:
- Klicken Sie in der Navigation auf die Szene Start.
- Klicken Sie in der Szene
Start
neben „User intent handling“ (Nutzerabsicht verarbeiten) auf das Pluszeichen (+). - Wählen Sie im Drop-down-Menü für Intentionen phonetics aus.
- Klicken Sie im Abschnitt Übergang auf das Drop-down-Menü und wählen Sie Unterhaltung beenden aus.
- Klicken Sie auf Speichern.
Von der Startszene zur Rechtschreibszene wechseln
In diesem Abschnitt erstellen Sie eine neue Szene namens Spelling, in der der Nutzer aufgefordert wird, das Wort mithilfe des phonetischen Alphabets zu buchstabieren.
So erstellen Sie diese Szene und fügen ihr eine Übergangsblende hinzu:
- Klicken Sie oben in der Navigationsleiste auf Entwickeln. Klicken Sie dann links im Navigationsbereich auf Szene starten.
- Klicken Sie im Bereich User intent handling (Umgang mit Nutzerabsicht) auf
when actions.intent.YES is matched
und dann rechts im Bereich transition (Übergang) auf das Drop-down-Menü. Geben SieSpelling
in das Textfeld ein. - Klicken Sie auf Hinzufügen. Dadurch wird eine Szene mit dem Namen
Spelling
erstellt und die Aktion wird angewiesen, nach der Übereinstimmung mit dem YES-Intent zur SzeneSpelling
zu wechseln. - Maximieren Sie in der linken Navigationsleiste Szenen, um die Liste der Szenen aufzurufen.
- Klicken Sie unter Szenen auf „Rechtschreibung“, um die Szene
Spelling
aufzurufen. - Klicken Sie im Abschnitt Bei Eingabe der Szene
Spelling
auf +. - Klicken Sie auf Webhook aufrufen und geben Sie getSpellingWord in das Textfeld für den Ereignishandler ein.
- Wählen Sie Prompts senden aus.
- Ersetzen Sie den Satz im Feld
speech
(Enter the response that users will see or hear...
) durch {}. Der tatsächliche Prompt wird per Webhook eingefügt.
Vorschlagschips bieten dem Nutzer anklickbare Vorschläge, die von Ihrer Action als Nutzereingabe verarbeitet werden.
So fügen Sie dem Prompt der Szene Spelling
Vorschlagschips hinzu:
- Klicken Sie in der Szene
Spelling
unter dem Code-Editor auf Vorschläge. Dadurch werden drei Vorschlags-Chips hinzugefügt. - Ersetzen Sie im Feld
title
Suggested Response
durch'Repeat'
. - Fügen Sie manuell einen Vorschlagschip mit dem Titel
'Skip'
hinzu und verwenden Sie dabei dieselbe Formatierung. - Fügen Sie manuell einen Vorschlagschip mit dem Titel
'Quit'
hinzu und verwenden Sie dabei dieselbe Formatierung. Ihr Code sollte so aussehen: - Klicken Sie auf Speichern.
suggestions: - title: 'Repeat' - title: 'Skip' - title: 'Quit'
Repeat
-Intent erstellen
So erstellen Sie den Intent repeat
:
- Klicken Sie in der Navigation auf Entwickeln.
- Klicken Sie in der Navigation auf Benutzerdefinierte Intents, um die Liste der Intents zu öffnen.
- Klicken Sie am Ende der Liste mit den Intentionen auf das Pluszeichen (+). Geben Sie einen Namen für den neuen Intent ein
repeat
und drücken Sie die Eingabetaste.Enter
- Klicken Sie auf den Intent
repeat
, um die Intent-Seitedefinition
zu öffnen. - Klicken Sie im Abschnitt Trainingsformulierungen hinzufügen auf das Textfeld Formulierung eingeben und geben Sie die folgenden Formulierungen ein:
one more time please
say the word again
repeat the word
tell me again
repeat
- Klicken Sie auf Speichern.
repeat
-Absicht zur Spelling
-Szene hinzufügen
Die Action kann jetzt erkennen, wenn ein Nutzer den Intent repeat (wiederholen) äußert. Sie können den Nutzer-Intent repeat
der Szene Spelling
hinzufügen, da der Nutzer auf den Prompt Spelling
(„Buchstabieren Sie das Wort mit dem phonetischen Alphabet.“) antwortet.
So fügen Sie diesen Nutzer-Intent der Szene Spelling
hinzu:
- Klicken Sie in der Navigation auf die Szene Rechtschreibung.
- Klicken Sie in der Szene
Spelling
neben User intent handling (Umgang mit Nutzerabsichten) auf das + (Pluszeichen). - Wählen Sie im Drop-down-Menü für Intentionen repeat aus.
- Klicken Sie auf Webhook aufrufen und geben Sie repeatSpellingWord in das Textfeld für den Event-Handler ein, um die Wortdefinition zu erhalten.
- Klicken Sie das Kästchen Prompts senden an.
- Ersetzen Sie den Satz im Feld
speech
(Enter the response that users will see or hear...
) durch „'. Der tatsächliche Prompt wird per Webhook eingefügt.
Vorschlagschips für „Bei Wiederholung“ hinzufügen
- Klicken Sie unter „User Intent handling“ (Umgang mit Nutzer-Intents) im Bereich When Repeat is matched (Wenn „Wiederholen“ erkannt wird) unter dem Code-Editor auf suggestions (Vorschläge). Dadurch werden drei Vorschlags-Chips hinzugefügt.
- Ersetzen Sie im Feld
title
Suggested Response
durch'Skip'
. - Fügen Sie manuell einen Vorschlagschip mit dem Titel
'Quit'
hinzu. Verwenden Sie dazu dieselbe Formatierung. Ihr Code sollte so aussehen:
suggestions: - title: 'Skip' - title: 'Quit'
- Klicken Sie auf Speichern.
definition
-Intent erstellen
So erstellen Sie den Intent definition
:
- Klicken Sie in der Navigation auf Entwickeln.
- Klicken Sie in der Navigation auf Benutzerdefinierte Intents, um die Liste der Intents zu öffnen.
- Klicken Sie am Ende der Liste mit den Intentionen auf das Pluszeichen (+). Geben Sie einen Namen für den neuen Intent ein
definition
und drücken Sie die Eingabetaste.Enter
- Klicken Sie auf den Intent
definition
, um die Seite für den Intentdefinition
zu öffnen. - Klicken Sie im Abschnitt Trainingsformulierungen hinzufügen auf das Textfeld Formulierung eingeben und geben Sie die folgenden Formulierungen 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.
definition
-Absicht zur Spelling
-Szene hinzufügen
Die Aktion kann jetzt erkennen, wenn ein Nutzer einen „definition“-Intent äußert. Sie können den Nutzer-Intent definition
der Szene Spelling
hinzufügen, da der Nutzer auf den Prompt Spelling
(„Buchstabieren Sie das Wort mit dem phonetischen Alphabet.“) antwortet.
So fügen Sie diesen Nutzer-Intent der Szene Spelling
hinzu:
- Klicken Sie in der Navigation auf die Szene Rechtschreibung.
- Klicken Sie in der Szene
Spelling
neben User intent handling (Umgang mit Nutzerabsichten) auf das + (Pluszeichen). - Wählen Sie im Drop-down-Menü für Intentionen Definition aus.
- Aktivieren Sie Webhook aufrufen und geben Sie definitionOfSpellingWord in das Textfeld für den Ereignishandler ein, um die Wortdefinition zu erhalten.
- Klicken Sie das Kästchen Prompts senden an.
- Ersetzen Sie den Satz im Feld
speech
(Enter the response that users will see or hear...
) durch „“. Der tatsächliche Prompt wird per Webhook eingefügt.
Vorschlagschips zur Webhook-Antwort hinzufügen
- Klicken Sie in der Szene
Start
unter dem Code-Editor auf Vorschläge. Dadurch werden drei Vorschlags-Chips hinzugefügt. - Ersetzen Sie im Feld
title
Suggested Response
durch'Skip'
. - Fügen Sie manuell einen Vorschlagschip mit dem Titel
'Quit'
hinzu. Verwenden Sie dazu dieselbe Formatierung. Ihr Code sollte so aussehen:
suggestions: - title: 'Skip' - title: 'Quit'
- Klicken Sie auf Speichern.
skip
-Intent erstellen
So erstellen Sie den Intent skip
:
- Klicken Sie in der Navigation auf Entwickeln.
- Klicken Sie in der Navigation auf Intents, um die Liste der Intents zu öffnen.
- Klicken Sie am Ende der Liste mit den Intentionen auf das Pluszeichen (+). Geben Sie einen Namen für den neuen Intent ein
skip
und drücken Sie die Eingabetaste.Enter
- Klicken Sie auf den Intent
skip
, um die Seite für den Intentskip
zu öffnen. - Klicken Sie im Abschnitt Trainingsformulierungen hinzufügen auf das Textfeld Formulierung eingeben und geben Sie die folgenden Formulierungen ein:
next word
go next
next
skip
skip word
- Klicken Sie auf Speichern.
Skip
-Absicht zur Spelling
-Szene hinzufügen
Die Aktion kann jetzt erkennen, wenn ein Nutzer den Intent „skip“ (Überspringen) äußert. Sie können den Nutzer-Intent skip
der Szene Spelling
hinzufügen, da der Nutzer auf den Prompt Spelling
(„Buchstabieren Sie das Wort mit dem phonetischen Alphabet.“) antwortet.
So fügen Sie diesen Nutzer-Intent der Szene Spelling
hinzu:
- Klicken Sie in der Navigation auf die Szene Rechtschreibung.
- Klicken Sie in der Szene
Spelling
neben User intent handling (Umgang mit Nutzerabsichten) auf das + (Pluszeichen). - Wählen Sie im Drop-down-Menü für Intentionen Überspringen aus.
- Klicken Sie rechts im Bereich Übergang auf das Drop-down-Menü und wählen Sie
Spelling
aus .
- Klicken Sie auf Speichern.
quit
-Intent erstellen
So erstellen Sie den Intent Quit
:
- Klicken Sie in der Navigation auf Entwickeln.
- Klicken Sie in der Navigation auf Intents, um die Liste der Intents zu öffnen.
- Klicken Sie am Ende der Liste mit den Intentionen auf das Pluszeichen (+). Geben Sie einen Namen für den neuen Intent ein
Quit
und drücken Sie die Eingabetaste.Enter
- Klicken Sie auf die Absicht
Quit
, um die Seite mit der Absicht Definition zu öffnen. - Klicken Sie im Abschnitt Trainingsformulierungen hinzufügen auf das Textfeld Formulierung eingeben und geben Sie die folgenden Formulierungen ein:
I quit
Goodbye
Cancel
Exit
Quit
- Klicken Sie auf Speichern.
Quit
-Absicht zur Spelling
-Szene hinzufügen
Die Aktion kann jetzt erkennen, wenn ein Nutzer die Absicht „quit“ (beenden) äußert. Sie können den Nutzer-Intent quit
der Szene Spelling
hinzufügen, da der Nutzer auf den Prompt Spelling
(„Buchstabieren Sie das Wort mit dem phonetischen Alphabet.“) antwortet.
So fügen Sie diesen Nutzer-Intent der Szene Spelling
hinzu:
- Klicken Sie in der Navigation auf die Szene Rechtschreibung.
- Klicken Sie in der Szene
Spelling
neben User intent handling (Umgang mit Nutzerabsichten) auf das + (Pluszeichen). - Wählen Sie im Drop-down-Menü für Intentionen quit aus.
- Klicken Sie rechts im Bereich Übergang auf das Drop-down-Menü und wählen Sie
End conversation
aus . - Klicken Sie auf Speichern.
phonetic_alphabet
-Typ erstellen
In diesem Abschnitt erstellen Sie einen neuen Typ namens phonetic_alphabet
, der die Optionen für das phonetische Alphabet angibt, die Nutzer zum Buchstabieren des Wortes auswählen können. Sie können auch einige Synonyme für diese Optionen definieren, falls ein Nutzer etwas Ähnliches sagt. In einem späteren Abschnitt fügen Sie einem Slot den Typ phonetic_alphabet
hinzu, um anzugeben, dass Sie die Antwort des Nutzers erhalten möchten.
So erstellen Sie den Typ phonetic_alphabet
:
- Klicken Sie in der Navigation auf Entwickeln.
- Klicken Sie unter Typen auf das + (Pluszeichen).
- Geben Sie
phonetic_alphabet
ein und drücken SieEnter
. - Klicken Sie auf
phonetic_alphabet
, um die Optionen zu öffnen. - Wählen Sie im Abschnitt Welche Art von Werten werden von diesem Typ unterstützt? die Option Wörter und Synonyme aus.
- Geben Sie im Abschnitt Einträge hinzufügen die folgenden Einträge und entsprechenden Werte ein:
a | alpha, apple, amsterdam |
b | bravo, butter, baltimore |
c | charlie, cat, casablanca |
d | delta, dog, denmark |
e | echo, edward, edison |
f | foxtrot, fox, florida |
g | golf, george, gallipoli |
h | hotel, harry, havana |
i | india, ink, italia |
j | juliette, johnny, jerusalem |
k | Kilo, König, Kilogramm |
l | lima, love, london |
m | mike, money, madagascar |
N | november, new york, nancy |
o | oscar, orange, oslo |
p | papa, paris, peter |
q | quebec, queen |
r | romeo, roma, robert |
s | sierra, sugar, santiago |
t | tango, tommy, tripoli |
u | Uniform, Schirm, Onkel |
v | victor, vinegar, Valencia (Sieger, Essig, Valencia) |
W | whiskey, william, washington |
x | Röntgen |
y | yankee, yellow, yorker |
z | zulu, zebra, zurich |
Ihre Schlüssel/Wert-Tabelle sollte so aussehen:
- Klicken Sie auf Speichern.
Slot-Füllung konfigurieren
Als Nächstes müssen Sie die Slot-Ausfüllung in der Szene „Rechtschreibung“ konfigurieren. So konfigurieren Sie die Logik zum Ausfüllen von Slots:
- Klicken Sie in der Navigation auf die Szene Rechtschreibung.
- Klicken Sie in der Szene
Spelling
für Slot-Filling auf das Pluszeichen (+). - Geben Sie im Feld Slot-Name eingeben
userresponse
als Slot-Name ein. - Wählen Sie im Drop-down-Menü Typ auswählen die Option phonetic_alphabet als Slot-Typ aus.
- Klicken Sie auf This slot accepts a list of values (Dieser Slot akzeptiert eine Liste von Werten).
- Klicken Sie das Kästchen This slot is required (Dieser Slot ist erforderlich) an.
- Wählen Sie die Option Customize slot value writeback (Rückschreiben von Slot-Werten anpassen) aus und geben Sie „userresponse“ in das Textfeld für den Sitzungsparameter ein.
- Klicken Sie auf Speichern.
Bedingung zum Bildschirm „Spelling
“ hinzufügen
So fügen Sie der Szene Spelling
eine Bedingung hinzu:
- Klicken Sie in der Navigation auf die Szene Rechtschreibung.
- Klicken Sie in der Szene
Spelling
neben „Bedingung“ auf das Pluszeichen (+). - Geben Sie
scene.slots.status == "FINAL"
als Bedingung ein. - Klicken Sie auf Call your webhook (Webhook aufrufen) und geben Sie verifySpellingWord in das Textfeld für den Ereignishandler ein, um die Nutzerantwort zu prüfen.
- Klicken Sie das Kästchen Prompts senden an.
- Ersetzen Sie den Satz im Feld
speech
(Enter the response that users will see or hear...
) durch {}. Der tatsächliche Prompt wird per Webhook eingefügt.
Vorschlagschips zur Webhook-Antwort hinzufügen
- Klicken Sie in der Szene
Start
unter dem Code-Editor auf Vorschläge. Dadurch werden drei Vorschlags-Chips hinzugefügt. - Ersetzen Sie im Feld
title
Suggested Response
durch'Next'
. - Fügen Sie manuell einen Vorschlagschip mit dem Titel
'Quit'
hinzu. Verwenden Sie dazu dieselbe Formatierung. Ihr Code sollte so aussehen:
suggestions: - title: 'Next' - title: 'Quit'
- Klicken Sie auf Speichern.
12. Rechtschreibübung im Simulator testen
So testen Sie Ihre Action im Simulator:
- Klicken Sie in der Navigationsleiste auf Testen, um den Simulator aufzurufen.
- Wenn Sie Ihre Aktion im Simulator testen möchten, geben Sie
Talk to Spelling Practice
in das Eingabefeld ein. - Drücken Sie die Eingabetaste. Ihre Aktion sollte mit dem Prompt
Main invocation
und dem hinzugefügten Szenen-PromptStart
antworten, „Willkommen beim Buchstabieren. Buchstabieren Sie das Wort mithilfe des phonetischen Alphabets. Zum Beispiel „alpha“ für „a“, „bravo“ für „b“, „charlie“ für „c“ usw. Möchten Sie fortfahren?“ - Sagen Sie Ja, um fortzufahren.
- Der Simulator spielt einen Wortklang ab, der buchstabiert werden soll.
- Sie können das Wort mit phonetischen Alphabeten buchstabieren. Sagen oder tippen Sie beispielsweise für besser „bravo echo tango tango echo romeo“.
- Der Simulator antwortet entweder mit der richtigen oder der falschen Antwort.
- Sagen Sie weiter, um zum nächsten Wort zu gelangen, oder beenden, um die Spielschleife zu verlassen.
13. Glückwunsch
Herzlichen Glückwunsch! Sie haben das Spiel Rechtschreibübung erfolgreich erstellt.
Sie kennen jetzt die wichtigsten Schritte, die zum Erstellen eines Spiels mit Cloud Firestore, Cloud Functions und Google Assistant Action Builder erforderlich sind.
Behandelte Themen
- Mit Cloud Firestore interagieren
- Slots verwenden, um Daten vom Nutzer zu erheben
- Nutzereingaben verarbeiten und eine Antwort zurückgeben
- Bedingungen verwenden, um einer Szene Logik hinzuzufügen
- Spielschleife hinzufügen
Zusätzliche Lernressourcen
In diesen Ressourcen finden Sie Informationen zum Erstellen von Aktionen für Google Assistant:
- Dokumentation für die Entwicklung von Actions für Google Assistant
- Actions on Google-GitHub-Seite mit Beispielcode und Bibliotheken
- Die offizielle Reddit-Community für Entwickler, die mit Google Assistant arbeiten
- Richtlinien für das Konversationsdesign mit Best Practices und Richtlinien für Conversational Actions
- Einführung in Cloud Firestore
Projekt bereinigen [empfohlen]
Um mögliche Gebühren zu vermeiden, sollten Sie Projekte entfernen, die Sie nicht verwenden möchten. So löschen Sie die Projekte, die Sie in diesem Codelab erstellt haben:
- Wenn Sie Ihr Firebase-Projekt und die zugehörigen Ressourcen löschen möchten, führen Sie die Schritte im Abschnitt Projekte beenden (löschen) aus.
Achtung: Achten Sie darauf, dass Sie auf der Seite Einstellungen der Google Cloud Console das richtige Projekt zum Löschen auswählen.
- Optional: Wenn Sie Ihr Projekt sofort aus der Actions Console entfernen möchten, führen Sie die Schritte im Abschnitt Projekt löschen aus. Wenn Sie diesen Schritt nicht ausführen, wird Ihr Projekt nach etwa 30 Tagen automatisch entfernt.
Folgen Sie uns auf Twitter unter @ActionsOnGoogle und @Firebase, um über unsere neuesten Ankündigungen auf dem Laufenden zu bleiben. Wenn Sie Ihre Projekte teilen möchten, können Sie den Hashtag #GoogleIO verwenden.