Festlegen von Sitzungsattributen - 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.

Festlegen von Sitzungsattributen

Sitzungsattribute enthalten anwendungsspezifische Informationen, die während einer Sitzung zwischen einem Bot und einer Client-Anwendung übertragen werden. Amazon Lex übergibt Sitzungsattribute an alle Lambda-Funktionen, die für einen Bot konfiguriert sind. Wenn eine Lambda-Funktion Sitzungsattribute hinzufügt oder aktualisiert, leitet Amazon Lex die neuen Informationen an die Client-Anwendung zurück. Beispiel:

Verwenden Sie Sitzungsattribute in Ihren Lambda-Funktionen, um einen Bot zu initialisieren und um Eingabeaufforderungen und Antwortkarten anzupassen. Beispiel:

  • Initialisierung — In einem Bot zur Pizzabestellung übergibt die Client-Anwendung den Standort des Benutzers als Sitzungsattribut beim ersten Aufruf an denPostText VorgangPostContent oder. Zum Beispiel "Location": "111 Maple Street". Die Lambda-Funktion verwendet diese Informationen, um die nächstgelegene Pizzeria für die Bestellung zu finden.

  • Personalize Sie Eingabeaufforderungen — Konfigurieren Sie Eingabeaufforderungen und Antwortkarten, um auf Sitzungsattribute zu verweisen. Zum Beispiel: „Hey [FirstName], welche Toppings möchtest du?“ Wenn Sie den Vornamen des Benutzers als Sitzungsattribut ({"FirstName": "Jo"}) übergeben, ersetzt Amazon Lex den Platzhalter durch den Namen. Anschließend sendet die Anwendung eine personalisierte Aufforderung an den Benutzer "Hallo Jo, welchen Belag wünschen Sie?"

Sitzungsattribute werden für die Dauer der Sitzung beibehalten. Amazon Lex speichert sie in einem verschlüsselten Datenspeicher, bis die Sitzung endet. Der Client kann Sitzungsattribute in einer Anforderung erstellen, indem er entweder die Operation PostContent oder die Operation PostText aufruft, wobei das Feld sessionAttributes auf einen Wert gesetzt ist. Eine Lambda-Funktion kann ein Sitzungsattribut in einer Antwort erstellen. Nachdem der Client oder eine Lambda-Funktion ein Sitzungsattribut erstellt hat, wird der gespeicherte Attributwert immer dann verwendet, wenn die Client-Anwendung keinsessionAttribute Feld in einer Anfrage an Amazon Lex enthält.

Angenommen, Sie haben zwei Sitzungsattribute {"x": "1", "y": "2"}. Wenn der Client denPostText VorgangPostContent oder aufruft, ohne dassessionAttributes Feld anzugeben, ruft Amazon Lex die Lambda-Funktion mit den gespeicherten Sitzungsattributen ({"x": 1, "y": 2}) auf. Wenn die Lambda-Funktion keine Sitzungsattribute zurückgibt, gibt Amazon Lex die gespeicherten Sitzungsattribute an die Client-Anwendung zurück.

Wenn entweder die Client-Anwendung oder eine Lambda-Funktion Sitzungsattribute übergibt, aktualisiert Amazon Lex die gespeicherten Sitzungsattribute. Wird ein bestehender Wert wie {"x": 2} übergeben, wird der gespeicherte Wert aktualisiert. Wenn Sie einen neuen Satz Sitzungsattribute übergeben, wie z. B. {"z": 3}, werden die vorhandenen Werte entfernt, und nur der neue Wert wird beibehalten. Wird eine leere Zuordnung, {}, übergeben, werden die gespeicherten Werte gelöscht.

Um Sitzungsattribute an Amazon Lex zu senden, erstellen Sie eine string-to-string Zuordnung der Attribute. Das folgende Beispiel zeigt, wie Sitzungsattribute zugeordnet werden:

{ "attributeName": "attributeValue", "attributeName": "attributeValue" }

Bei der PostText-Operation fügen Sie die Zuordnung wie folgt mittels des Felds sessionAttributes in den Text der Anforderung ein:

"sessionAttributes": { "attributeName": "attributeValue", "attributeName": "attributeValue" }

Bei der PostContent-Operation kodieren Sie die Zuordnung mit base64 und senden diese als x-amz-lex-session-attributes-Header.

Wenn Sie binäre oder strukturierte Daten in einem Sitzungsattribut übermitteln, müssen Sie die Daten zunächst in eine einfache Zeichenfolge transformieren. Weitere Informationen finden Sie unter Festlegen von komplexen Attributen.