Verwalten von Sitzungen mit der Amazon Lex API - Amazon Lex V1

Wenn Sie Amazon Lex V2 verwenden, lesen Sie stattdessen das Amazon Lex V2-Handbuch.

 

Wenn Sie Amazon Lex V1 verwenden, empfehlen wir, Ihre Bots auf Amazon Lex V2 zu aktualisieren. Wir fügen V1 keine neuen Funktionen mehr hinzu und empfehlen dringend, V2 für alle neuen Bots zu verwenden.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwalten von Sitzungen mit der Amazon Lex API

Wenn ein Benutzer eine Konversation mit Ihrem Bot startet, erstellt Amazon Lex eineSitzungaus. Die zwischen Ihrer Anwendung und Amazon Lex ausgetauschten Informationen ergeben den Sitzungsstatus für die Konversation. Wenn Sie eine Anforderung absenden, wird die Sitzung anhand einer Kombination aus dem Bot-Namen und einer von Ihnen angegebenen Benutzer-ID identifiziert. Weitere Informationen über die Benutzer-ID finden Sie im Feld userId in der Operation PostContent oder PostText.

Die Antwort aus einer Sitzungsoperation enthält eine eindeutige Sitzungs-ID, anhand der eine bestimmte Sitzung mit einem Benutzer identifiziert wird. Sie können diese Kennung beim Testen oder zum Beheben von Problemen mit Ihrem Bot verwenden.

Sie können den zwischen Ihrer Anwendung und Ihrem Bot gesendeten Sitzungsstatus ändern. Beispielsweise können Sie Sitzungsattribute erstellen und ändern, die benutzerdefinierte Informationen zur Session enthalten. Außerdem können Sie den Gesprächsablauf ändern, indem Sie den Dialogkontext für die Interpretation der nächste Äußerung festlegen.

Es gibt zwei Möglichkeiten, wie Sie den Sitzungsstatus aktualisieren können. Die erste besteht darin, eine Lambda-Funktion mit demPostContentoderPostTextoperation, die nach jeder Konversationsschritt aufgerufen wird. Weitere Informationen finden Sie unter Verwenden von Lambda-Funktionen . Die andere besteht in der Verwendung der Amazon Lex -Laufzeit-API in Ihrer Anwendung, um Änderungen am Sitzungsstatus vorzunehmen.

Die Amazon Lex -Laufzeit-API bietet Operationen, mit denen Sie die Sitzungsinformationen für eine Konversation mit Ihrem Bot verwalten können. Hierzu gehören die Operation PutSession, die Operation GetSession und die Operation DeleteSession. Sie können mit diesen Operationen Informationen über den Status der Sitzung Ihres Benutzers mit Ihrem Bot anfordern und eine differenzierte Kontrolle über den Status erlangen.

Verwenden Sie die Operation GetSession, wenn Sie den aktuellen Status der Sitzung anfordern möchten. Die Operation gibt den aktuellen Status der Sitzung, einschließlich des Status des Dialogs mit Ihrem Benutzer und aller festgelegten Sitzungsattribute und Slot-Werte für die letzten drei Absichten zurück, mit denen der Benutzer interagiert hat.

Die Operation PutSession ermöglicht es Ihnen, den aktuellen Sitzungsstatus direkt zu bearbeiten. Sie können die Art von Dialogaktion festlegen, die der Bot als Nächstes ausführen wird. Dadurch haben Sie Kontrolle über den Gesprächsablauf mit dem Bot. Festlegen der Dialogaktiontypefield zuDelegatedamit Amazon Lex die nächste Aktion für den Bot bestimmt.

Sie können mit der Operation PutSession eine neue Sitzung mit einem Bot erstellen und die Absicht festlegen, mit der der Bot beginnen soll. Sie können mit der Operation PutSession auch von einer Absicht zu einer anderen wechseln. Wenn Sie eine Sitzung erstellen oder die Absicht ändern, können Sie auch den Sitzungsstatus, wie z. B. Slot-Werte und Sitzungsattribute, festlegen. Wenn die neue Absicht abgeschlossen ist, haben Sie die Möglichkeit, die vorherige Absicht neu zu starten. Sie können dasGetSession-Operation, um den Dialogstatus der vorherigen Absicht von Amazon Lex zu erhalten. Anhand dieser Informationen können Sie dann den Dialogstatus der Absicht festlegen.

