Impostazione degli attributi di sessione - 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à.

Impostazione degli attributi di sessione

Gli attributi di sessione contengono informazioni specifiche dell'applicazione che vengono trasmesse tra un bot e un'applicazione client durante una sessione. Amazon Lex passa gli attributi di sessione a tutte le funzioni Lambda configurate per un bot. Se una funzione Lambda aggiunge o aggiorna gli attributi di sessione, Amazon Lex ritrasmette le nuove informazioni all'applicazione client. Ad esempio:

Usa gli attributi di sessione nelle tue funzioni Lambda per inizializzare un bot e personalizzare i prompt e le schede di risposta. Ad esempio:

  • Inizializzazione: in un bot per ordinare pizze, l'applicazione client passa la posizione dell'utente come attributo di sessione nella prima chiamata all'PostTextoperazionePostContent or. Ad esempio, "Location": "111 Maple Street". La funzione Lambda utilizza queste informazioni per trovare la pizzeria più vicina a cui effettuare l'ordine.

  • Personalize i prompt: configura i prompt e le schede di risposta in modo che facciano riferimento agli attributi della sessione. Ad esempio, «Ehi [FirstName], quali condimenti vorresti?» Se passi il nome dell'utente come attributo di sessione ({"FirstName": "Jo"}), Amazon Lex sostituisce il nome con il segnaposto. e invia quindi un prompt personalizzato all'utente: "Salve Giovanni, quali ingredienti aggiuntivi desideri?"

Gli attributi della sessione vengono mantenuti per tutta la durata della sessione. Amazon Lex li archivia in un archivio dati crittografato fino al termine della sessione. Il client può creare gli attributi di sessione in una richiesta chiamando l'operazione PostContent o PostText con il campo sessionAttributes impostato su un valore. Una funzione Lambda può creare un attributo di sessione in una risposta. Dopo che il client o una funzione Lambda hanno creato un attributo di sessione, il valore dell'attributo memorizzato viene utilizzato ogni volta che l'applicazione client non include unsessionAttribute campo in una richiesta ad Amazon Lex.

Presupponi, ad esempio, di avere due attributi di sessione, {"x": "1", "y": "2"}. Se il client chiama l'PostTextoperazionePostContent or senza specificare ilsessionAttributes campo, Amazon Lex chiama la funzione Lambda con gli attributi di sessione memorizzati ({"x": 1, "y": 2}). Se la funzione Lambda non restituisce gli attributi di sessione, Amazon Lex restituisce gli attributi di sessione memorizzati all'applicazione client.

Se l'applicazione client o una funzione Lambda trasmettono gli attributi di sessione, Amazon Lex aggiorna gli attributi della sessione memorizzata. Il trasferimento di un valore esistente, come {"x": 2}, determina l'aggiornamento del valore archiviato. Se invii un nuovo set di attributi di sessione, ad esempio {"z": 3}, i valori esistenti vengono rimossi e viene mantenuto solo il nuovo valore. Quando viene trasferita una mappa vuota, {}, i valori archiviati vengono cancellati.

Per inviare gli attributi di sessione ad Amazon Lex, è necessario creare una string-to-string mappa degli attributi. Di seguito viene spiegato come mappare gli attributi di sessione:

{ "attributeName": "attributeValue", "attributeName": "attributeValue" }

Per l'operazione PostText, inserisci la mappa nel corpo della richiesta utilizzando il campo sessionAttributes, come segue:

"sessionAttributes": { "attributeName": "attributeValue", "attributeName": "attributeValue" }

Per l'operazione PostContent, applica la codifica base64 alla mappa e inviala come l'intestazione x-amz-lex-session-attributes.

Per inviare dati binari o strutturati in un attributo di sessione, devi dapprima trasformarli in una stringa semplice. Per ulteriori informazioni, consulta Impostazione di attributi complessi.