Übung 2: Überprüfen des Gesprächsablaufs - Amazon Lex

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.

Übung 2: Überprüfen des Gesprächsablaufs

In dieser Übung überprüfen Sie die JSON-Strukturen, die zwischen Ihrer Client-Anwendung und dem Amazon Lex V2-Bot, in dem Sie erstellt haben, gesendetÜbung 1: Einen Bot anhand eines Beispiels erstellen werden. Die Konversation verwendet die RecognizeTextOperation, um die JSON-Strukturen zu generieren. Der RecognizeUtterancegibt dieselben Informationen wie die HTTP-Header in der Antwort zurück.

Die JSON-Strukturen werden nach jeder Konversationsrunde aufgeteilt. Ein Turn ist eine Anfrage von der Client-Anwendung und eine Antwort vom Bot.

Kurve 1

In der ersten Runde der Konversation initiiert die Client-Anwendung die Konversation mit Ihrem Bot. Sowohl der URI als auch der Text der Anforderung.

POST /bots/botId/botAliases/botAliasId/botLocales/localeId/sessions/sessionId/text HTTP/1.1 Content-type: application/json { "text": "I would like to order flowers" }
  • Die URI identifiziert den Bot, mit dem die Client-Anwendung kommuniziert. Es enthält auch eine von der Client-Anwendung generierte Sitzungs-ID, die eine bestimmte Konversation zwischen einem Benutzer und dem Bot identifiziert.

  • Der Text der Anfrage enthält den Text, den der Benutzer in die Client-Anwendung eingegeben hat. In diesem Fall wird nur der Text gesendet, Ihre Anwendung kann jedoch zusätzliche Informationen wie Anforderungsattribute oder Sitzungsstatus senden. Weitere Informationen finden Sie unter dem Vorgang RecognizeText.

Abtext erkennt Amazon Lex V2 die Absicht des Benutzers, Blumen zu bestellen. Amazon Lex V2 wählt einen der Intent-Slots (FlowerType) und eine der Eingabeaufforderungen für den Slot aus und sendet dann die folgende Antwort an die Client-Anwendung. Der Client zeigt dem Benutzer die Antwort an.

{ "interpretations": [ { "intent": { "confirmationState": "None", "name": "OrderFlowers", "slots": { "FlowerType": null, "PickupDate": null, "PickupTime": null }, "state": "InProgress" }, "nluConfidence": { "score": 0.95 } }, { "intent": { "name": "FallbackIntent", "slots": {} } } ], "messages": [ { "content": "What type of flowers would you like to order?", "contentType": "PlainText" } ], "sessionId": "bf445a49-7165-4fcd-9a9c-a782493fba5c", "sessionState": { "dialogAction": { "slotToElicit": "FlowerType", "type": "ElicitSlot" }, "intent": { "confirmationState": "None", "name": "OrderFlowers", "slots": { "FlowerType": null, "PickupDate": null, "PickupTime": null }, "state": "InProgress" }, "originatingRequestId": "9e8add70-4106-4a10-93f5-2ce2cb959e5f" } }

Kurve 2

In Runde 2 reagiert der Benutzer auf die Aufforderung des Amazon Lex V2-Bots in Runde 1 mit einem Wert, der denFlowerType Slot ausfüllt.

{ "text": "1 dozen roses" }

Die Antwort für Runde 2 zeigt, dass derFlowerType Slot gefüllt ist, und gibt eine Aufforderung, den nächsten Slot-Wert auszulesen.

{ "interpretations": [ { "intent": { "confirmationState": "None", "name": "OrderFlowers", "slots": { "FlowerType": { "value": { "interpretedValue": "dozen roses", "originalValue": "dozen roses", "resolvedValues": [] } }, "PickupDate": null, "PickupTime": null }, "state": "InProgress" }, "nluConfidence": { "score": 0.98 } }, { "intent": { "name": "FallbackIntent", "slots": {} } } ], "messages": [ { "content": "What day do you want the dozen roses to be picked up?", "contentType": "PlainText" } ], "sessionId": "bf445a49-7165-4fcd-9a9c-a782493fba5c", "sessionState": { "dialogAction": { "slotToElicit": "PickupDate", "type": "ElicitSlot" }, "intent": { "confirmationState": "None", "name": "OrderFlowers", "slots": { "FlowerType": { "value": { "interpretedValue": "dozen roses", "originalValue": "dozen roses", "resolvedValues": [] } }, "PickupDate": null, "PickupTime": null }, "state": "InProgress" }, "originatingRequestId": "9e8add70-4106-4a10-93f5-2ce2cb959e5f" } }

Runde 3

In Runde 3 reagiert der Benutzer auf die Aufforderung des Amazon Lex V2-Bots in Runde 2 mit einem Wert, der denPickupDate Slot ausfüllt.

{ "text": "next monday" }

Die Antwort für Runde 3 ist sowohl als auch dieFlowerTypePickupDate Steckplätze gefüllt und bietet eine Aufforderung, den letzten Steckplatzwert auszulesen.

