Dettagli del flusso di informazioni - Amazon Lex versione 1

Se utilizzi Amazon Lex V2, consulta invece la guida Amazon Lex V2.

 

Se utilizzi Amazon Lex V1, ti consigliamo di aggiornare i bot ad Amazon Lex V2. Non stiamo più aggiungendo nuove funzionalità alla V1 e consigliamo vivamente di utilizzare la V2 per tutti i nuovi bot.

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à.

Dettagli del flusso di informazioni

In questo esercizio, hai avviato una conversazione con il BookTrip bot Amazon Lex utilizzando il client della finestra di test fornito nella console Amazon Lex. Questa sezione descrive quanto segue:

Flusso di dati: intento di prenotazione hotel

Questa sezione spiega cosa accade dopo ogni input utente.

  1. Utente: "book a hotel"

    1. Il client (console) invia la seguente richiesta PostText ad Amazon Lex:

      POST /bot/BookTrip/alias/$LATEST/user/wch89kjqcpkds8seny7dly5x3otq68j3/text "Content-Type":"application/json" "Content-Encoding":"amz-1.0" { "inputText":"book a hotel", "sessionAttributes":{} }

      Sia l'URI della richiesta che il corpo forniscono informazioni ad Amazon Lex:

      • URI di richiesta: fornisce il nome del bot (BookTrip), l'alias del bot ($LATEST) e il nome utente. Il codice text finale indica che si tratta di una richiesta API PostText (non PostContent).

      • Corpo della richiesta: include l'input utente (inputText) e il campo sessionAttributes vuoto. Inizialmente, si tratta di un oggetto vuoto e la funzione Lambda imposta innanzitutto gli attributi della sessione.

    2. Da lìinputText, Amazon Lex rileva l'intento (BookHotel). Questo intento è configurato con una funzione Lambda come hook di codice per l'inizializzazione/convalida dei dati utente. Pertanto, Amazon Lex richiama quella funzione Lambda passando le seguenti informazioni come parametro dell'evento (vediFormato dell'evento di input):

      { "messageVersion":"1.0", "invocationSource":"DialogCodeHook", "userId":"wch89kjqcpkds8seny7dly5x3otq68j3", "sessionAttributes":{ }, "bot":{ "name":"BookTrip", "alias":null, "version":"$LATEST" }, "outputDialogMode":"Text", "currentIntent":{ "name":"BookHotel", "slots":{ "RoomType":null, "CheckInDate":null, "Nights":null, "Location":null }, "confirmationStatus":"None" } }

      Oltre alle informazioni inviate dal cliente, Amazon Lex include anche i seguenti dati aggiuntivi:

      • messageVersion— Attualmente Amazon Lex supporta solo la versione 1.0.

      • invocationSource— Indica lo scopo dell'invocazione della funzione Lambda. In questo caso, si tratta di eseguire l'inizializzazione e la convalida dei dati utente (al momento Amazon Lex sa che l'utente non ha fornito tutti i dati dello slot per soddisfare l'intento).

      • currentIntent: tutti i valori di slot sono impostati su null.

    3. Al momento, tutti i valori dello slot sono nulli. Non c'è nulla da convalidare per la funzione Lambda. La funzione Lambda restituisce la seguente risposta ad Amazon Lex. Per informazioni sul formato della risposta, consulta Formato della risposta.

      { "sessionAttributes":{ "currentReservation":"{\"ReservationType\":\"Hotel\",\"Location\":null,\"RoomType\":null,\"CheckInDate\":null,\"Nights\":null}" }, "dialogAction":{ "type":"Delegate", "slots":{ "RoomType":null, "CheckInDate":null, "Nights":null, "Location":null } } }
      Nota
      • currentReservation— La funzione Lambda include questo attributo di sessione. Il relativo valore è una copia delle informazioni sullo slot e del tipo di prenotazione correnti.

        Solo la funzione Lambda e il client possono aggiornare questi attributi di sessione. Amazon Lex trasmette semplicemente questi valori.

      • dialogAction.type— Impostando questo valore suDelegate, la funzione Lambda delega la responsabilità della prossima linea d'azione ad Amazon Lex.

        Se la funzione Lambda ha rilevato qualcosa nella convalida dei dati utente, indica ad Amazon Lex cosa fare dopo.

    4. In base adialogAction.type ciò, Amazon Lex decide la prossima linea d'azione: raccogliere dati dall'utente per loLocation slot. Seleziona uno dei messaggi di richiesta ("What city will you be staying in?") per questo slot in base alla configurazione dell'intento, quindi invia la seguente risposta all'utente:

      Risposta JSON contenente lo stato della finestra di dialogo, il nome dell'intento, il messaggio, la scheda di risposta, gli attributi della sessione, lo slot da richiamare e gli slot.

      Gli attributi di sessione vengono passati al client.

      Il client legge la risposta e quindi visualizza il messaggio: "What city will you be staying in?"

  2. Utente: "Moscow"

    1. Il client invia la seguentePostText richiesta ad Amazon Lex (interruzioni di riga aggiunte per la leggibilità):

      POST /bot/BookTrip/alias/$LATEST/user/wch89kjqcpkds8seny7dly5x3otq68j3/text "Content-Type":"application/json" "Content-Encoding":"amz-1.0" { "inputText":"Moscow", "sessionAttributes":{ "currentReservation":"{\"ReservationType\":\"Hotel\", \"Location\":null, \"RoomType\":null, \"CheckInDate\":null, \"Nights\":null}" } }

      Oltre a inputText, il client include gli stessi attributi di sessione currentReservation ricevuti.

    2. Amazon Lex lo interpreta innanzituttoinputText nel contesto dell'intento attuale (il servizio ricorda di aver chiesto all'utente specifico informazioni sulloLocation slot). Aggiorna il valore dello slot per l'intento corrente e richiama la funzione Lambda utilizzando il seguente evento:

      { "messageVersion": "1.0", "invocationSource": "DialogCodeHook", "userId": "wch89kjqcpkds8seny7dly5x3otq68j3", "sessionAttributes": { "currentReservation": "{\"ReservationType\":\"Hotel\",\"Location\":null,\"RoomType\":null,\"CheckInDate\":null,\"Nights\":null}" }, "bot": { "name": "BookTrip", "alias": null, "version": "$LATEST" }, "outputDialogMode": "Text", "currentIntent": { "name": "BookHotel", "slots": { "RoomType": null, "CheckInDate": null, "Nights": null, "Location": "Moscow" }, "confirmationStatus": "None" } }
      Nota
      • invocationSource continua a essere DialogCodeHook. In questa fase, eseguiamo soltanto la convalida dei dati utente.

      • Amazon Lex sta solo passando l'attributo di sessione alla funzione Lambda.

      • PerchécurrentIntent.slots, Amazon Lex ha aggiornato loLocation slot aMoscow.

    3. La funzione Lambda esegue la convalida dei dati utente e determina cheMoscow si tratta di una posizione non valida.

      Nota

      La funzione Lambda in questo esercizio ha un semplice elenco di città valide e nonMoscow è inclusa nell'elenco. In un'applicazione di produzione, è possibile utilizzare un database di back-end per ottenere queste informazioni.

      Reimposta il valore dello slot su null e indirizza Amazon Lex a richiedere nuovamente all'utente un altro valore inviando la seguente risposta:

      { "sessionAttributes": { "currentReservation": "{\"ReservationType\":\"Hotel\",\"Location\":\"Moscow\",\"RoomType\":null,\"CheckInDate\":null,\"Nights\":null}" }, "dialogAction": { "type": "ElicitSlot", "intentName": "BookHotel", "slots": { "RoomType": null, "CheckInDate": null, "Nights": null, "Location": null }, "slotToElicit": "Location", "message": { "contentType": "PlainText", "content": "We currently do not support Moscow as a valid destination. Can you try a different city?" } } }
      Nota
      • currentIntent.slots.Location viene reimpostato su null.

      • dialogAction.typeè impostato suElicitSlot, il che indica ad Amazon Lex di richiedere nuovamente l'utente fornendo quanto segue:

        • dialogAction.slotToElicit: slot per il quale ottenere i dati dall'utente.

        • dialogAction.message: elemento message da trasmettere all'utente.

    4. Amazon Lex rilevadialogAction.type e trasmette le informazioni al cliente nella seguente risposta:

      Risposta JSON contenente lo stato della finestra di dialogo, il nome dell'intento, il messaggio, la scheda di risposta, gli attributi della sessione, lo slot da richiamare e gli slot.

      Il client visualizza semplicemente il messaggio: "We currently do not support Moscow as a valid destination. Can you try a different city?"

  3. Utente: "Chicago"

    1. Il client invia la seguentePostText richiesta ad Amazon Lex:

      POST /bot/BookTrip/alias/$LATEST/user/wch89kjqcpkds8seny7dly5x3otq68j3/text "Content-Type":"application/json" "Content-Encoding":"amz-1.0" { "inputText":"Chicago", "sessionAttributes":{ "currentReservation":"{\"ReservationType\":\"Hotel\", \"Location\":\"Moscow\", \"RoomType\":null, \"CheckInDate\":null, \"Nights\":null}" } }

    2. Amazon Lex conosce il contesto, che stava raccogliendo dati per loLocation slot. In questo contesto, sa che il valore inputText è per lo slot Location. Quindi richiama la funzione Lambda inviando il seguente evento:

      { "messageVersion": "1.0", "invocationSource": "DialogCodeHook", "userId": "wch89kjqcpkds8seny7dly5x3otq68j3", "sessionAttributes": { "currentReservation": "{\"ReservationType\":\"Hotel\",\"Location\":Moscow,\"RoomType\":null,\"CheckInDate\":null,\"Nights\":null}" }, "bot": { "name": "BookTrip", "alias": null, "version": "$LATEST" }, "outputDialogMode": "Text", "currentIntent": { "name": "BookHotel", "slots": { "RoomType": null, "CheckInDate": null, "Nights": null, "Location": "Chicago" }, "confirmationStatus": "None" } }

      Amazon Lex ha aggiornato ilcurrentIntent.slots impostando loLocation slot suChicago.

    3. In base alinvocationSource valore diDialogCodeHook, la funzione Lambda esegue la convalida dei dati utente. RiconosceChicago come valore di slot valido, aggiorna di conseguenza l'attributo della sessione e quindi restituisce la seguente risposta ad Amazon Lex.

      { "sessionAttributes": { "currentReservation": "{\"ReservationType\":\"Hotel\",\"Location\":\"Chicago\",\"RoomType\":null,\"CheckInDate\":null,\"Nights\":null}" }, "dialogAction": { "type": "Delegate", "slots": { "RoomType": null, "CheckInDate": null, "Nights": null, "Location": "Chicago" } } }
      Nota
      • currentReservation— La funzione Lambda aggiorna questo attributo di sessione impostando il valoreLocation toChicago.

      • dialogAction.type: è impostato su Delegate. I dati utente erano validi e la funzione Lambda indirizza Amazon Lex a scegliere la prossima linea d'azione.

       

    4. SecondodialogAction.type Amazon Lex sceglie la prossima linea d'azione. Amazon Lex sa di aver bisogno di più dati sugli slot e sceglie il successivo slot non riempito (CheckInDate) con la massima priorità in base alla configurazione dell'intento. Seleziona uno dei messaggi di richiesta ("What day do you want to check in?") per questo slot in base alla configurazione dell'intento, quindi invia la seguente risposta al client:

      Risposta JSON contenente lo stato della finestra di dialogo, il nome dell'intento, il messaggio, la scheda di risposta, gli attributi della sessione, lo slot da richiamare e gli slot. Lo slot di localizzazione è ora compilato come Chicago.

      Il client visualizza il messaggio: "What day do you want to check in?"

  4. L'interazione con l'utente continua: l'utente fornisce i dati, la funzione Lambda convalida i dati e quindi delega la prossima linea d'azione ad Amazon Lex. Alla fine l'utente fornisce tutti i dati dello slot, la funzione Lambda convalida tutti gli input dell'utente e quindi Amazon Lex riconosce di avere tutti i dati dello slot.

    Nota

    In questo esercizio, dopo che l'utente ha fornito tutti i dati relativi agli slot, la funzione Lambda calcola il prezzo della prenotazione alberghiera e lo restituisce come altro attributo di sessione (currentReservationPrice).

    A questo punto, l'intento è pronto per essere soddisfatto, ma l' BookHotelintento è configurato con una richiesta di conferma che richiede la conferma dell'utente prima che Amazon Lex possa soddisfare l'intento. Pertanto, Amazon Lex invia il seguente messaggio al cliente richiedendo la conferma prima di prenotare l'hotel:

    Risposta JSON contenente lo stato della finestra di dialogo, il nome dell'intento, il messaggio, la scheda di risposta, gli attributi della sessione, lo slot da richiamare e gli slot. Tutti gli slot sono ora occupati.

    Il client visualizza il messaggio: "Okay, I have you down for a 5 night in Chicago starting 2016-12-18. Shall I book the reservation?"

  5. Utente: "yes"

    1. Il client invia la seguentePostText richiesta ad Amazon Lex:

      POST /bot/BookTrip/alias/$LATEST/user/wch89kjqcpkds8seny7dly5x3otq68j3/text "Content-Type":"application/json" "Content-Encoding":"amz-1.0" { "inputText":"Yes", "sessionAttributes":{ "currentReservation":"{\"ReservationType\":\"Hotel\", \"Location\":\"Chicago\", \"RoomType\":\"queen\", \"CheckInDate\":\"2016-12-18\", \"Nights\":\"5\"}", "currentReservationPrice":"1195" } }
    2. Amazon Lex lo interpretainputText nel contesto della conferma dell'intento attuale. Amazon Lex capisce che l'utente desidera procedere con la prenotazione. Questa volta Amazon Lex richiama la funzione Lambda per soddisfare l'intento inviando il seguente evento. Impostando il valoreinvocationSource toFulfillmentCodeHook nell'evento, viene inviato alla funzione Lambda. Amazon Lex imposta ancheconfirmationStatus ilConfirmed.

      { "messageVersion": "1.0", "invocationSource": "FulfillmentCodeHook", "userId": "wch89kjqcpkds8seny7dly5x3otq68j3", "sessionAttributes": { "currentReservation": "{\"ReservationType\":\"Hotel\",\"Location\":\"Chicago\",\"RoomType\":\"queen\",\"CheckInDate\":\"2016-12-18\",\"Nights\":\"5\"}", "currentReservationPrice": "956" }, "bot": { "name": "BookTrip", "alias": null, "version": "$LATEST" }, "outputDialogMode": "Text", "currentIntent": { "name": "BookHotel", "slots": { "RoomType": "queen", "CheckInDate": "2016-12-18", "Nights": "5", "Location": "Chicago" }, "confirmationStatus": "Confirmed" } }
      Nota
      • invocationSource— Questa volta, Amazon Lex ha impostato questo valore suFulfillmentCodeHook, indirizzando la funzione Lambda a soddisfare l'intento.

      • confirmationStatus: è impostato su Confirmed.

    3. Questa volta, la funzione Lambda soddisfa l' BookHotel intento, Amazon Lex completa la prenotazione e quindi restituisce la seguente risposta:

      { "sessionAttributes": { "lastConfirmedReservation": "{\"ReservationType\":\"Hotel\",\"Location\":\"Chicago\",\"RoomType\":\"queen\",\"CheckInDate\":\"2016-12-18\",\"Nights\":\"5\"}" }, "dialogAction": { "type": "Close", "fulfillmentState": "Fulfilled", "message": { "contentType": "PlainText", "content": "Thanks, I have placed your reservation. Please let me know if you would like to book a car rental, or another hotel." } } }
      Nota
      • lastConfirmedReservation— È un nuovo attributo di sessione aggiunto dalla funzione Lambda (anzichécurrentReservation,currentReservationPrice).

      • dialogAction.type— La funzione Lambda imposta questo valore suClose, indicando che Amazon Lex non si aspetta una risposta da parte dell'utente.

      • dialogAction.fulfillmentState: è impostato su Fulfilled (Soddisfatto) e include un elemento message appropriato da trasmettere all'utente.

    4. Amazon Lex lo esaminafulfillmentState e invia la seguente risposta al cliente:

      Risposta JSON contenente lo stato della finestra di dialogo, il nome dell'intento, il messaggio, la scheda di risposta, gli attributi della sessione, lo slot da richiamare e gli slot. Tutti gli slot sono stati compilati e ora viene compilato un campo per l'ultima prenotazione confermata sotto gli attributi della sessione.
      Nota
      • dialogState— Amazon Lex imposta questo valore suFulfilled.

      • message— È lo stesso messaggio fornito dalla funzione Lambda.

      Il client visualizza il messaggio.

