Unter „Auftragsausführung“ wird die dialogorientierte Schnittstelle definiert, die Ihr Actions-Projekt erhalten soll Benutzereingabe und der Logik für die Verarbeitung der Eingabe und schließlich die Ausführung der Aktion.
Übersicht
Ihre Auftragsausführung empfängt Anfragen von Assistant, verarbeitet sie und antwortet. Durch diesen wechselseitigen Anforderungs- und Antwortprozess wird bis Sie die ursprüngliche Nutzeranfrage erfüllen.
In den folgenden Schritten wird beschrieben, wie du die Auftragsausführung mithilfe der Aktionen erstellen kannst SDK mit der Node.js- oder Java/Kotlin-Clientbibliothek:
- Initialisieren Sie das ActionsSdkApp-Objekt.
- Erstellen Sie Funktionen zur Verarbeitung von Anfragen in der Auftragsausführungslogik.
Dialogfelder erstellen
ActionsSdkApp
-Objekt initialisieren
Der folgende Code instanziiert
ActionsSdkApp
und führt einige Node.js-Boilerplate-Einrichtungen für Google Cloud Functions durch:
'use strict'; const {actionssdk} = require('actions-on-google'); const functions = require('firebase-functions'); const app = actionssdk({debug: true}); app.intent('actions.intent.MAIN', (conv) => { conv.ask('Hi!'); }); // More intent handling if needed exports.myFunction = functions.https.onRequest(app);
ResponseBuilder responseBuilder = getResponseBuilder(request).add("Hi!"); return responseBuilder.build();
{ "expectUserResponse": true, "expectedInputs": [ { "inputPrompt": { "richInitialPrompt": { "items": [ { "simpleResponse": { "textToSpeech": "Hi!" } } ] } }, "possibleIntents": [ { "intent": "actions.intent.TEXT" } ] } ], "conversationToken": "{\"data\":{}}", "userStorage": "{\"data\":{}}" }
Funktionen zur Verarbeitung von Anfragen erstellen
Wenn Nutzer einen Satz sprechen, erhalten Sie eine Anfrage von Google Assistant. Bis die Intents von Anfragen erfüllen, Funktionen erstellen, Intent ausgelöst.
So verarbeiten Sie Anfragen:
Es wird jede Logik ausgeführt, die zur Verarbeitung der Nutzereingabe erforderlich ist.
Rufen Sie die Funktion
conv.ask()
auf und übergeben Sie die gewünschte Antwort. als Argument verwenden.
Der folgende Code zeigt, wie Sie eine einfache Antwort erstellen:
<ph type="x-smartling-placeholder">conv.ask(`Hi! Say something, and I'll repeat it.`);
ResponseBuilder responseBuilder = getResponseBuilder(request).add("Hi! Say something, and I'll repeat it."); return responseBuilder.build();
{ "expectUserResponse": true, "expectedInputs": [ { "inputPrompt": { "richInitialPrompt": { "items": [ { "simpleResponse": { "textToSpeech": "Hi! Say something, and I'll repeat it." } } ] } }, "possibleIntents": [ { "intent": "actions.intent.TEXT" } ] } ], "conversationToken": "{\"data\":{}}", "userStorage": "{\"data\":{}}" }
Intents verarbeiten
Sobald Sie alle Funktionen zum Verarbeiten der ausgelösten Intents haben, verwenden Sie app.intent
, um
Intents Handler zuweisen.
app.intent('actions.intent.TEXT', (conv) => { // handle text intent. }); app.intent('actions.intent.MAIN', (conv) => { // handle main intent. });
@ForIntent("actions.intent.MAIN") public ActionResponse main(ActionRequest request) { // handle main intent // ... } @ForIntent("actions.intent.TEXT") public ActionResponse text(ActionRequest request) { // handle text intent // ... }
Unterhaltungen beenden
Wenn Sie nicht mehr möchten, dass ein Nutzer etwas einbringt, und die Unterhaltung beenden möchten,
und rufen Sie die Funktion conv.close()
auf.
Mit dieser Funktion kann Google Assistant den Text dem Nutzer vorlesen und die Unterhaltung beenden, indem er das Mikrofon schließt.
Hauptaufruf-Intent verarbeiten
Wenn Nutzer den Intent app.intent.action.MAIN
auslösen, geschieht das normalerweise nicht
keine Nutzereingaben verarbeiten müssen. Wenn Ihr Aktionspaket viele
und deckt viele Anwendungsfälle ab, ist es eine gute Idee, die Nutzenden zu orientieren,
ein paar Dinge, die sie tun können.
- Rufen Sie die Funktion
conv.ask()
auf und übergeben Sie Ihre Antwort als Argument. Google Assistant spricht dem Nutzer Ihre Antwort und dann wartet darauf, dass der Nutzer einen der von Ihnen angegebenen Intents auslöst.
Das folgende Snippet zeigt, wie ein einfacher Begrüßungs-Intent verarbeitet wird:
<ph type="x-smartling-placeholder">// handle the initialTrigger function handleMainIntent(conv, input) { conv.ask(input); }
private ActionResponse handleMainIntent(ResponseBuilder rb, String input) { return rb.add(input).build(); }
Unterhaltungsstatus
Wenn Sie die Conversation HTTP/JSON Webhook API verwenden, können Sie den
Status Ihrer Unterhaltungen mit einem Objekt im JSON-Format (conversationToken
)
zwischen Ihnen und Google Assistant. Wenn Sie
Node.js-Clientbibliothek verwenden, können Sie
kann direkt in das Feld conv.data
schreiben und daraus lesen. Dieses Feld
zwischen Anfragen und Antworten
automatisch hin und her.
conv.data = {something: 10}; let value = conv.data.something;
ResponseBuilder rb = getResponseBuilder(request); rb.getConversationData().put("something", 10); Object value = rb.getConversationData().get("something");