Die Antwort von der Operation PutSession enthält die gleichen Informationen wie die von der Operation PostContent. Sie können diese Informationen, genauso wie die Antwort von der Operation PostContent, verwenden, um vom Benutzer die nächste Teilinformation anzufordern.

Sie können mit der Operation DeleteSession eine vorhandene Sitzung entfernen und mit einer neuen Sitzung ganz von vorne beginnen. Wenn Sie beispielsweise Ihren Bot testen, können Sie mit der Operation DeleteSession Testsitzungen von Ihrem Bot entfernen.

Die Sitzungsoperationen funktionieren mit Ihren -Fulfillment-Lambda-Funktionen. Beispiel: Ihre Lambda-Funktion kehrt zurückFailedals Erfüllungsstatus können Sie diePutSession-Operation, um den Dialogaktionsstatus aufcloseundfulfillmentStatezuReadyForFulfillmentum den Erfüllungsschritt erneut zu versuchen.

Es folgen einige Aufgaben, die Sie mit den Sitzungsoperationen ausführen können:

  • Veranlassen des Bots zum Starten einer Konversation, anstatt auf den Benutzer zu warten.

  • Wechseln von Absichten während einer Konversation.

  • Zurückkehren zur einer vorherigen Absicht.

  • Starten oder Neustarten einer Konversation während der Interaktion.

  • Validieren von Slot-Werten und Veranlassen des Bots, für ungültige Werte neue Werte anzufordern.

Jede dieser Aufgaben wird im Folgenden beschrieben.

Wechseln von Absichten

Sie können mit der Operation PutSession von einer Absicht zu einer anderen wechseln. Sie können mit ihr auch zu einer vorherigen Absicht zurückwechseln. Sie können mit der Operation PutSession Sitzungsattribute oder Slot-Werte für die neue Absicht einstellen.

  • Aufrufen der PutSession-Operation. Legen Sie als Absichtsnamen den Namen der neuen Absicht und als Dialogaktion Delegate fest. Sie können auch alle für die neue Absicht erforderlichen Slot-Werte oder Sitzungsattribute festlegen.

  • Amazon Lex beginnt eine Konversation mit dem Benutzer unter Verwendung der neuen Absicht.

Fortsetzen einer vorherigen Absicht

Um eine vorherige Absicht fortzusetzen, fordern Sie mit der Operation GetSession eine Zusammenfassung der Absicht an und legen Sie mit der Operation PutSession dann wieder den vorherigen Dialogstatus der Absicht fest.

  • Aufrufen der GetSession-Operation. Die Antwort von der Operation enthält eine Zusammenfassung des Dialogstatus der letzten drei Absichten, mit denen der Benutzer interagiert hat.

  • Rufen Sie mittels der Informationen aus der Absichtszusammenfassung die Operation PutSession auf. Dadurch gelangt der Benutzer wieder zur vorherigen Absicht an der gleichen Stelle im Gespräch.

In einigen Fällen kann es erforderlich sein, dass die Konversation Ihres Benutzers mit Ihrem Bot fortgesetzt wird. Angenommen, Sie haben einen Kundenservice-Bot erstellt. Ihre Anwendung stellt fest, dass der Benutzer mit einem Kundendienstmitarbeiter sprechen muss. Nach der Unterhaltung mit dem Benutzer kann der Mitarbeiter das Gespräch mit den vom ihm erfassten Informationen wieder an den Bot weiterleiten.