{ "interpretations": [ { "intent": { "confirmationState": "None", "name": "OrderFlowers", "slots": { "FlowerType": { "value": { "interpretedValue": "dozen roses", "originalValue": "dozen roses", "resolvedValues": [] } }, "PickupDate": { "value": { "interpretedValue": "2022-12-28", "originalValue": "next monday", "resolvedValues": [ "2021-01-04" ] } }, "PickupTime": null }, "state": "InProgress" }, "nluConfidence": { "score": 1.0 } }, { "intent": { "name": "FallbackIntent", "slots": {} } } ], "messages": [ { "content": "At what time do you want the 1 dozen roses to be picked up?", "contentType": "PlainText" } ], "sessionId": "bf445a49-7165-4fcd-9a9c-a782493fba5c", "sessionState": { "dialogAction": { "slotToElicit": "PickupTime", "type": "ElicitSlot" }, "intent": { "confirmationState": "None", "name": "OrderFlowers", "slots": { "FlowerType": { "value": { "interpretedValue": "dozen roses", "originalValue": "dozen roses", "resolvedValues": [] } }, "PickupDate": { "value": { "interpretedValue": "2021-01-04", "originalValue": "next monday", "resolvedValues": [ "2021-01-04" ] } }, "PickupTime": null }, "state": "InProgress" }, "originatingRequestId": "9e8add70-4106-4a10-93f5-2ce2cb959e5f", "sessionAttributes": {} } }

Runde 4

In Runde 4 gibt der Benutzer den endgültigen Slot-Wert für die Absicht an, den Zeitpunkt, zu dem die Blumen abgeholt werden.

{ "text": "5 in the evening" }

In der Antwort sendet Amazon Lex V2 eine Bestätigungsaufforderung an den Benutzer, um zu bestätigen, dass die Bestellung korrekt ist. DasdialogAction ist auf gesetztConfirmIntent und dasconfirmationState istNone.

{ "interpretations": [ { "intent": { "confirmationState": "None", "name": "OrderFlowers", "slots": { "FlowerType": { "value": { "interpretedValue": "dozen roses", "originalValue": "dozen roses", "resolvedValues": [] } }, "PickupDate": { "value": { "interpretedValue": "2021-01-04", "originalValue": "next monday", "resolvedValues": [ "2021-01-04" ] } }, "PickupTime": { "value": { "interpretedValue": "17:00", "originalValue": "5 evening", "resolvedValues": [ "17:00" ] } } }, "state": "InProgress" }, "nluConfidence": { "score": 1.0 } }, { "intent": { "name": "FallbackIntent", "slots": {} } } ], "messages": [ { "content": "Okay, your dozen roses will be ready for pickup by 17:00 on 2021-01-04. Does this sound okay?", "contentType": "PlainText" } ], "sessionId": "bf445a49-7165-4fcd-9a9c-a782493fba5c", "sessionState": { "dialogAction": { "type": "ConfirmIntent" }, "intent": { "confirmationState": "None", "name": "OrderFlowers", "slots": { "FlowerType": { "value": { "interpretedValue": "dozen roses", "originalValue": "dozen roses", "resolvedValues": [] } }, "PickupDate": { "value": { "interpretedValue": "2021-01-04", "originalValue": "next monday", "resolvedValues": [ "2021-01-04" ] } }, "PickupTime": { "value": { "interpretedValue": "17:00", "originalValue": "5 evening", "resolvedValues": [ "17:00" ] } } }, "state": "InProgress" }, "originatingRequestId": "9e8add70-4106-4a10-93f5-2ce2cb959e5f" } }

Runde 5

In der letzten Runde reagiert der Benutzer auf die Bestätigungsaufforderung.

{ "text": "yes" }

In der Antwort gibt Amazon Lex V2 an, dass die Absicht erfüllt wurde, indem die Optionen „confirmationStatebis“Confirmed und „dialogActionbis“ gesetzt werden. Alle Slot-Werte sind für die Client-Anwendung verfügbar.

{ "interpretations": [ { "intent": { "confirmationState": "Confirmed", "name": "OrderFlowers", "slots": { "FlowerType": { "value": { "interpretedValue": "dozen roses", "originalValue": "dozen roses", "resolvedValues": [] } }, "PickupDate": { "value": { "interpretedValue": "2021-01-04", "originalValue": "next monday", "resolvedValues": [ "2021-01-04" ] } }, "PickupTime": { "value": { "interpretedValue": "17:00", "originalValue": "5 evening", "resolvedValues": [ "17:00" ] } } }, "state": "Fulfilled" }, "nluConfidence": { "score": 1.0 } }, { "intent": { "name": "FallbackIntent", "slots": {} } } ], "messages": [ { "content": "Thanks. ", "contentType": "PlainText" } ], "sessionId": "bf445a49-7165-4fcd-9a9c-a782493fba5c", "sessionState": { "dialogAction": { "type": "Close" }, "intent": { "confirmationState": "Confirmed", "name": "OrderFlowers", "slots": { "FlowerType": { "value": { "interpretedValue": "dozen roses", "originalValue": "dozen roses", "resolvedValues": [] } }, "PickupDate": { "value": { "interpretedValue": "2021-01-04", "originalValue": "next monday", "resolvedValues": [ "2021-01-04" ] } }, "PickupTime": { "value": { "interpretedValue": "17:00", "originalValue": "5 evening", "resolvedValues": [ "17:00" ] } } }, "state": "Fulfilled" }, "originatingRequestId": "9e8add70-4106-4a10-93f5-2ce2cb959e5f" } }