Ambiente-Optionen

In Kombination mit Intents sind Szenen der andere wichtige Baustein Ihres Unterhaltungsmodells. Szenen stellen einzelne Status einer Unterhaltung dar. Ihr Hauptzweck besteht darin, die Unterhaltung in logische Blöcke zu gliedern, Aufgaben auszuführen und Aufforderungen an Nutzer zurückzugeben.

Zu den Merkmalen von Szenen gehören:

  • Ausführung in Schleife: Szenen werden innerhalb einer Schleife ausgeführt, bis sie die von Ihnen definierten Übergangskriterien erfüllen. Auf diese Weise können Sie Abläufe für die Steuerungslogik innerhalb einer einzelnen Szene viel effizienter erstellen.
  • Dialogtrennung: In Kombination mit Intents können Sie Dialogfelder mithilfe von Szenen in logische Blöcke gruppieren, sodass Sie auf einfache Weise Nutzeranfrage- und Aktionsantwortpaare erstellen können.
  • Umfang der Intent-Übereinstimmung: Da immer nur eine Szene aktiv sein kann, können Sie die Intent-Zuordnung auf Szenen Ihrer Wahl beschränken und festlegen, dass diese nur dann übereinstimmen, wenn diese Szenen aktiv sind.
  • Slot-Füllung: Mit Slot-Füllung in einer Szene können Sie mehrere typisierte Nutzereingaben erfassen, ohne mehrere Intents erstellen zu müssen.
  • In-Szene-Bedingungen: Sie können Slots, Sitzungs-, Nutzer- und Home-Speicher prüfen, um eine einfache, bedingte Logik auszuführen, ohne einen Webhook auszulösen.

Sie können Szenen als Teil des dialogorientierten Modells als benutzerdefinierte Szene definieren. Die Unterhaltungslogik von Assistant umfasst auch Systemszenen mit Standardfunktionen für Ihre Unterhaltung.

Benutzerdefinierte Szenen

Eine benutzerdefinierte Szene ist ein Baustein für dialogorientierte Logik, der Teil des Unterhaltungsmodells deiner Aktion ist. Benutzerdefinierte Szenen haben Phasen, in denen festgelegt wird, wie und wann sie gestartet werden. Die Aktivierung wird als Aktivierung bezeichnet. Außerdem wird die dialogorientierte Verarbeitung als Ausführungslebenszyklus bezeichnet und das Ende der Szene wird als Übergang bezeichnet.

  • Aktivierung: Bevor eine Szene ausgeführt werden kann, müssen Sie sie über eine globale Intent-Zuordnung oder einen Szenenübergang aktivieren.
  • Ausführung: Wenn eine Szene aktiv ist, wird sie in einem klar definierten Lebenszyklus ausgeführt, mit dem Sie eine Vielzahl von Aufgaben wie Slot-Füllung, bedingte Prüfung, Prompt-Generierung und das Auslösen von Webhook-Ereignissen ausführen können.
  • Übergang: Wenn eine Szene die von Ihnen definierten Kriterien erfüllt, z. B. ein Intent zugeordnet oder die Slot-Füllung abgeschlossen ist, können Sie zu einer anderen Szene wechseln, um noch mehr Logik auszuführen. Alternativ können Sie zur Systemszene Unterhaltung beenden wechseln, in der die Unterhaltung mit dem Nutzer beendet wird.
Abbildung 1. Ein häufiger Szenenübergang. Ein globaler Intent aktiviert eine Szene während des Aufrufs. Diese Szene verarbeitet eine Nutzereingabe und ordnet einen Intent zu, der eine andere Szene wechselt und aktiviert.

Aktivierung

Bevor eine Szene ausgeführt werden kann, muss sie aktiv sein. Es kann immer nur eine Szene aktiv sein. Sie können Szenen auf folgende Arten aktivieren:

  • Aufruf: Wenn eine Nutzereingabe mit dem Sprachmodell eines globalen Intents übereinstimmt, können Sie eine Szene aktivieren, um den Aufruf zu verarbeiten.
  • Statischer Szenenübergang: Wenn eine Szene die Übergangskriterien erfüllt, können Sie einen Übergang zu einer anderen Szene definieren.
  • Dynamischer Szenenübergang: Innerhalb eines Webhook-Handlers können Sie programmatisch zu einer anderen Szene wechseln.

Ausführungslebenszyklus

