Schritt 2b (optional): Prüfen der Details des Informationsflusses eingetippter Inhalte (Konsole) - 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.

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.

  1. Der Benutzer gibt ein: Ich möchte Blumen bestellen.

    1. 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ßende text zeigt an, dass es sich um eine PostText-API-Anforderung handelt (und nicht um PostContent).

         

      • Anforderungsinhalt: Enthält die Benutzereingabe (inputText) und leere sessionAttributes. Wenn der Client die erste Anforderung stellt, gibt es keine Sitzungsattribute. Die Lambda-Funktion initiiert sie später.

    2. Anhand desinputText 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.

      Eine Mitteilung mit JSON-Daten, die an den Client gesendet werden.

      Der Client zeigt die Mitteilung in der Antwort an.

  2. Benutzer gibt ein: Rosen

    1. 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. Die sessionAttributes bleiben leer.

    2. Amazon Lex interpretiert das zuerstinputText 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:

      JSONDaten, die als Antwort auf eine FlowerType Slot-Anfrage gesendet wurden.

      Der Client zeigt die Mitteilung in der Antwort an.

  3. Benutzer gibt ein: morgen

    1. 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. Die sessionAttributes bleiben leer.

    2. Amazon Lex interpretiert das zuerstinputText 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:

      Die JSON-Nachricht wurde zurückgegeben, nachdem nach dem PickupDate Slot gefragt wurde.

      Der Client zeigt die Mitteilung in der Antwort an.

  4. Benutzer gibt ein: 18 Uhr

    1. 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. Die sessionAttributes bleiben leer.

    2. Amazon Lex interpretiert das zuerstinputText 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:

      Eine Mitteilung mit JSON-Daten, die eine Bestätigung der Bestellung von Blumen anfordert.

      Der Client zeigt die Mitteilung in der Antwort an.

  5. Benutzer gibt ein: Ja

    1. 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. Die sessionAttributes bleiben leer.

    2. Amazon Lex interpretiert dasinputText 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.

      Die JSON-Daten, die gesendet werden, wenn die Konversation abgeschlossen ist und die Bestellung erfüllt werden kann.

      Amazon Lex hatdialogState den Ton angegebenReadyForFulfillment. Der Client kann die Absicht dann erfüllen.

  6. 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)