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.
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 den RecognizeTextVorgang, um die JSON-Strukturen zu generieren. Das RecognizeUtterancegibt dieselben Informationen zurück wie HTTP-Header in der Antwort.
Die JSON-Strukturen werden bei jeder Runde der Konversation unterteilt. Ein Turn ist eine Anfrage von der Client-Anwendung und eine Antwort vom Bot.
Turn 1
Während der ersten Runde der Konversation initiiert die Client-Anwendung die Konversation mit Ihrem Bot. Sowohl der URI als auch der Hauptteil der Anfrage enthalten Informationen über die Anfrage.
POST /bots/botId
/botAliases/botAliasId
/botLocales/localeId
/sessions/sessionId
/text HTTP/1.1
Content-type: application/json
{
"text": "I would like to order flowers"
}
-
Der URI identifiziert den Bot, mit dem die Client-Anwendung kommuniziert. Er enthält auch eine von der Client-Anwendung generierte Sitzungs-ID, die eine bestimmte Konversation zwischen einem Benutzer und dem Bot identifiziert.
-
Der Hauptteil 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 den Sitzungsstatus senden. Weitere Informationen finden Sie unter dem Vorgang RecognizeText.
Von aus text
erkennt Amazon Lex V2 die Absicht des Benutzers, Blumen zu bestellen. Amazon Lex V2 wählt einen der Intent-Slots (FlowerType
) und eine der Prompts 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"
}
}
Runde 2
In Runde 2 antwortet der Benutzer auf die Aufforderung des Amazon Lex V2-Bots in Runde 1 mit einem Wert, der den FlowerType
Slot füllt.
{
"text": "1 dozen roses"
}
In der Antwort für Runde 2 wird angezeigt, dass der FlowerType
Slot gefüllt ist, und Sie werden aufgefordert, den nächsten Slot-Wert zu ermitteln.
{
"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"
}
}
Dreh dich um
In Runde 3 antwortet der Benutzer auf die Aufforderung des Amazon Lex V2-Bots in Runde 2 mit einem Wert, der den PickupDate
Slot füllt.
{
"text": "next monday"
}
Bei der Antwort für Runde 3 werden sowohl die FlowerType
Slots als auch die PickupDate
Slots gefüllt und Sie werden aufgefordert, den letzten Slot-Wert ausfindig zu machen.
{
"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, also 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. Das dialogAction
ist auf eingestellt ConfirmIntent
und das confirmationState
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"
}
}
Biegen Sie 5 ab
In der letzten Runde reagiert der Benutzer mit der Bestätigungsaufforderung.
{
"text": "yes"
}
In der Antwort, die Amazon Lex V2 sendet, wird angezeigt, dass die Absicht erfüllt wurde, indem die Optionen confirmationState
An Confirmed
und dialogAction
Bis geschlossen gesetzt wurden. 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"
}
}