Wenn eine Szene aktiv ist, wird sie in einem klar definierten Lebenszyklus ausgeführt, der so lange wiederholt wird, bis die Szene die von Ihnen festgelegten Übergangskriterien erfüllt. Der Ausführungslebenszyklus einer Szene ist in optionale Phasen unterteilt, die in der folgenden Reihenfolge ausgeführt werden:

  1. Bei Eingabe: Diese Phase wird nur einmal ausgeführt, wenn eine Szene aktiviert wird. Sie können einen Webhook auslösen oder den Nutzer auffordern, die Szene einmalig einzurichten.

  2. Bedingungen: Mit Bedingungen können Sie bestimmte Kriterien bewerten, bevor Sie Lebenszyklusphasen durchlaufen, einen Webhook auslösen oder Aufforderungen senden. In dieser Phase können Übergangskriterien definiert werden, um die Ausführungsschleife zu beenden.

  3. Slot-Füllung: Eine Szene kann den Nutzer automatisch auffordern, bis alle erforderlichen Slots (typisierte Daten) erfasst wurden. Eine Szene fordert jedes Mal durch ihre Ausführungsschleife einen Slot auf. Wenn Slots fehlen, geht der Lebenszyklus der Szene schließlich zurück zur Slot-Füllungsphase zurück und fordert den nächsten erforderlichen Slot auf. In dieser Phase können Übergangskriterien definiert werden, um die Ausführungsschleife zu beenden.

  4. Prompts (Aufforderungen): Assistant stellt dem Nutzer die Aufforderungswarteschlange zu und löscht die Warteschlange. Die Eingabeaufforderungswarteschlange ist die zusammengeführte Sammlung von Aufforderungen, die seit dem letzten Löschen der Warteschlange in dieser Phase aggregiert wurden.

  5. Eingabe: Assistant verarbeitet Nutzereingaben und gibt sie an Ihre Szene zurück, damit Sie sie verarbeiten können. Dies kann unter anderem Intent-Abgleich (globale Intents oder Nutzer-Intents innerhalb einer Szene), die Fortsetzung der Slot-Füllung (wenn sie nicht abgeschlossen ist) oder die Verarbeitung von Fehlern ohne Übereinstimmung oder keine Eingabe sein. In dieser Phase können Übergangskriterien definiert werden, um die Ausführungsschleife zu beenden. Wenn der Übergang nicht erfolgt, kehrt die Ausführungsschleife zur Bedingungsphase zurück.

Abbildung 2. Lebenszyklus der Szenenausführung

In den folgenden Abschnitten werden die einzelnen Lebenszyklusphasen ausführlicher beschrieben.

Beim Betreten

„Bei Eingabe“ ist die einzige Phase, die in der Ausführungsschleife einer Szene nicht ausgeführt wird. Dabei wird Ihre Szene einmalig in der folgenden Reihenfolge initialisiert:

  • Wenn die Assistant-Laufzeit Slots eines zuvor übereinstimmenden Intents füllen kann, geschieht dies jetzt, um die Szene für die Slot-Füllung vorzubereiten. Einige Nutzereingaben können beispielsweise mit einem Intent übereinstimmen und einen Slot bereitstellen. Durch diese Intent-Zuordnung wird eine Szene aktiviert und ein Slot in einer Szene ausgefüllt, wenn die Slotnamen übereinstimmen.
  • Wenn ein Webhook aktiviert ist, löst er synchron ein Ereignis aus und wartet darauf, dass Ihr Webdienst eine Antwort zurückgibt.
  • Wenn die Laufzeit eine Webhook-Antwort empfängt, löst sie alle Parameterverweise in Prompts auf und wählt basierend auf der Nutzeroberfläche einen Prompt-Kandidaten aus. Anschließend wählt sie eine Variante aus, die der Kandidaten später an den Nutzer senden soll.
  • Wenn die Webhook-Antwort eine Aufforderung enthält, wird diese der Aufforderungswarteschlange hinzugefügt. Wenn auch eine statische Aufforderung vorhanden ist, wird die Webhook-Aufforderung zuerst in der Eingabeaufforderungswarteschlange und dann der statischen Aufforderung zusammengeführt.
  • Wenn die Webhook-Antwort einen Übergang enthält, wird dieser jetzt ausgeführt. Andernfalls fährt die Szene mit der Slot-Füllung fort.

Bedingungen

Mit Bedingungen können Sie Sitzungs-, Nutzer- oder Slotdaten darauf prüfen, ob eine Bedingung erfüllt ist. Sie können beispielsweise prüfen, ob alle Slots gefüllt sind, und dies als Kriterium für den Übergang zu einer anderen Szene zur Verarbeitung der Slots festlegen.

  • Die Assistant-Laufzeit wertet jede Bedingung in der angegebenen Reihenfolge aus. Die erste Bedingung, die als true ausgewertet wird, führt den zugehörigen Handler aus und stoppt die Bedingungsauswertung.
  • Die Bedingung else if scene.slots.status = "FINAL" wird bei der Slot-Füllung automatisch in die Bedingungsliste aufgenommen. Diese optionale Bedingung prüft, ob die Slot-Füllung abgeschlossen ist, und kann einen Webhook auslösen oder der Aufforderungswarteschlange Aufforderungen hinzufügen.

Wenn nach der Bedingungsauswertung kein Übergang definiert ist, fährt die Szene mit der Slot-Füllung fort.

Slot-Füllung

