Impostazione degli attributi della sessione - Amazon Lex

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 della 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 trasmette 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 trasmette le nuove informazioni all'applicazione client.

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 pizza, l'applicazione client trasmette la posizione dell'utente come attributo di sessione nella prima chiamata all'RecognizeTextoperazione or. RecognizeUtterance Ad esempio, "Location": "111 Maple Street". La funzione Lambda utilizza queste informazioni per trovare la pizzeria più vicina a cui 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 posto del segnaposto. Quindi invia un messaggio personalizzato all'utente: «Ehi Vivian, quali condimenti desideri?»

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 RecognizeTextor 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 un 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'RecognizeUtteranceoperazione RecognizeText or senza specificare il sessionAttributes campo, Amazon Lex chiama la funzione Lambda con gli attributi della sessione memorizzati (){"x": 1, "y": 2}. Se la funzione Lambda non restituisce gli attributi di sessione, Amazon Lex restituisce gli attributi della sessione memorizzati all'applicazione client.

Se l'applicazione client o una funzione Lambda superano 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, devi creare una string-to-string mappa degli attributi. Di seguito viene spiegato come mappare gli attributi di sessione:

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

Per l'RecognizeTextoperazione, inserisci la mappa nel corpo della richiesta utilizzando il sessionAttributes campo della sessionState struttura, come segue:

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

Per l'RecognizeUtteranceoperazione, si codifica la mappa in base64 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.