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 per il tuo bot Lex V2
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 della sessione, Amazon Lex restituisce le nuove informazioni all'applicazione client.
Usa gli attributi di sessione nelle tue funzioni Lambda per inizializzare un bot e personalizzare prompt e schede di risposta. Per esempio:
-
Inizializzazione: in un bot per ordinare pizze, l'applicazione client trasmette la posizione dell'utente come attributo di sessione nella prima chiamata all'operazione or. RecognizeTextRecognizeUtterance Ad esempio
"Location": "111 Maple Street"
. La funzione Lambda utilizza queste informazioni per trovare la pizzeria più vicina per effettuare l'ordine. -
Personalizza i prompt: configura i prompt e le schede di risposta per fare riferimento agli attributi della sessione. Ad esempio, «Ehi [FirstName], quali condimenti vorresti?» Se passi il nome dell'utente come attributo di sessione (
{"FirstName": "Vivian"}
), Amazon Lex sostituisce il nome al segnaposto. Quindi invia un messaggio personalizzato all'utente: «Ehi Vivian, quali condimenti vorresti?»
Gli attributi della sessione persistono per tutta la durata della sessione. Amazon Lex li archivia in un archivio dati crittografato fino al termine della sessione. Il client può creare attributi di sessione in una richiesta chiamando l'RecognizeUtteranceoperazione RecognizeTexto con il sessionAttributes
campo 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 il sessionAttribute
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'RecognizeUtterance
operazione RecognizeText
or senza specificare il sessionAttributes
campo, Amazon Lex chiama la funzione Lambda con gli attributi {"x": 1, "y": 2}
di sessione memorizzati (). 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 passano gli attributi di sessione, Amazon Lex aggiorna gli attributi di sessione memorizzati. 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, crei una string-to-string mappa degli attributi. Di seguito viene spiegato come mappare gli attributi di sessione:
{ "attributeName": "attributeValue", "attributeName": "attributeValue" }
Per l'RecognizeText
operazione, inserisci la mappa nel corpo della richiesta utilizzando il sessionAttributes
campo della sessionState
struttura, come segue:
"sessionState": { "sessionAttributes": { "attributeName": "attributeValue", "attributeName": "attributeValue" } }
Per l'RecognizeUtterance
operazione, si codifica in base64 la mappa e quindi la si invia come parte dell'intestazione. x-amz-lex-session-state
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 nel tuo bot Lex V2.