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 intelligente Lautsprecher, Smartphones, Autos, Fernseher und Kopfhörer. Nutzer führen Unterhaltungen 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 unkompliziert ansprechende und effektive Unterhaltungen zwischen Nutzern und Ihrem eigenen Drittanbieterdienst für die Auftragsausführung zu erstellen und zu verwalten.
Dieses Codelab behandelt Konzepte für fortgeschrittene Nutzer für die Entwicklung mit Google Assistant, Cloud Functions und Cloud Firestore. In diesem Codelab entwickeln Sie ein Spiel namens „Rechtschreibübung“ bei dem Nutzer mithilfe von Google Assistant aufgefordert werden, Wörter zu buchstabieren.
Inhalt
In diesem Codelab erstellen Sie ein anspruchsvolles Spiel mit folgenden Funktionen:
- Erhält Antworten des Nutzers zur Rechtschreibung und ändert je nach Wert die Konversationsprompts.
- Antwortet mit Hinweisen zur Schreibweise des Wortes, z. B. der Definition oder der Wiederholung des Wortes
- Erstellt eine Spielschleife, über die Nutzer noch einmal mit Assistant interagieren können, nachdem sie das Wort buchstabiert haben
Bevor Sie mit dem Erstellen beginnen, können Sie auf Ihrem Gerät mit integriertem Assistant mit der Live-Aktion interagieren. Sagen Sie dazu einfach „Hey Google, sprich mit Rechtschreibübungen“. Der Standardpfad für diese Aktion für einen wiederkehrenden Nutzer sieht so aus:
Wenn du dieses Codelab abgeschlossen hast, läuft die abgeschlossene Aktion so aus:
Aufgaben in diesem Lab
- Mit Cloud Firestore interagieren
- Slots zum Erheben von Daten vom Nutzer verwenden
- Eingabe eines Nutzers verarbeiten und eine Antwort zurückgeben
- So fügen Sie einer Szene mithilfe von Bedingungen Logik hinzu
- Spielschleife hinzufügen
Voraussetzungen
Für dieses Codelab müssen folgende Voraussetzungen erfüllt sein:
- Einen Webbrowser wie Google Chrome
- Eine IDE zum Schreiben von Cloud Functions-Funktionen.
- Eine Zahlungsmethode In diesem Codelab wird Cloud Functions for Firebase verwendet. Ihr Projekt muss daher den Firebase Blaze-Tarif haben (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 als Namen für Ihr Firebase-Projekt
Spelling-Practice
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, weil Sie Analytics für diese App nicht verwenden werden.
Weitere Informationen zu Firebase-Projekten finden Sie unter Firebase-Projekte verstehen.
Upgrade auf den Blaze-Tarif durchführen
Wenn Sie Cloud Functions for Firebase verwenden möchten, müssen Sie Ihr Firebase-Projekt auf den Blaze-Preisplan umstellen. Das bedeutet, dass Sie Ihrem Projekt ein Google Cloud-Rechnungskonto zuweisen müssen. Dazu müssen Sie eine Kreditkarte oder eine andere Zahlungsmethode angeben.
Alle Firebase-Projekte, einschließlich der Projekte mit dem Tarif „Blaze“, 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, in dem Ihre Cloud Functions-Build-Images gehostet werden.
4. Firebase CLI installieren
Mit der Firebase CLI (Befehlszeile) können Sie Ihre Cloud Functions bereitstellen.
Je nach Betriebssystem und Anwendungsfall gibt es mehrere Möglichkeiten zur Installation der Firebase CLI. In den folgenden Schritten wird die häufigste Option beschrieben, wenn Sie auch Cloud Functions verwenden.
- Installieren Sie npm, das normalerweise mit Node.js enthalten ist.
- Installieren oder aktualisieren Sie die Befehlszeile mit dem folgenden npm-Befehl:
$ npm -g install firebase-tools
- Prüfen Sie mit dem folgenden Befehl, ob die Befehlszeile korrekt installiert wurde:
$ firebase --version
Achten Sie darauf, dass die Version von Firebase CLI 9.0.0 oder höher ist, damit alle neuen Features verwendet werden, die für Cloud Functions erforderlich sind. Falls nicht, führen Sie npm install -g firebase-tools aus, um ein Upgrade durchzuführen, wie oben beschrieben.
- Autorisieren Sie die Firebase CLI mit dem folgenden Befehl:
$ firebase login
- Richten Sie im Verzeichnis „Spell-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 Functions-Verzeichnis
Fügen Sie nun mithilfe des Firebase SDK for Cloud Functions Funktionen hinzu, um das Back-End für das Spiel Rechtschreibung 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 der Funktionscode standardmäßig im Verzeichnis functions
. Um Ihnen das zu erleichtern, haben wir bereits die Datei functions/index.js
erstellt, in die Ihr Code eingefügt wird. Sehen Sie sich das Verzeichnis functions
an, bevor Sie fortfahren.
$ cd functions $ ls
Der Funktionscode ist ebenfalls eine Node.js-App. Daher ist ein package.json
erforderlich, der Informationen zu Ihrer App und eine Liste der Abhängigkeiten enthält.
Wenn Sie mit Node.js nicht vertraut sind, sollten Sie sich damit vertraut machen, bevor Sie mit dem Codelab fortfahren.
In der Datei package.json
sind bereits zwei erforderliche Abhängigkeiten aufgelistet: Firebase SDK for Cloud Functions und Firebase Admin SDK. Führen Sie npm install
aus dem Verzeichnis functions
aus, um sie lokal zu installieren:
$ 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.
Importieren Sie zuerst die erforderlichen Module und schreiben Sie 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
Dieses Codelab umfasst drei Module.
- Mit dem Modul
firebase-functions
können wir die Trigger für unsere Cloud Functions-Funktionen schreiben. - Mit dem Modul
firebase-admin
können wir die Firebase-Plattform auf einem Server mit Administratorzugriff verwenden, um beispielsweise in Cloud Firestore zu schreiben. - Die Node.js-Auftragsausführungsbibliothek für Actions SDK führt Actions-SDK-Handler für Google Assistant aus.
- Installieren Sie das Actions SDK mit dem folgenden npm-Befehl:
$ npm install @assistant/conversation
- Ersetzen Sie in der Datei
index.js
das erste TODO 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 einem anderen Google Cloud-Container bereitgestellt wird. Das passiert, wenn wir in den folgenden Änderungen admin.initializeApp();
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 mithilfe von Funktionen hinzu, um Assistant Actions zu unterstützen.
7. Funktionen erstellen
Wortdefinitionen abrufen und in Cloud Firestore schreiben
Sie verwenden die öffentliche dictionaryapi.dev
API, 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(); }
Cloud Firestore-Trigger hinzufügen
Als Nächstes erstellen Sie eine Cloud Functions-Funktion, die jedes Mal ausgelöst wird, wenn in Cloud Firestore ein neues Dokument erstellt wird. Sie ruft die dictionaryapi.dev
API auf, um Wortdefinitionen über die getWordDetailsFromDictionaryAPI
-Funktion 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); });
Liste mit Wörtern für das Spiel abrufen
Sie können eine Cloud Functions-Funktion schreiben, die eine Liste mit Wörtern aus Cloud Firestore für Assistant abruft. Dazu verwenden wir den App-Handler.
Ersetzen Sie in der Datei index.js
den TODO-Eintrag für getSpellingWordList
durch Folgendes:
Wenn du diese Funktion dem speziellen app.handle
hinzufügst, kann Assistant darauf zugreifen.
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; }); }); })
Wort aus 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'); });
Aktivieren Sie die Option, dass das Wort wiederholt werden soll.
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'); });
Erfahre die Definition des Wortes
Sie können eine Cloud Functions-Funktion schreiben, die das aktuelle Wort für das Spiel definiert.
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); });
Antwort des Nutzers auf die Rechtschreibprüfung prüfen
Sie können eine Cloud-Funktion schreiben, die die Antwort des Nutzers auf die Frage, wie das aktuelle Wort für das Spiel geschrieben wird, ü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);
Alle Funktionen bereitstellen
Ihre Cloud Functions sind erst aktiv, nachdem Sie sie in Firebase bereitgestellt haben.
Führen Sie im Stammverzeichnis des spelling-functions-start
-Verzeichnisses 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 ActionsOnGoogleFulfillment-Funktion für später. Öffnen Sie die Firebase Console und klicken Sie auf das Projekt spelling-practice, um den Endpunkt abzurufen. Öffnen Sie das Functions-Dashboard, um den Funktionsendpunkt anzusehen.
Sie haben alle erforderlichen Funktionen hinzugefügt. Fahren wir mit der Einrichtung von Cloud Firestore fort.
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. Legen Sie zunächst einige grundlegende Datenregeln fest. Klicken Sie auf „Firestore“. Fügen Sie dann auf dem Tab Regeln der Firebase Console die folgenden Regeln hinzu und klicken Sie auf Veröffentlichen.
Mit den folgenden Regeln wird der Datenzugriff auf Nutzer beschränkt, die angemeldet sind. So 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. Cloud Firestore Daten zu Rechtschreibwörtern hinzufügen
In diesem Schritt schreiben Sie Daten zu Wörtern mit falscher Schreibweise in Cloud Firestore, damit Sie eine Liste von Wörtern für Assistant (und das Spiel) generieren können.
Cloud Firestore-Daten sind in Sammlungen, Dokumente, Felder und untergeordnete Sammlungen 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 Bereich „Cloud Firestore“ auf.
- Klicken Sie auf + Sammlung starten.
- Geben Sie im Textfeld Sammlungs-ID den Wert
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 zu Cloud Firestore hinzufügen, wird die Funktion createSpellingPracticeWord ausgelöst, um die Definitionsdetails für das Wort abzurufen. Sie können weitere Wörter hinzufügen (z. B. „Ewigkeit“, „Auto“, „Wahr“, „Erzählen“, „Besser“, „Verkehr“ usw.), 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
Zum Testen der Aktion, 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 dies noch nicht getan haben.
- Aktivieren Sie die folgenden Berechtigungen:
- Web- & App-Aktivitäten
- Wählen Sie unter Web- und App-Aktivitäten: Wählen Sie das Kästchen neben Auch den Chrome-Verlauf sowie Aktivitäten auf Websites, in Apps und auf Geräten berücksichtigen, die Google-Dienste nutzen aus.
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, das Sie mit der Firebase Console erstellt haben, oder wählen Sie es aus. Der Name dient nur zu Ihrer internen Information. Später können Sie einen externen Namen für Ihr Projekt festlegen.)
- Klicken Sie auf Projekt importieren.
- Wählen Sie auf dem Bildschirm Welche Art von Aktion möchten Sie erstellen? die Karte Benutzerdefiniert aus.
- Klicken Sie auf Weiter.
- Wählen Sie die Karte Leeres Projekt aus.
- Klicken Sie auf Jetzt erstellen.
- Geben Sie Rechtschreibübung als Anzeigenamen ein und klicken Sie auf „Speichern“.
Nutzer starten die Unterhaltung mit Ihrer Aktion über eine Aufrufung. Nutzer können Ihre Aktion beispielsweise mit einer Sprachanfrage wie „Hey Google, sprich mit „Rechtschreibtraining““ aufrufen, wobei „Rechtschreibtraining“ der Anzeigename ist.
Ihre Aktion muss einen Anzeigenamen haben, wenn Sie sie in der Produktion bereitstellen möchten. Wenn Sie sie jedoch testen möchten, müssen Sie den Anzeigenamen nicht definieren. Stattdessen können Sie die Aktion "Talk to my test app" (Mit meiner Test-App sprechen) im Simulator verwenden, um die Aktion aufzurufen.
Auftragsausführung konfigurieren
Sie müssen die Ereignishandler für die Cloud-Funktionen, die Sie zuvor in diesem Codelab geschrieben und bereitgestellt haben, mit Assistant verbinden.
So konfigurieren Sie die Auftragsausführung:
- Klicken Sie in der Seitennavigation auf Webhook.
- Wählen Sie Https-Endpunkt als Auslieferungsoption aus:
- Geben Sie die URL des Endpunkts der Funktion in das Textfeld HTTP-Endpunkt ein und klicken Sie dann auf Speichern.
Im nächsten Abschnitt passen Sie die Aufforderung für Ihren Hauptaufruf in der Actions Console an.
Hauptaufruf einrichten
Du musst den Hauptaufruf bearbeiten, um festzulegen, was passiert, nachdem ein Nutzer deine Aktion aufgerufen hat.
Standardmäßig wird in Actions Builder ein generischer Prompt angezeigt, wenn die Aufrufe ausgelöst werden („Erstellen Sie Ihre Aktion, indem Sie die Hauptaufruf-Funktion definieren.“).
So ändern Sie den Prompt, der von Ihrer Aktion an den Nutzer gesendet wird, 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 Begrüßungsnachricht:Welcome to Spelling Practice
Hinweis: Sie können die Prompts entweder im YAML- oder JSON-Format bearbeiten.
- Klicken Sie auf Speichern.
Hauptaufruf im Simulator testen
Die Actions Console bietet ein Webtool zum Testen Ihrer Aktion, den Simulator. Die Benutzeroberfläche simuliert Hardwaregeräte und ihre Einstellungen. So kannst du dich mit deiner Aktion so unterhalten, als würde sie auf einem Smart Display, einem Smartphone, einem Lautsprecher oder KaiOS ausgeführt werden.
So testen Sie die Hauptaufrufung Ihrer Aktion im Simulator:
- Klicken Sie in der oberen Navigationsleiste auf Testen, um den Simulator aufzurufen.
- Wenn Sie die Aktion im Simulator aufrufen möchten, geben Sie links oben im Eingabefeld
Talk to Spelling Practice
ein und drücken Sie die Eingabetaste.
Wenn Sie die Hauptauslösung Ihrer Aktion auslösen, antwortet Assistant mit Ihrer benutzerdefinierten Begrüßungsnachricht. An dieser Stelle endet die Unterhaltung, nachdem Assistant mit einer Begrüßung geantwortet hat.
Ereignisprotokolle ansehen
Auf dem Tab Test werden im Bereich rechts die Ereignisprotokolle angezeigt, in denen der Konversationsverlauf als Ereignisprotokolle dargestellt wird. Jedes Ereignisprotokoll enthält die Ereignisse, die während dieser Unterhaltungsrunde stattfinden. Klicken Sie auf das graue Symbol vor dem Ereignis, um das Ereignisprotokoll aufzurufen.
Ihre Aktion hat derzeit ein Ereignisprotokoll, das sowohl die Eingabe des Nutzers („Mit dem Übungstool für die Rechtschreibung sprechen“) als auch die Antwort Ihrer Aktion enthält. Der folgende Screenshot zeigt das Ereignisprotokoll deiner Aktion:
11. Unterhaltung für die Rechtschreibübung erstellen
Nachdem Sie festgelegt haben, was passiert, nachdem ein Nutzer Ihre Aktion aufgerufen hat, können Sie den Rest der Unterhaltung für Ihre Aktion erstellen. Buchstabieren üben enthält vier Szenen, die Sie jeweils aktivieren müssen, bevor sie ausgeführt werden können. Die gängigste Methode zum Aktivieren einer Szene besteht darin, die Aktion so zu konfigurieren, dass, wenn ein Nutzer einem Nutzer-Intent in einer Szene entspricht, dieser Intent 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
, über die der Nutzer gefragt wird, ob er Buchstabierübungen spielen möchte. Sie fügen auch einen Übergang vom Hauptaufruf zur neuen Szene Start
hinzu.
Gehen Sie folgendermaßen vor, um diese Szene zu erstellen und einen Übergang hinzuzufügen:
- Klicken Sie oben in der Navigationsleiste auf Entwickeln. Klicken Sie dann im linken 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 namens
Start
erstellt und die Aktion wird angewiesen, zur SzeneStart
zu wechseln, nachdem die Aktion dem Nutzer den Begrüßungsprompt gesendet hat. - Klicken Sie im linken Navigationsbereich auf Szenen, um die Liste der Szenen aufzurufen.
- Klicken Sie unter Szenen auf Starten, um sich die Szene
Start
anzusehen. - Klicken Sie im Abschnitt Beim Eingang 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?
Vorschlags-Chips bieten anklickbare Vorschläge für den Nutzer, die von Ihrer Aktion 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 Bildschirmen zu unterstützen.
So fügen Sie dem Prompt der Szene Start
Vorschlags-Chips 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
den EintragSuggested Response
durch'Yes'
. - Fügen Sie mit derselben Formatierung manuell einen Vorschlags-Chip mit den Namen
'No'
und'Help with Phonetics'
hinzu. Der Code sollte wie das folgende Snippet aussehen: - Klicken Sie auf Speichern.
Aktion im Simulator testen
An dieser Stelle sollte deine Aktion vom Hauptaufruf zur Szene Start übergehen und den Nutzer fragen, ob er fortfahren möchte. In der simulierten Anzeige sollten auch Vorschlags-Chips angezeigt werden.
So testen Sie Ihre Aktion im Simulator:
- Klicken Sie in der Navigationsleiste auf Testen, um den Simulator aufzurufen.
- Um die Aktion im Simulator zu testen, geben Sie
Talk to Spelling Practice
in das Eingabefeld ein. - Drücken Sie die Eingabetaste. Deine Aktion sollte mit der Aufforderung
Main invocation
und dem hinzugefügten Szenen-Prompt „Willkommen bei der Rechtschreibprüfung“ inStart
antworten. Benutze das phonetische Alphabet, um das Wort zu buchstabieren. 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 Vorschlags-Chip
Yes
,No
oderHelp with Phonetics
, um auf die Aufforderung zu reagieren. Sie können auch Ja oder Nein oder Hilfe zur Aussprache sagen oderYes
oderNo
oderHelp with Phonetics
in das Feld Eingabe eingeben.
Wenn Sie auf den Prompt antworten, antwortet Ihre Aktion mit der Meldung, dass sie Ihre Eingabe nicht verstehen kann: „Tut mir leid, das habe ich nicht verstanden. Können Sie es noch einmal versuchen?“ Da du deine Aktion noch nicht so konfiguriert hast, dass sie die Eingaben „Ja“ oder „Nein“ versteht und darauf reagiert, ordnet deine Aktion deine Eingabe einem NO_MATCH
-Intent zu.
Standardmäßig liefert der System-Intent NO_MATCH
generische Antworten. Sie können diese Antworten jedoch anpassen, um dem Nutzer zu signalisieren, dass Sie seine Eingabe nicht verstanden haben. Assistant beendet die Unterhaltung des Nutzers mit Ihrer Aktion, wenn die Nutzereingabe dreimal nicht zugeordnet werden konnte.
Nein- und Phonetik-Intents hinzufügen
Da Nutzer jetzt auf die Frage Ihrer Aktion antworten können, können Sie Ihre Aktion 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 zur Phonetik“ sagt. und fügen Sie diese Intents der Szene Start
hinzu. Wir verwenden den System-Intent yes
und erstellen andere Intents.
no
-Intent erstellen
Jetzt müssen Sie den Intent no
erstellen, um zu verstehen, wenn der Nutzer das Spiel nicht spielen möchte, und entsprechend zu reagieren. So erstellen Sie diesen Intent:
- Klicken Sie im Navigationsbereich auf Entwickeln.
- Klicken Sie im Navigationsbereich auf Benutzerdefinierte Intents, um die Liste der Intents zu öffnen.
- Klicken Sie am Ende der Liste der Intents auf das Pluszeichen. Geben Sie dem neuen Intent den Namen
no
und drücken Sie die Eingabetaste. - Klicken Sie auf Nein, um die Seite
no
mit den Absichten zu öffnen. - Klicken Sie im Bereich Add training phrases (Trainingsformulierungen hinzufügen) auf das Textfeld Enter Phrase (Phrase eingeben) und geben Sie die folgenden Formulierungen ein:
No
N
I don't want
nope
- Klicken Sie auf Speichern.
Intent no
zur Szene Start
hinzufügen
Jetzt kann die Aktion erkennen, wenn ein Nutzer „Nein“ oder etwas Ähnliches wie „Nein“ sagt, z. B. „Nein“. Sie müssen der Szene Start
die Nutzerabsicht no
hinzufügen, da der Nutzer auf den Prompt Start
(„Willkommen beim Übungsprogramm für die Rechtschreibung. Benutze das phonetische Alphabet, um das Wort zu buchstabieren. Beispiel: Alpha für A, Bravo für B, Charlie für C usw. Möchten Sie fortfahren?“).
So fügen Sie diesen Intent der Szene Start
hinzu:
- Klicken Sie in der Navigation auf die Szene Start.
- Klicken Sie in der Szene
Start
neben „Behandlung von Nutzerabsichten“ auf das Pluszeichen. - Wählen Sie im Abschnitt Intent aus dem Drop-down-Menü die Option no (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 dem folgenden Snippet ähneln:
candidates: - first_simple: variants: - speech: >- Goodbye.
- Wählen Sie im Abschnitt Umstellung aus dem Drop-down-Menü die Option Unterhaltung beenden aus.
- Klicken Sie auf Speichern.
no
-Intent im Simulator testen
An diesem Punkt versteht deine Aktion, wenn der Benutzer 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 Testen.
- 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.
System-YES
-Intent zu Start
-Szene hinzufügen
Fügen Sie der Szene Start
den SYSTEM-Intent „JA“ hinzu, da der Nutzer auf den Prompt Start
(„Willkommen beim Übungsprogramm zum Buchstabieren. Sie buchstabieren das Wort im phonetischen Alphabet. Beispiele: Alpha für a, Bravo für b, Karl für c usw. Möchten Sie fortfahren?“
So fügen Sie diesen Nutzer-Intent zur Szene Start
hinzu:
- Klicken Sie in der Navigation auf die Szene Start.
- Klicken Sie in der Szene
Start
neben User Intent-Verarbeitung auf das Pluszeichen. - Wählen Sie unter „All System Intents“ im Drop-down-Menü „Intent“ die Option 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 Bereich Übergang auf das Drop-down-Menü und wählen Sie Unterhaltung beenden aus.
- Klicken Sie auf Speichern.
Intent „YES
“ im Simulator testen
An diesem Punkt weiß 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 Testen.
- Um die Aktion im Simulator zu testen, geben Sie
Talk to Spelling Practice
in das Feld Input (Eingabe) ein und drücken die Eingabetaste. - Geben Sie
Yes
in das Feld Eingabe ein und drücken Sie die Eingabetaste. Alternativ können Sie auf den Vorschlags-ChipYes
klicken.
Ihre Aktion ruft eine Liste aller Wörter für das Rechtschreibtraining ab und speichert sie in der Sitzung. Ihre Aktion beendet dann die Sitzung, weil Sie den Übergang End conversation
für den Intent YES
ausgewählt haben.
Phonetics
-Intent erstellen
So erstellen Sie den Intent Phonetics
:
- Klicken Sie im Navigationsbereich auf Entwickeln.
- Klicken Sie im Navigationsbereich auf Benutzerdefinierte Intents, um die Liste der Intents zu öffnen.
- Klicken Sie am Ende der Liste der Intents auf das Pluszeichen. Geben Sie dem neuen Intent den Namen
phonetics
und drücken Sie die TasteEnter
. - Klicken Sie auf den Intent
phonetics
, um die Intent-Seitephonetics
zu öffnen. - Klicken Sie im Bereich „Trainingsformulierungen hinzufügen“ auf das Textfeld Phrase 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
-Intent zur Szene Start
hinzufügen
Jetzt kann die Aktion erkennen, wenn ein Nutzer den Intent „phonetics“ ausdrückt. Sie können der Szene Start
den Nutzerintent phonetics
hinzufügen, da der Nutzer auf den Prompt Start
(„Willkommen beim Übungsprogramm für die Rechtschreibung. Benutze das phonetische Alphabet, um das Wort zu buchstabieren. Beispiele: Alpha für a, Bravo für b, Karl für c usw. Möchten Sie fortfahren?“
So fügen Sie der Szene Start
diesen Nutzerabsicht hinzu:
- Klicken Sie in der Navigation auf Szene starten.
- Klicken Sie in der Szene
Start
neben „User-Intent-Verarbeitung“ auf das Pluszeichen (+). - Wählen Sie im Drop-down-Menü für den Intent die Option Phonetik aus.
- Klicken Sie im Bereich Übergang auf das Drop-down-Menü und wählen Sie Unterhaltung beenden aus.
- Klicken Sie auf Speichern.
Übergang von der Start- zur Schreibszene
In diesem Abschnitt erstellen Sie eine neue Szene namens Rechtschreibung, wodurch der Nutzer aufgefordert wird, das Wort mithilfe des phonetischen Alphabets zu buchstabieren.
Gehen Sie folgendermaßen vor, um diese Szene zu erstellen und einen Übergang hinzuzufügen:
- Klicken Sie im oberen Navigationsbereich auf Develop. Klicken Sie dann links im Navigationsbereich auf Szene starten.
- Klicken Sie im Bereich Behandlung der Nutzerabsicht auf
when actions.intent.YES is matched
und dann rechts im Bereich Übergang auf das Drop-down-Menü. Geben Sie dannSpelling
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 JA-Intent zur SzeneSpelling
zu wechseln. - Maximieren Sie im linken Navigationsbereich Szenen, um die Liste der Szenen aufzurufen.
- Klicken Sie unter Szenen auf „Rechtschreibung“, um die Szene
Spelling
zu sehen. - Klicken Sie im Abschnitt Beim Eingang der Szene
Spelling
auf +. - Klicken Sie auf Webhook aufrufen und geben Sie in das Textfeld für den Ereignishandler getSpellingWord 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 eigentliche Prompt wird vom Webhook ausgefüllt.
Vorschlags-Chips bieten anklickbare Vorschläge für den Nutzer, die von Ihrer Aktion als Nutzereingabe verarbeitet werden.
So fügen Sie dem Prompt der Szene Spelling
Vorschlags-Chips 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
den EintragSuggested Response
durch'Repeat'
. - Fügen Sie mit derselben Formatierung manuell einen Vorschlags-Chip mit dem Titel
'Skip'
hinzu. - Fügen Sie mit derselben Formatierung manuell einen Vorschlags-Chip mit dem Titel
'Quit'
hinzu. Der Code sollte wie das folgende Snippet aussehen: - Klicken Sie auf Speichern.
suggestions: - title: 'Repeat' - title: 'Skip' - title: 'Quit'
Repeat
-Intent erstellen
So erstellen Sie den Intent repeat
:
- Klicken Sie im Navigationsbereich auf Develop.
- Klicken Sie im Navigationsbereich auf Benutzerdefinierte Intents, um die Liste der Intents zu öffnen.
- Klicken Sie am Ende der Liste der Intents auf das Pluszeichen. Geben Sie dem neuen Intent den Namen
repeat
und drücken Sie die TasteEnter
. - Klicken Sie auf den Intent
repeat
, um die Intent-Seitedefinition
zu öffnen. - Klicken Sie im Abschnitt Add trainingsformulierungen auf das Textfeld Enter Phrase (Wortgruppe 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
-Intent zur Szene Spelling
hinzufügen
Jetzt kann die Aktion erkennen, wenn ein Nutzer den Intent Wiederholen ausdrückt. Sie können der Szene Spelling
den Nutzerintent repeat
hinzufügen, da der Nutzer auf den Prompt Spelling
(„Wort mit dem phonetischen Alphabet buchstabieren“) reagiert.
So fügen Sie diesen Nutzer-Intent zur Szene Spelling
hinzu:
- Klicken Sie in der Navigation auf die Szene Rechtschreibung.
- Klicken Sie in der Szene
Spelling
neben User intent processing (Handhabung der Nutzerabsicht) auf das + (Pluszeichen). - Wählen Sie im Drop-down-Menü für die Absicht wiederholen aus.
- Klicken Sie das Kästchen Webhook aufrufen an und geben Sie in das Textfeld für den Ereignis-Handler repeatSpellingWord ein, um die Wortdefinition abzurufen.
- 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 über den Webhook eingefügt.
Vorschlags-Chips zu „Wenn Wiederholung übereinstimmt“ hinzufügen
- In Wenn Wiederholungen zugeordnet werden Klicken Sie unter „Umgang mit Nutzer-Intents“ unter dem Code-Editor auf Vorschläge. Dadurch werden drei Vorschlags-Chips hinzugefügt.
- Ersetzen Sie im Feld
title
den EintragSuggested Response
durch'Skip'
. - Fügen Sie mit derselben Formatierung manuell einen Vorschlags-Chip mit dem Titel
'Quit'
hinzu. Ihr Code sollte dann in etwa so aussehen:
suggestions: - title: 'Skip' - title: 'Quit'
- Klicken Sie auf Speichern.
Intent definition
erstellen
So erstellen Sie den Intent definition
:
- Klicken Sie im Navigationsbereich auf Develop.
- Klicken Sie im Navigationsbereich auf Benutzerdefinierte Intents, um die Liste der Intents zu öffnen.
- Klicken Sie am Ende der Liste der Intents auf + (Pluszeichen). Geben Sie dem neuen Intent den Namen
definition
und drücken Sie die TasteEnter
. - Klicken Sie auf den Intent
definition
, um die Seitedefinition
zu öffnen. - Klicken Sie im Abschnitt Add trainingphrase (Trainingsformulierungen hinzufügen) auf das Textfeld Enter Phrase (Wortgruppe 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
-Intent zur Szene Spelling
hinzufügen
Jetzt kann die Aktion erkennen, wenn ein Nutzer einen Definition-Intent äußert. Sie können der Szene Spelling
den Nutzer-Intent definition
hinzufügen, da der Nutzer auf den Spelling
-Prompt („Buchstabieren des Wortes mit Lautschrift“) antwortet.
So fügen Sie der Szene Spelling
diesen Nutzer-Intent hinzu:
- Klicken Sie in der Navigation auf die Szene Rechtschreibung.
- Klicken Sie in der Szene
Spelling
neben User Intent-Verarbeitung auf das Pluszeichen. - Wählen Sie im Drop-down-Menü für die Absicht Definition aus.
- Klicken Sie das Kästchen Webhook aufrufen an und geben Sie in das Textfeld für den Ereignishandler definitionOfSpellingWord ein, um die Wortdefinition abzurufen.
- 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 über den Webhook eingefügt.
Vorschlags-Chips zur Webhook-Antwort hinzufügen
- Klicken Sie in der Szene
Start
unter dem Codeeditor auf Vorschläge. Dadurch werden drei Vorschlags-Chips hinzugefügt. - Ersetzen Sie im Feld
title
den EintragSuggested Response
durch'Skip'
. - Fügen Sie mit derselben Formatierung manuell einen Vorschlags-Chip mit dem Titel
'Quit'
hinzu. Ihr Code sollte dann in etwa so aussehen:
suggestions: - title: 'Skip' - title: 'Quit'
- Klicken Sie auf Speichern.
skip
-Intent erstellen
So erstellen Sie den Intent skip
:
- Klicken Sie im Navigationsbereich auf Develop.
- Klicken Sie in der Navigation auf Intents, um die Liste der Intents zu öffnen.
- Klicken Sie am Ende der Liste der Intents auf das Pluszeichen. Geben Sie dem neuen Intent den Namen
skip
und drücken SieEnter
. - Klicken Sie auf den Intent
skip
, um die Seiteskip
zu öffnen. - Klicken Sie im Abschnitt Add trainingphrase (Trainingsformulierungen hinzufügen) auf das Textfeld Enter Phrase (Wortgruppe eingeben) und geben Sie die folgenden Formulierungen ein:
next word
go next
next
skip
skip word
- Klicken Sie auf Speichern.
Skip
-Intent zur Szene Spelling
hinzufügen
Jetzt kann die Aktion verstehen, wenn ein Nutzer den Intent "skip" (Überspringen) ausdrückt. Sie können der Szene Spelling
den Nutzerintent skip
hinzufügen, da der Nutzer auf den Prompt Spelling
(„Wort mit dem phonetischen Alphabet buchstabieren“) reagiert.
So fügen Sie der Szene Spelling
diesen Nutzerabsicht hinzu:
- Klicken Sie in der Navigation auf die Szene Rechtschreibung.
- Klicken Sie in der Szene
Spelling
neben User intent handling (Behandlung der Nutzerabsicht) auf das Pluszeichen. - Wählen Sie im Drop-down-Menü „Intent“ die Option Überspringen aus.
- Klicken Sie rechts im Bereich Übergang auf das Drop-down-Menü und wählen Sie
Spelling
aus.
- Klicken Sie auf Speichern.
Intent quit
erstellen
So erstellen Sie den Intent Quit
:
- Klicken Sie im Navigationsbereich auf Entwickeln.
- Klicken Sie in der Navigation auf Intents, um die Liste der Intents zu öffnen.
- Klicken Sie am Ende der Liste der Intents auf das Pluszeichen. Geben Sie dem neuen Intent den Namen
Quit
und drücken SieEnter
. - Klicken Sie auf das Dreipunkt-Menü
Quit
, um die Seite Definition zu öffnen. - Klicken Sie im Bereich Add training phrases (Trainingsformulierungen hinzufügen) auf das Textfeld Enter Phrase (Phrase eingeben) und geben Sie die folgenden Formulierungen ein:
I quit
Goodbye
Cancel
Exit
Quit
- Klicken Sie auf Speichern.
Quit
-Intent zur Szene Spelling
hinzufügen
Jetzt kann die Aktion erkennen, wenn ein Nutzer den Intent „quit“ (beenden) ausdrückt. Sie können der Szene Spelling
den Nutzerintent quit
hinzufügen, da der Nutzer auf den Prompt Spelling
(„Wort mit dem phonetischen Alphabet buchstabieren“) reagiert.
So fügen Sie diesen Nutzer-Intent zur Szene Spelling
hinzu:
- Klicken Sie in der Navigation auf die Szene Rechtschreibung.
- Klicken Sie in der Szene
Spelling
neben User intent processing (Handhabung der Nutzerabsicht) auf das + (Pluszeichen). - Wählen Sie im Drop-down-Menü für den Intent quit aus.
- Klicken Sie rechts im Bereich Übergang auf das Drop-down-Menü und wählen Sie
End conversation
aus. - Klicken Sie auf Speichern.
Typ phonetic_alphabet
erstellen
In diesem Abschnitt erstellen Sie einen neuen Typ namens phonetic_alphabet
, der die Optionen des phonetischen Alphabets angibt, die Nutzer zur Aussprache 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 den Typ phonetic_alphabet
in eine Anzeigenfläche ein, um anzugeben, dass Sie die Antwort des Nutzers erhalten möchten.
So erstellen Sie den Typ phonetic_alphabet
:
- Klicken Sie im Navigationsbereich auf Develop.
- 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 Arten von Werten unterstützt dieser Typ? die Option Wörter und Synonyme aus.
- Geben Sie die folgenden Einträge und entsprechenden Werte im Abschnitt Einträge hinzufügen ein:
a | alpha, apfel, amsterdam |
M | 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, havana |
I | Indien, Tinte, Italien |
J | juliette, johnny, jerusalem |
.000 | kilo, king, kilogramme |
| lima, liebe, london |
m | Mike, Geld, Madagaskar |
N | november, new york, nancy |
O | oscar, orange, oslo |
| Papa, Paris, Peter |
q | Québec, Queen |
r | Romeo, Roma, Robert |
s | sierra, sugar, santiago |
t | Tango, Tommy, Tripoli |
u | uniform, umbrella, uncle |
V | Victor, Essig, Valencia |
w | whiskey, william, washington |
x | Röntgen |
J | yankee, yellow, yorker |
Z | Zulu, Zebra, Zürich |
Ihre Tabelle mit Schlüssel/Wert-Paaren sollte so aussehen:
- Klicken Sie auf Speichern.
Slot-Füllung konfigurieren
Als Nächstes müssen Sie die Slot-Füllung in der Rechtschreibszene konfigurieren. So konfigurieren Sie die Logik für die Platzierung von Anzeigen:
- Klicken Sie in der Navigation auf die Szene Rechtschreibung.
- Klicken Sie in der Szene
Spelling
auf das Pluszeichen für die Slot-Füllung. - Geben Sie im Feld Enter slot name (Steckplatznamen eingeben)
userresponse
als Steckplatznamen ein. - Wählen Sie im Drop-down-Menü Typ auswählen die Option phonetic_alphabet als Steckplatztyp aus.
- Setzen Sie ein Häkchen im Kästchen This Slot beinhaltet eine Liste von Werten.
- Setzen Sie ein Häkchen bei Dieser Slot ist erforderlich.
- Wählen Sie die Option Writeback für Slotwert 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
die Bedingung hinzu:
- Klicken Sie in der Navigation auf die Szene Rechtschreibung.
- Klicken Sie in der Szene
Spelling
neben „Bedingung“ auf das + (Pluszeichen). scene.slots.status == "FINAL"
als Bedingung eingeben- Klicken Sie das Kästchen Call your webhook (Webhook aufrufen) an und geben Sie verifySpellingWord in das Textfeld des Event-Handlers ein, um die Nutzerantwort zu überprüfen.
- Klicken Sie das Kästchen Aufforderungen senden an.
- Ersetzen Sie den Satz im Feld
speech
(Enter the response that users will see or hear...
) durch {}. Der eigentliche Prompt wird vom Webhook ausgefüllt.
Vorschlags-Chips zur Webhook-Antwort hinzufügen
- Klicken Sie in der Szene
Start
unter dem Codeeditor auf Vorschläge. Dadurch werden drei Vorschlags-Chips hinzugefügt. - Ersetzen Sie im Feld
title
den WertSuggested Response
durch'Next'
. - Fügen Sie mit derselben Formatierung manuell einen Vorschlags-Chip mit dem Titel
'Quit'
hinzu. Ihr Code sollte dann in etwa so aussehen:
suggestions: - title: 'Next' - title: 'Quit'
- Klicken Sie auf Speichern.
12. Rechtschreibübungen im Simulator testen
So testen Sie Ihre Aktion im Simulator:
- Klicken Sie in der Navigationsleiste auf Testen, um den Simulator aufzurufen.
- Um die Aktion im Simulator zu testen, geben Sie
Talk to Spelling Practice
in das Eingabefeld ein. - Drücken Sie die Eingabetaste. Deine Aktion sollte mit dem Prompt
Main invocation
und dem hinzugefügten Szenen-Prompt „Willkommen bei der Rechtschreibprüfung“ inStart
antworten. Sie buchstabieren das Wort im phonetischen Alphabet. Beispiele: Alpha für a, Bravo für b, Karl für c usw. Möchten Sie fortfahren?“. - Zum Fortfahren Ja sagen
- Der Simulator spielt einen Wortlaut ab, der die Aussprache simuliert
- Sie können das Wort mithilfe von phonetischen Alphabeten buchstabieren. Wenn Sie beispielsweise besser sagen oder eingeben möchten, sagen oder tippen Sie „bravo echo tango tango echo romeo“.
- Der Simulator antwortet entweder mit der richtigen oder der falschen Antwort.
- Sagen Sie weiter, um mit dem nächsten Wort fortzufahren, oder beenden, um den Spiel-Loop zu beenden.
13. Glückwunsch
Herzlichen Glückwunsch, Sie haben Ihr Spiel Spelling Practice erfolgreich erstellt.
Sie kennen jetzt die wichtigsten Schritte zum Erstellen eines Spiels mit Cloud Firestore, Cloud Functions und Google Assistant Action Builder.
Behandelte Themen
- Mit Cloud Firestore interagieren
- Slots zum Erheben von Daten vom Nutzer verwenden
- Eingabe eines Nutzers verarbeiten und eine Antwort zurückgeben
- So fügen Sie einer Szene mithilfe von Bedingungen Logik hinzu
- Spielschleife hinzufügen
Zusätzliche Lernressourcen
Sie können sich diese Ressourcen ansehen, um mehr über die Erstellung von Actions for Google Assistant zu erfahren:
- Dokumentation für die Entwicklung von Aktionen für Google Assistant
- GitHub-Seite zu Actions on Google mit Beispielcode und -bibliotheken
- Die offizielle Reddit-Community für Entwickler, die mit Google Assistant arbeiten
- Richtlinien für Konversationsdesign mit Best Practices und Richtlinien für Konversationsaktionen
- Einführung in Cloud Firestore
Projekt bereinigen [empfohlen]
Um mögliche Kosten zu vermeiden, sollten Sie Projekte entfernen, die Sie nicht verwenden möchten. So löschen Sie die in diesem Codelab erstellten Projekte:
- 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 in der Google Cloud Console auf der Seite Einstellungen 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.
@ActionsOnGoogle folgen und @Firebase auf Twitter halten wir Sie über unsere neuesten Ankündigungen auf dem Laufenden. Tweeten Sie auch per Tweet an #GoogleIO, um Ihre Arbeit mit anderen zu teilen.