Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
In questo esercizio esaminerai le strutture JSON inviate tra l'applicazione client e il bot Amazon Lex V2 in cui hai creato. Esercizio 1: Creare un bot da un esempio La conversazione utilizza l'RecognizeTextoperazione per generare le strutture JSON. RecognizeUtteranceRestituisce le stesse informazioni delle intestazioni HTTP nella risposta.
Le strutture JSON sono divise per ogni turno della conversazione. Un turno è una richiesta dall'applicazione client e una risposta dal bot.
Turno 1
Durante il primo turno della conversazione, l'applicazione client avvia la conversazione con il bot. Sia l'URI che il corpo della richiesta forniscono informazioni sulla richiesta.
POST /bots/botId
/botAliases/botAliasId
/botLocales/localeId
/sessions/sessionId
/text HTTP/1.1
Content-type: application/json
{
"text": "I would like to order flowers"
}
-
L'URI identifica il bot con cui comunica l'applicazione client. Include anche un identificatore di sessione generato dall'applicazione client che identifica una conversazione specifica tra un utente e il bot.
-
Il corpo della richiesta contiene il testo che l'utente ha digitato nell'applicazione client. In questo caso, viene inviato solo il testo, tuttavia l'applicazione può inviare informazioni aggiuntive, come gli attributi della richiesta o lo stato della sessione. Per maggiori informazioni, vedi l'operazione RecognizeText.
A partire datext
, Amazon Lex V2 rileva l'intenzione dell'utente di ordinare fiori. Amazon Lex V2 sceglie uno degli slot dell'intento (FlowerType
) e uno dei prompt per lo slot, quindi invia la seguente risposta all'applicazione client. Il client mostra la risposta all'utente.
{
"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"
}
}
Turno 2
Nel turno 2, l'utente risponde alla richiesta del bot Amazon Lex V2 nel turno 1 con un valore che riempie lo slot. FlowerType
{
"text": "1 dozen roses"
}
La risposta per il turno 2 mostra lo FlowerType
slot occupato e fornisce una richiesta per ottenere il valore dello slot successivo.
{
"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"
}
}
Turno 3
Nel turno 3, l'utente risponde alla richiesta del bot Amazon Lex V2 nel turno 2 con un valore che riempie lo slot. PickupDate
{
"text": "next monday"
}
La risposta per il turno 3 è occupata da entrambi gli PickupDate
slot FlowerType
e fornisce una richiesta per ottenere il valore dell'ultimo slot.
{
"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": {}
}
}
Turno 4
Nel turno 4, l'utente fornisce il valore finale dello slot per l'intento, ovvero l'ora in cui i fiori vengono raccolti.
{
"text": "5 in the evening"
}
Nella risposta, Amazon Lex V2 invia una richiesta di conferma all'utente per confermare che l'ordine è corretto. dialogAction
È impostato su ConfirmIntent
e lo è. confirmationState
None
{
"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"
}
}
Turno 5
Nell'ultimo turno, l'utente risponde con la richiesta di conferma.
{
"text": "yes"
}
Nella risposta, Amazon Lex V2 invia un messaggio che indica che l'intento è stato raggiunto impostando la data di inizio Confirmed
e confirmationState
la dialogAction
chiusura. Tutti i valori degli slot sono disponibili per l'applicazione client.
{
"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"
}
}