Mit Unterhaltungsaktionen können Sie Google Assistant um Ihre eigenen dialogorientierten Schnittstellen erweitern, über die Nutzer auf Ihre Produkte und Dienste zugreifen können. Aktionen nutzen die leistungsstarke Natural Language Understanding Engine (NLU) von Assistant, um Eingaben in natürlicher Sprache zu verarbeiten und zu verstehen und Aufgaben auf der Grundlage dieser Eingabe auszuführen.
Übersicht
Eine dialogorientierte Aktion ist ein einfaches Objekt, das einen Einstiegspunkt (auch als Aufruf bezeichnet) in einer Unterhaltung definiert:
- Ein Aufruf definiert, wie Nutzer Assistant sagen, dass sie eine Unterhaltung mit einer deiner Aktionen beginnen möchten. Der Aufruf einer Aktion wird durch einen einzelnen Intent definiert, der zugeordnet wird, wenn Nutzer die Aktion anfordern.
- Eine Unterhaltung definiert, wie Nutzer mit einer Aktion interagieren, nachdem sie aufgerufen wurde. Sie erstellen Unterhaltungen mit Intents, Typen, Szenen und Aufforderungen.
- Darüber hinaus können Ihre Aktionen zusätzliche Aufgaben an die Auftragsausführung delegieren. Dies sind Webdienste, die über Webhooks mit Ihren Aktionen kommunizieren. So können Sie unter anderem Daten validieren, andere Webdienste aufrufen und Geschäftslogiken ausführen.
Bündeln Sie eine oder mehrere Aktionen, basierend auf den Anwendungsfällen, die für Ihre Nutzer wichtig sind, in einen logischen Container, ein sogenanntes Actions-Projekt. Ihr Actions-Projekt enthält Ihr gesamtes Aufrufmodell (die Sammlung aller Ihrer Aufrufe), mit dem Nutzer an logischen Stellen in Ihrem Unterhaltungsmodell beginnen können (alle möglichen Befehle und Antworten auf die Nutzer).
Aufruf
Der Aufruf ist mit einem Anzeigenamen verknüpft, der eine Marke, einen Namen oder eine Identität darstellt, mit der Nutzer Assistant bitten können, deine Aktionen aufzurufen. Nutzer können diesen Anzeigenamen für sich allein verwenden (als Hauptaufruf bezeichnet) oder in Kombination mit optionalen Deeplinks-Ausdrücken für deine Aktionen verwenden.
Nutzer können beispielsweise die folgenden Wortgruppen sagen, um drei separate Aktionen in einem Projekt mit dem Anzeigenamen „Fakten über Google“ aufzurufen:
- „Ok Google, rede mit Fakten über Google“
- „Ok Google, sprich mit Google über Fakten über Google“
- „Hey Google, sprich mit Fakten über Google über Fakten“
Der erste Aufruf im Beispiel ist der Hauptaufruf. Dieser Aufruf ist einem speziellen System-Intent namens actions.intent.MAIN
zugeordnet. Der zweite und dritte Aufruf sind Deeplink-Aufrufe, mit denen Sie zusätzliche Wortgruppen angeben können, in denen Nutzer nach bestimmten Funktionen gefragt werden. Diese Aufrufe entsprechen Nutzer-Intents, die Sie als global festgelegt haben. Jeder Aufruf in diesem Beispiel bietet einen Einstiegspunkt in eine Unterhaltung und entspricht einer einzelnen Aktion.
Abbildung 2 beschreibt einen typischen Aufrufprozess:
- Wenn Nutzer eine Aktion anfordern, fragen sie Assistant normalerweise nach deinem Anzeigenamen.
- Assistant gleicht die Anfrage des Nutzers mit dem entsprechenden Intent ab, der der Anfrage entspricht. In diesem Fall wäre das
actions.intent.MAIN
. - Die Aktion wird über die Intent-Zuordnung benachrichtigt und antwortet mit der entsprechenden Aufforderung zum Starten einer Unterhaltung mit dem Nutzer.
Unterhaltung
Eine Unterhaltung definiert, wie Nutzer mit einer Aktion interagieren, nachdem sie aufgerufen wurde. Sie erstellen diese Interaktionen, indem Sie die gültige Nutzereingabe für Ihre Unterhaltung, die Logik zur Verarbeitung dieser Eingabe und die entsprechenden Aufforderungen zur Antwort an den Nutzer definieren. Die folgende Abbildung und Erläuterung zeigt, wie eine typische Unterhaltung mit den untergeordneten Komponenten einer Unterhaltung funktioniert: Intents, Typen, Szenen und Aufforderungen.
Abbildung 3 beschreibt eine typische Unterhaltungsrunde:
- Wenn Nutzer etwas sagen, ordnet der Assistant-NLU die Eingabe einem entsprechenden Intent zu. Ein Intent wird zugeordnet, wenn das Sprachmodell für diesen Intent genau oder genau mit der Nutzereingabe übereinstimmen kann. Zum Definieren des Sprachmodells geben Sie Trainingsformulierungen oder Beispiele für mögliche Nutzerausdrücke an. Assistant nimmt diese Trainingsformulierungen an und erweitert sie, um das Sprachmodell des Intents zu erstellen.
- Wenn Assistant NLU einen Intent abgeglichen, kann er Parameter extrahieren, die Sie aus der Eingabe benötigen. Diesen Parametern sind Typen zugeordnet, z. B. ein Datum oder eine Zahl. Sie annotieren bestimmte Teile der Trainingsformulierungen eines Intents, um festzulegen, welche Parameter extrahiert werden sollen.
- Eine Szene verarbeitet dann den zugeordneten Intent. Sie können sich die Szenen als die logischen Ausführungsformen einer Aktion vorstellen. Sie erledigen die komplizierte Logik, um eine Unterhaltung voranzutreiben. Die Szenen werden in einer Schleife ausgeführt, was einen flexiblen Ausführungslebenszyklus ermöglicht, mit dem Sie unter anderem Intent-Parameter validieren, Slot-Füllung ausführen und Aufforderungen an den Nutzer zurücksenden können und mehr.
- Wenn eine Szene abgeschlossen ist, wird in der Regel eine Aufforderung an die Nutzer gesendet, die Unterhaltung fortzusetzen, oder die Unterhaltung kann gegebenenfalls beendet werden.
Auftragsausführung
Während eines Aufrufs oder einer Unterhaltung kann deine Aktion einen Webhook auslösen, der einen Auftragsausführungsdienst zur Ausführung einiger Aufgaben benachrichtigt.
Abbildung 4 beschreibt, wie Sie Auftragsausführung zur Generierung von Aufforderungen verwenden können.
- An bestimmten Punkten der Ausführung Ihrer Aktion kann es einen Webhook auslösen, der eine Anfrage mit einer JSON-Nutzlast an einen registrierten Webhook-Handler (Ihren Auftragsausführungsdienst) sendet.
- Die Auftragsausführung verarbeitet die Anfrage, z. B. das Aufrufen einer REST API für die Datensuche oder die Validierung einiger Daten aus der JSON-Nutzlast. Die Auftragsausführung wird häufig verwendet, um eine dynamische Aufforderung zur Laufzeit zu generieren, damit Ihre Unterhaltungen auf den aktuellen Nutzer abgestimmt werden können.
- Die Auftragsausführung gibt eine Antwort mit einer JSON-Nutzlast an die Aktion zurück. Sie kann die Daten aus der Nutzlast verwenden, um die Ausführung fortzusetzen und dem Nutzer zu antworten.