In dieser Phase wird eine Slot-Aufforderung für einen einzelnen, nicht gefüllten und erforderlichen Slot hinzugefügt. Wenn Sie keine Slots in der Szene definieren, passiert in dieser Phase nichts.

  • Die Assistant-Laufzeit wählt den ersten nicht gefüllten Slot aus und fügt die entsprechende Aufforderung der Aufforderungswarteschlange hinzu. Da die Ausführungsschleifen der Szene ausgeführt werden, werden zusätzliche, nicht gefüllte Slots später verarbeitet, wenn die Ausführungsschleife zu dieser Phase zurückkehrt.
  • Der aktuelle, aktive Slot kann Aufforderungen zur Fehlerbehandlung haben, die die in der Eingabephase der Szene definierten überschreiben.
  • Wenn der Nutzer einen Slot füllt, können Sie ihn in einem Webdienst validieren, indem Sie einen Webhook auslösen.

Aufforderungen

Die Assistant-Laufzeit stellt dem Nutzer die Aufforderungswarteschlange bereit, leert die Warteschlange und verarbeitet Nutzereingaben.

Eingabe

Die Assistant-Laufzeit versucht, die Eingabe einem Intent oder einem Slot zuzuordnen:

  • Bei einer Übereinstimmung mit einem Nutzer-Intent führt die Szene den zugehörigen Intent-Handler (Nutzer- oder System-Intent) aus. Der Intent-Handler einer Szene hat Vorrang vor allen globalen Intents. Wenn Sie keinen Übergang definiert haben, startet die Szenenausführung in einer Schleife wieder die Bedingungsphase.
  • Bei einer Slot-Übereinstimmung kehrt die Szene zur Slot-Füllung zurück.
  • Bei einer System-Intent-Zuordnung (z. B. keine Eingabe oder keine Übereinstimmung) können Sie der Aufforderungswarteschlange Aufforderungen hinzufügen, einen Webhook auslösen oder einen Übergang auslösen. Wenn mehrere Aufforderungen ohne Übereinstimmung definiert sind, wählt die Assistant-Laufzeit die relevanteste in der folgenden Reihenfolge aus: Slot-Füllung, Szene und dann globale Aufforderungen ohne Übereinstimmung. Aufeinanderfolgende keine Übereinstimmungen generieren ein entsprechendes Ereignis:

    • no_match_1
    • no_match_2
    • no_match_final

    Jede Ebene ohne Übereinstimmung (Slot-Füllung, Szene und global) kann Webhook-Ereignisse auslösen. Durch die dritte und letzte keine Übereinstimmung wird die Unterhaltung standardmäßig beendet.

Übergang

Umstellungen können in den folgenden Phasen erfolgen:

  • Bedingungen: Sie können anhand von Bedingungen, die Sie definieren, zu einer anderen Szene wechseln. Eine häufig zu überprüfende Bedingung ist, dass die Slot-Füllung vollständig ist.
  • Eingabe (Nutzer-Intent-Abgleich): Wenn ein Intent übereinstimmt, kann er einen Übergang zu einer anderen Szene auslösen.
  • Eingabe (System-Intent-Abgleich): Sie können Webhooks während eines beliebigen System-Intent-Abgleichereignisses auslösen. Bei keiner Übereinstimmung und keinen Eingabeereignissen wechselt die Szene standardmäßig nach drei Vorkommen in die Szene Unterhaltung beenden.

Systemszenen

Mit Systemszenen können Sie die integrierte Konversationslogik von Assistant verwenden, mit der Sie standardmäßige Unterhaltungsabläufe erweitern können. Beispielsweise kann Assistant in der Systemumgebung zur Kontoverknüpfung vorübergehend den Kontoverknüpfungsvorgang ausführen und die Informationen zurückgeben, die du zum Verknüpfen der Nutzerkonten benötigst. Systemszenen folgen nicht dem Standardszenenlebenszyklus.

In der folgenden Liste werden unterstützte Systemszenen und ihre Verwendung beschrieben:

  • Unterhaltung beenden: Das Mikrofon wird geschlossen und die Unterhaltung mit dem Nutzer beendet. Nach Ausführung dieser Szene übernimmt Assistant wieder die Kontrolle über die Nutzererfahrung.
  • Kontoverknüpfung – führt den Nutzer durch einen Kontoverknüpfungsvorgang und stellt deinen Aktionen die erforderlichen Informationen zur Verfügung, um das Konto des Nutzers auf deinen Back-End-Servern mit dem Google-Konto des Nutzers zu verknüpfen. Weitere Informationen zur Verwendung dieser Szene finden Sie in der Dokumentation zur Kontoverknüpfung.
  • Tägliche Aktualisierungen: Der Nutzer wird durch einen Bestätigungsvorgang geführt, mit dem er Ihre Aktionen den täglichen Aktualisierungen eines Nutzers hinzufügen kann. Weitere Informationen zur Verwendung dieser Szene finden Sie in der Dokumentation zu täglichen Updates.
  • Notifications (Benachrichtigungen): Der Nutzer wird durch einen Bestätigungsvorgang geführt, um Benachrichtigungen von deinen Aktionen zu erhalten. Weitere Informationen zur Verwendung dieser Szene finden Sie in der Dokumentation zu Push-Benachrichtigungen.