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.
Schritt 2b (optional): Prüfen der Details des Informationsflusses eingetippter Inhalte (Konsole)
In diesem Abschnitt wird der Informationsfluss zwischen dem Client und Amazon Lex erklärt, in dem der Client die PostText
-API zur Übermittlung von Anforderungen verwendet. Weitere Informationen finden Sie unter PostText.
-
Der Benutzer gibt ein: Ich möchte Blumen bestellen.
-
Der Client (Konsole) sendet die folgende PostText-Anforderung an Amazon Lex:
POST /bot/
OrderFlowers
/alias/$LATEST
/user/4o9wwdhx6nlheferh6a73fujd3118f5w
/text "Content-Type":"application/json" "Content-Encoding":"amz-1.0" { "inputText": "I would like to order some flowers", "sessionAttributes": {} }Sowohl die Anfrage-URI als auch der Text liefern Informationen an Amazon Lex:
-
Anforderungs-URI — Stellt den Botnamen (
OrderFlowers
), den Bot-Alias ($LATEST
) und den Benutzernamen (eine zufällige Zeichenfolge zur Identifizierung des Benutzers) bereit. Der abschließendetext
zeigt an, dass es sich um einePostText
-API-Anforderung handelt (und nicht umPostContent
). -
Anforderungsinhalt: Enthält die Benutzereingabe (
inputText
) und leeresessionAttributes
. Wenn der Client die erste Anforderung stellt, gibt es keine Sitzungsattribute. Die Lambda-Funktion initiiert sie später.
-
-
Anhand des
inputText
erkennt Amazon Lex die Absicht (OrderFlowers
). Diese Absicht enthält keine Code-Hooks (d. h. die Lambda-Funktionen) für die Initialisierung und Validierung von Benutzereingaben oder deren Erfüllung.Amazon Lex wählt eines der Felder der Absicht (
FlowerType
) aus, um den Wert zu ermitteln. Es wählt auch eine der Aufforderungen zur Angabe von Werten für den Slot aus (alle Teil der Konfiguration der Absicht) und sendet dann die folgende Antwort an den Client zurück. Die Konsole zeigt die Mitteilung in der Antwort an den Benutzer an.Der Client zeigt die Mitteilung in der Antwort an.
-
-
Benutzer gibt ein: Rosen
-
Der Client (Konsole) sendet die folgende PostText-Anforderung an Amazon Lex:
POST /bot/
OrderFlowers
/alias/$LATEST
/user/4o9wwdhx6nlheferh6a73fujd3118f5w
/text "Content-Type":"application/json" "Content-Encoding":"amz-1.0" { "inputText": "roses", "sessionAttributes": {} }inputText
im Anforderungstext stellt die Benutzereingabe bereit. DiesessionAttributes
bleiben leer. -
Amazon Lex interpretiert das zuerst
inputText
im Kontext der aktuellen Absicht — der Service erinnert sich, dass er den bestimmten Benutzer um Informationen über denFlowerType
Slot gebeten hat. Amazon Lex aktualisiert zuerst den Slot-Wert für die aktuelle Absicht und wählt einen anderen Slot (PickupDate
) zusammen mit einer der zugehörigen Eingabeaufforderungen aus. An welchem Tag sollen die Rosen abgeholt werden? —für den Slot.
Anschließend gibt Amazon Lex die folgende Antwort zurück:
Der Client zeigt die Mitteilung in der Antwort an.
-
-
Benutzer gibt ein: morgen
-
Der Client (Konsole) sendet die folgende PostText-Anforderung an Amazon Lex:
POST /bot/
OrderFlowers
/alias/$LATEST
/user/4o9wwdhx6nlheferh6a73fujd3118f5w
/text "Content-Type":"application/json" "Content-Encoding":"amz-1.0" { "inputText": "tomorrow", "sessionAttributes": {} }inputText
im Anforderungstext stellt die Benutzereingabe bereit. DiesessionAttributes
bleiben leer. -
Amazon Lex interpretiert das zuerst
inputText
im Kontext der aktuellen Absicht — der Service erinnert sich, dass er den bestimmten Benutzer um Informationen über denPickupDate
Slot gebeten hat. Amazon Lex aktualisiert den Wert slot (PickupDate
) für den aktuellen Intent. Es wählt einen anderen Slot aus, um den Wert zu erfragen (PickupTime
). Es gibt eine der Eingabeaufforderungen zur Wertermittlung zurück. Zu welcher Uhrzeit sollen die Rosen am 05.01.2017 geliefert werden? —an den Kunden.
Amazon Lex gibt dann die folgende Antwort zurück:
Der Client zeigt die Mitteilung in der Antwort an.
-
-
Benutzer gibt ein: 18 Uhr
-
Der Client (Konsole) sendet die folgende PostText-Anforderung an Amazon Lex:
POST /bot/
OrderFlowers
/alias/$LATEST
/user/4o9wwdhx6nlheferh6a73fujd3118f5w
/text "Content-Type":"application/json" "Content-Encoding":"amz-1.0" { "inputText": "6 pm", "sessionAttributes": {} }inputText
im Anforderungstext stellt die Benutzereingabe bereit. DiesessionAttributes
bleiben leer. -
Amazon Lex interpretiert das zuerst
inputText
im Kontext der aktuellen Absicht — der Service erinnert sich, dass er den bestimmten Benutzer um Informationen über denPickupTime
Slot gebeten hat. Amazon Lex aktualisiert zunächst den Slot-Wert für die aktuelle Absicht. Jetzt stellt Amazon Lex fest, dass es Informationen für alle Steckplätze hat.Die Absicht
OrderFlowers
ist mit einer Bestätigungsmitteilung konfiguriert. Daher benötigt Amazon Lex eine ausdrückliche Bestätigung des Benutzers, bevor es mit der Erfüllung der Absicht fortfahren kann. Amazon Lex sendet die folgende Nachricht an den Kunden und bittet um Bestätigung, bevor die Blumen bestellt werden:Der Client zeigt die Mitteilung in der Antwort an.
-
-
Benutzer gibt ein: Ja
-
Der Client (Konsole) sendet die folgende PostText-Anforderung an Amazon Lex:
POST /bot/
OrderFlowers
/alias/$LATEST
/user/4o9wwdhx6nlheferh6a73fujd3118f5w
/text "Content-Type":"application/json" "Content-Encoding":"amz-1.0" { "inputText": "Yes", "sessionAttributes": {} }inputText
im Anforderungstext stellt die Benutzereingabe bereit. DiesessionAttributes
bleiben leer. -
Amazon Lex interpretiert das
inputText
im Kontext der Bestätigung der aktuellen Absicht. Es versteht, dass der Benutzer mit der Bestellung fortfahren möchte. DieOrderFlowers
Absicht wirdReturnIntent
als Erfüllungsaktivität konfiguriert (es gibt keine Lambda-Funktion, um die Absicht zu erfüllen). Daher gibt Amazon Lex die folgenden Slot-Daten an den Client zurück.Amazon Lex hat
dialogState
den Ton angegebenReadyForFulfillment
. Der Client kann die Absicht dann erfüllen.
-
-
Testen Sie nun den Bot erneut. Dafür müssen Sie den Link Clear in der Konsole wählen, um einen neuen (Benutzer-)Kontext zu etablieren. Jetzt, da Sie die Daten für die Absicht Blumenbestellung angegeben haben, versuchen Sie, ungültige Daten anzugeben. Beispiel:
-
Jasmin als Blumenart (zählt nicht zu den unterstützten Blumenarten)
-
Gestern als den Tag, an dem Sie die Blumen abholen möchten
Beachten Sie, dass der Bot diese Werte akzeptiert, weil Sie keinen Code haben, um Benutzerdaten zu initialisieren/zu bestätigen. Im nächsten Abschnitt fügen Sie dazu eine Lambda-Funktion hinzu. Beachten Sie Folgendes im Zusammenhang mit Lambda-Funktion:
-
Die Lambda-Funktion validiert die Slot-Daten nach jeder Benutzereingabe. Sie erfüllt schließlich die Absicht. Der Bot verarbeitet also die Blumenbestellung und gibt eine Mitteilung an den Benutzer zurück, statt einfach Slot-Daten an den Client zurückzugeben. Weitere Informationen finden Sie unter Verwenden von Lambda-Funktionen.
-
Die Lambda-Funktion legt auch die Sitzungsattribute fest. Weitere Informationen über Sitzungsattribute finden Sie unter PostText.
Nachdem Sie den Abschnitt "Erste Schritte" abgeschlossen haben, können Sie die zusätzlichen Übungen ausführen (Zusätzliche Beispiele: Amazon Lex Bots erstellen). Reise buchen verwendet Sitzungsattribute, um Informationen über Absichten hinweg gemeinsam zu nutzen und so eine dynamische Unterhaltung mit dem Benutzer zu führen.
-
Nächster Schritt
Schritt 3: Erstellen einer Lambda-Funktion (Lambda-Funktion)