Flusso di dati: intento di prenotazione automobile

Il BookTrip bot in questo esercizio supporta due scopi (BookHotel e BookCar). Dopo aver prenotato un hotel, l'utente può continuare la conversazione per prenotare un'automobile. Purché non si sia verificato il timeout della sessione, in ogni richiesta successiva il client continua a inviare gli attributi di sessione (in questo esempio, lastConfirmedReservation). La funzione Lambda può utilizzare queste informazioni per inizializzare i dati dello slot per l' BookCar intento. Ciò illustra come utilizzare gli attributi di sessione nella condivisione dei dati tra più intenti.

In particolare, quando l'utente sceglie l' BookCar intento, la funzione Lambda utilizza le informazioni pertinenti nell'attributo di sessione per precompilare gli slot (PickUpDate ReturnDate, e PickUpCity) relativi all' BookCar intento.

Nota

La console Amazon Lex fornisce il link Clear che puoi utilizzare per cancellare gli attributi delle sessioni precedenti.

Seguire le fasi di questa procedura per continuare la conversazione.

  1. Utente: "also book a car"

    1. Il client invia la seguentePostText richiesta ad Amazon Lex.

      POST /bot/BookTrip/alias/$LATEST/user/wch89kjqcpkds8seny7dly5x3otq68j3/text "Content-Type":"application/json" "Content-Encoding":"amz-1.0" { "inputText":"also book a car", "sessionAttributes":{ "lastConfirmedReservation":""{\"ReservationType\":\"Hotel\", \"Location\":\"Chicago\", \"RoomType\":\"queen\", \"CheckInDate\":\"2016-12-18\", \"Nights\":\"5\"}" } }

      Il client include l'attributo di sessione lastConfirmedReservation.

    2. Amazon Lex rileva l'intento (BookCar) dainputText. Questo intento è anche configurato per richiamare la funzione Lambda per eseguire l'inizializzazione e la convalida dei dati utente. Amazon Lex richiama la funzione Lambda con il seguente evento:

      { "messageVersion": "1.0", "invocationSource": "DialogCodeHook", "userId": "wch89kjqcpkds8seny7dly5x3otq68j3", "sessionAttributes": { "lastConfirmedReservation": "{\"ReservationType\":\"Hotel\",\"Location\":\"Chicago\",\"RoomType\":\"queen\",\"CheckInDate\":\"2016-12-18\",\"Nights\":\"5\"}" }, "bot": { "name": "BookTrip", "alias": null, "version": "$LATEST" }, "outputDialogMode": "Text", "currentIntent": { "name": "BookCar", "slots": { "PickUpDate": null, "ReturnDate": null, "DriverAge": null, "CarType": null, "PickUpCity": null }, "confirmationStatus": "None" } }
      Nota
      • messageVersion— Attualmente Amazon Lex supporta solo la versione 1.0.

      • invocationSource: indica che lo scopo dell'invocazione è quello di eseguire l'inizializzazione e la convalida dei dati utente.

      • currentIntent— Include il nome dell'intento e gli slot. A questo punto, tutti i valori di slot sono null.

    3. La funzione Lambda rileva tutti i valori di slot nulli senza nulla da convalidare. Utilizza tuttavia gli attributi di sessione per inizializzare alcuni valori di slot (PickUpDateReturnDate e PickUpCity) e restituisce la seguente risposta:

      { "sessionAttributes": { "lastConfirmedReservation": "{\"ReservationType\":\"Hotel\",\"Location\":\"Chicago\",\"RoomType\":\"queen\",\"CheckInDate\":\"2016-12-18\",\"Nights\":\"5\"}", "currentReservation": "{\"ReservationType\":\"Car\",\"PickUpCity\":null,\"PickUpDate\":null,\"ReturnDate\":null,\"CarType\":null}", "confirmationContext": "AutoPopulate" }, "dialogAction": { "type": "ConfirmIntent", "intentName": "BookCar", "slots": { "PickUpCity": "Chicago", "PickUpDate": "2016-12-18", "ReturnDate": "2016-12-22", "CarType": null, "DriverAge": null }, "message": { "contentType": "PlainText", "content": "Is this car rental for your 5 night stay in Chicago on 2016-12-18?" } } }
      Nota
      • Oltre alastConfirmedReservation, la funzione Lambda include più attributi di sessione (currentReservationeconfirmationContext).

      • dialogAction.typeè impostato suConfirmIntent, il che informa Amazon Lex che è prevista una risposta sì, no da parte dell'utente (la funzione ConfirmationContext è impostata su AutoPopulate, la funzione Lambda sa che la risposta utente sì/no serve a ottenere la conferma dell'utente dell'inizializzazione eseguita dalla funzione Lambda (dati slot compilati auto).

         

        La funzione Lambda include anche nella risposta un messaggio informativo da restituiredialogAction.message ad Amazon Lex al client.

        Nota

        Il termine ConfirmIntent (valore di dialogAction.type) non è correlato ad alcun intento di bot. Nell'esempio, la funzione Lambda utilizza questo termine per indirizzare Amazon Lex a ricevere una risposta sì/no dall'utente.

    4. Secondo ildialogAction.type, Amazon Lex restituisce al cliente la seguente risposta:

      Risposta JSON contenente lo stato della finestra di dialogo, il nome dell'intento, il messaggio, la scheda di risposta, gli attributi della sessione, lo slot da richiamare e gli slot.

      Il client mostra il messaggio: "Is this car rental for your 5 night stay in Chicago on 2016-12-18?"

  2. Utente: "yes"

    1. Il client invia la seguentePostText richiesta ad Amazon Lex.

      POST /bot/BookTrip/alias/$LATEST/user/wch89kjqcpkds8seny7dly5x3otq68j3/text "Content-Type":"application/json" "Content-Encoding":"amz-1.0" { "inputText":"yes", "sessionAttributes":{ "confirmationContext":"AutoPopulate", "currentReservation":"{\"ReservationType\":\"Car\", \"PickUpCity\":null, \"PickUpDate\":null, \"ReturnDate\":null, \"CarType\":null}", "lastConfirmedReservation":"{\"ReservationType\":\"Hotel\", \"Location\":\"Chicago\", \"RoomType\":\"queen\", \"CheckInDate\":\"2016-12-18\", \"Nights\":\"5\"}" } }
    2. Amazon Lex leggeinputText e conosce il contesto (chiede all'utente di confermare la popolazione auto). Amazon Lex richiama la funzione Lambda inviando il seguente evento:

      { "messageVersion": "1.0", "invocationSource": "DialogCodeHook", "userId": "wch89kjqcpkds8seny7dly5x3otq68j3", "sessionAttributes": { "confirmationContext": "AutoPopulate", "currentReservation": "{\"ReservationType\":\"Car\",\"PickUpCity\":null,\"PickUpDate\":null,\"ReturnDate\":null,\"CarType\":null}", "lastConfirmedReservation": "{\"ReservationType\":\"Hotel\",\"Location\":\"Chicago\",\"RoomType\":\"queen\",\"CheckInDate\":\"2016-12-18\",\"Nights\":\"5\"}" }, "bot": { "name": "BookTrip", "alias": null, "version": "$LATEST" }, "outputDialogMode": "Text", "currentIntent": { "name": "BookCar", "slots": { "PickUpDate": "2016-12-18", "ReturnDate": "2016-12-22", "DriverAge": null, "CarType": null, "PickUpCity": "Chicago" }, "confirmationStatus": "Confirmed" } }

      Poiché l'utente ha risposto Sì, Amazon Lex impostaconfirmationStatus ilConfirmed.

    3. Da lìconfirmationStatus, la funzione Lambda sa che i valori precompilati sono corretti. La funzione Lambda; svolge le operazioni seguenti:

      • Aggiorna l'attributo di sessione currentReservation con il valore di slot precompilato.

      • Imposta dialogAction.type su ElicitSlot.

      • Imposta il valore slotToElicit su DriverAge.

      Viene inviata la seguente risposta:

      { "sessionAttributes": { "currentReservation": "{\"ReservationType\":\"Car\",\"PickUpCity\":\"Chicago\",\"PickUpDate\":\"2016-12-18\",\"ReturnDate\":\"2016-12-22\",\"CarType\":null}", "lastConfirmedReservation": "{\"ReservationType\":\"Hotel\",\"Location\":\"Chicago\",\"RoomType\":\"queen\",\"CheckInDate\":\"2016-12-18\",\"Nights\":\"5\"}" }, "dialogAction": { "type": "ElicitSlot", "intentName": "BookCar", "slots": { "PickUpDate": "2016-12-18", "ReturnDate": "2016-12-22", "DriverAge": null, "CarType": null, "PickUpCity": "Chicago" }, "slotToElicit": "DriverAge", "message": { "contentType": "PlainText", "content": "How old is the driver of this car rental?" } } }
    4. Amazon Lex restituisce la seguente risposta:

      Risposta JSON che mostra l'intenzione di prenotare un'auto e un messaggio che richiama lo slot per lo slot Driver Age.

      Il cliente visualizza il messaggio «Quanti anni ha il conducente di questo noleggio auto?» e la conversazione continua.