Um eine Sitzung fortzusetzen, verwenden Sie Schritte ähnlich wie diese:

  • Ihre Anwendung stellt fest, dass der Benutzer mit einem Kundendienstmitarbeiter sprechen muss.

  • Fordern Sie mit der Operation GetSession den aktuellen Dialogstatus der Absicht an.

  • Der Kundendienstmitarbeiter spricht mit dem Benutzer und löst das Problem.

  • Legen Sie mit der Operation PutSession den Dialogstatus der Absicht fest. Hierzu gehören möglicherweise Festlegen von Slot-Werten, Einstellen von Sitzungsattributen oder Ändern der Absicht.

  • Der Bot setzt die Konversation mit dem Benutzer fort.

Sie können den checkpointLabel-Parameter der PutSession-Operation verwenden, um eine Absicht zu beschriften, damit Sie sie später finden können. Beispielsweise kann ein Bot, der einen Kunden um Informationen bittet, eine Waiting-Absicht eingehen, während der Kunde die Informationen zusammenträgt. Der Bot erstellt eine Prüfpunktbeschriftung für die aktuelle Absicht und startet die Waiting-Absicht dann. Wenn der Kunde zurückkehrt, kann der Bot die vorherige Absicht mithilfe der Prüfpunktbeschriftung finden und zurückschalten.

Die Absicht muss in der recentIntentSummaryView-Struktur vorhanden sein, die von der GetSession-Operation zurückgegeben wird. Wenn Sie in der GetSession-Vorgangsanforderung eine Prüfpunktbeschriftung angeben, werden maximal drei Absichten mit dieser Prüfpunktbeschriftung zurückgegeben.

  • Verwenden Sie den GetSession-Vorgang, um den aktuellen Status der Sitzung abzurufen.

  • Verwenden Sie den PutSession-Vorgang, um der letzten Absicht eine Prüfpunktbeschriftung hinzuzufügen. Bei Bedarf können Sie diesen PutSession-Aufruf verwenden, um zu einer anderen Absicht zu wechseln.

  • Wenn es an der Zeit ist, zur beschrifteten Absicht zurückzukehren, rufen Sie den GetSession-Vorgang auf, um eine aktuelle Absichtsliste zurückzugeben. Sie können dascheckpointLabelFilter-Parameter, damit Amazon Lex nur Absichten mit der angegebenen Prüfpunktbeschriftung zurück gibt.

Starten einer neuen Sitzung

Wenn Sie möchten, dass der Bot die Konversation mit Ihrem Benutzer startet, können Sie dazu Operation PutSession verwenden.

  • Erstellen Sie eine Begrüßungsabsicht ohne Slots und eine abschließende Nachricht, die den Benutzer auffordert, eine Absicht zu nennen. Beispiel: „Was möchten Sie bestellen? Sie können Folgendes sagen: 'Ein Getränk bestellen' oder 'Eine Pizza bestellen'.“

  • Aufrufen der PutSession-Operation. Legen Sie als Absichtsnamen den Namen Ihrer Begrüßungsabsicht und als Dialogaktion Delegate fest.

  • Amazon Lex antwortet mit der Aufforderung Ihrer Begrüßungsabsicht, um die Konversation mit Ihrem Benutzer zu starten.

Validieren der Slot-Werte

Sie können Antworten an Ihren Bot mit Ihrer Client-Anwendung validieren. Wenn die Antwort nicht gültig ist, können Sie mit der Operation PutSession eine neue Antwort von Ihrem Benutzer anfordern. Angenommen, Ihr Bot zur Aufnahme von Blumenbestellungen kann nur Rosen, Tulpen und Lilien verkaufen. Wenn der Benutzer Nelken bestellt, kann Ihre Anwendung wie folgt vorgehen:

  • Untersuchen des Slot-Wertes, der von der Antwort PostText oder PostContent zurückgegeben wird.

  • Wenn der Slot-Wert nicht gültig ist, Aufrufen der Operation PutSession. Ihre Anwendung sollte den Slot-Wert löschen, das Feld slotToElicit festlegen und den Wert dialogAction.type auf elicitSlot einstellen. Optional können Sie diemessageundmessageFormat-Felder, wenn Sie die Nachricht ändern möchten, mit der Amazon Lex den Slot-Wert anfordert.