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à.
Comprendere le sessioni bot di Amazon Lex V2
Quando un utente inizia una conversazione con il tuo bot, Amazon Lex V2 crea una sessione. Le informazioni scambiate tra l'applicazione e Amazon Lex V2 costituiscono lo stato della sessione per la conversazione. Quando effettui una richiesta, la sessione viene identificata da un identificatore da te specificato. Per ulteriori informazioni sull'identificatore di sessione, vedere il sessionId
campo dell'operazione RecognizeTextor RecognizeUtterance.
È possibile modificare lo stato della sessione scambiato tra l'applicazione e il bot. Ad esempio, è possibile creare e modificare attributi della sessione personalizzati che contengono informazioni sulla sessione ed è possibile modificare il flusso della conversazione impostando il contesto del dialogo per interpretare l’enunciazione successiva.
Esistono tre modi per aggiornare lo stato della sessione.
-
Passate le informazioni sulla sessione in linea come parte di una chiamata all'
RecognizeUtterance
operazioneRecognizeText
or. -
Usa una funzione Lambda con l'
RecognizeUtterance
operazioneRecognizeText
or che viene chiamata dopo ogni turno della conversazione. Per ulteriori informazioni, consulta Integrazione di un AWS Lambda funzione nel tuo bot. L'altro consiste nell'utilizzare il runtime Amazon Lex V2 API nell'applicazione per apportare modifiche allo stato della sessione. -
Utilizza operazioni che ti consentono di gestire le informazioni sulla sessione per una conversazione con il tuo bot. Le operazioni sono l'PutSessionoperazione, l'GetSessionoperazione e l'DeleteSessionoperazione. È possibile utilizzare queste operazioni per ottenere informazioni sullo stato della sessione dell’utente con il bot e avere il controllo granulare sullo stato.
Utilizza l'operazione GetSession
quando desideri ottenere lo stato attuale della sessione. L'operazione restituisce lo stato corrente della sessione, incluso lo stato del dialogo con l'utente, tutti gli attributi di sessione che sono stati impostati e i valori degli slot per l'intento corrente e qualsiasi altro intento che Amazon Lex V2 ha identificato come possibili intenti che corrispondono all'enunciato dell'utente.
L'operazione PutSession
consente di manipolare direttamente lo stato attuale della sessione. Puoi impostare la sessione, incluso il tipo di azione di dialogo che il bot eseguirà successivamente e i messaggi che Amazon Lex V2 invia all'utente. in modo da avere il controllo sul flusso della conversazione con il bot. Imposta il type
campo di azione della finestra Delegate
di dialogo in modo che Amazon Lex V2 determini l'azione successiva per il bot.
Puoi utilizzare l'operazione PutSession
per creare una nuova sessione con un bot e impostare l'intento iniziale del bot. Puoi inoltre utilizzare l'operazione PutSession
per passare da un intento a un altro. Quando crei una sessione o modifichi l’intento, puoi anche impostare lo stato della sessione, inclusi valori di slot e attributi della sessione. Quando il nuovo intento è terminato, puoi riavviare l’intento precedente.
La risposta ricevuta dall’operazione PutSession
contiene le stesse informazioni dell’operazione RecognizeUtterance
. Puoi utilizzare queste informazioni per richiedere all'utente le informazioni successive, esattamente come faresti con la risposta ricevuta dall'operazione RecognizeUtterance
.
Utilizza l'operazione DeleteSession
per rimuovere una sessione esistente e ricominciare con una nuova sessione. Ad esempio, quando esegui il test del bot, puoi utilizzare l'operazione DeleteSession
per eliminare le sessioni di test dal bot.
Le operazioni di sessione funzionano con le tue funzioni Lambda di adempimento. Ad esempio, se la funzione Lambda ritorna Failed
come stato di adempimento, puoi utilizzare l'PutSession
operazione per impostare il tipo di azione della finestra di dialogo su close
e per fulfillmentState
ReadyForFulfillment
riprovare la fase di adempimento.
Di seguito sono elencate alcune azioni che è possibile effettuare con le operazioni di sessione:
-
Impostare il bot in modo che avvii una conversazione invece di attendere l'utente.
-
Cambiare intento durante una conversazione.
-
Tornare a un intento precedente.
-
Avviare o riavviare una conversazione durante un’interazione.
-
Convalidare i valori di slot e impostare il bot in modo che richieda nuovamente i valori non validi.
Ognuna di queste azioni è descritta di seguito.
Avvio di una nuova sessione
Se desideri che il bot avvii la conversazione con l'utente, puoi utilizzare l'operazione PutSession
.
-
Crea un intento di benvenuto senza slot e un messaggio conclusivo che richieda all'utente di dichiarare un intento. Ad esempio, "Cosa desideri ordinare? Puoi dire "Ordina una bevanda" oppure "Ordina una pizza"”.
-
Chiama
PutSession
l'operazione. Utilizza come nome dell’intento quello dell’intento di benvenuto e imposta l’operazione di dialogo suDelegate
. -
Amazon Lex risponderà con la richiesta di benvenuto dell'utente di iniziare la conversazione con l'utente.
Cambio di intenti
Puoi utilizzare l'operazione PutSession
per passare da un intento a un altro e per tornare a un intento precedente. Puoi utilizzare l'operazione PutSession
per impostare gli attributi di sessione o i valori di slot per il nuovo intento.
-
Chiama
PutSession
l'operazione. Utilizza come nome dell’intento quello del nuovo intento e imposta l’operazione di dialogo suDelegate
. Puoi inoltre impostare i valori di slot o gli attributi di sessione necessari per il nuovo intento. -
Amazon Lex avvierà una conversazione con l'utente utilizzando il nuovo intento.
Ripresa di un intento precedente
Per ripristinare un intento precedente, si utilizza l'GetSession
operazione per ottenere lo stato dell'intento, eseguire l'interazione necessaria e quindi utilizzare l'PutSession
operazione per riportare l'intento allo stato della finestra di dialogo precedente.
-
Chiama
GetSession
l'operazione. Memorizza lo stato dell'intento. -
Esegui un'altra interazione, ad esempio adempiere a un intento diverso.
-
Utilizzando le informazioni salvate per l'intento precedente, richiamate l'operazione.
PutSession
In questo modo, l’utente tornerà all’intento precedente nella stessa posizione della conversazione.
In alcuni casi, può essere necessario riprendere la conversazione dell’utente con il bot. Ad esempio, immagina di aver creato un bot per il servizio clienti e che la tua applicazione stabilisca che l'utente deve parlare con un addetto per ricevere assistenza. Dopo la comunicazione con l'utente, l’addetto può aggiungere le informazioni raccolte alla conversazione con il bot.
Per riprendere una sessione, segui una procedura simile a questa:
-
La tua applicazione stabilisce che l'utente deve parlare con un addetto del servizio clienti.
-
Utilizza l'operazione
GetSession
per ottenere lo stato di dialogo attuale dell’intento. -
L’addetto del servizio clienti parla con l'utente e risolve il problema.
-
Utilizza l'operazione
PutSession
per impostare lo stato di dialogo dell’intento. Potresti dover impostare valori di slot e attributi o modificare l’intento. -
Il bot riprende la conversazione con l'utente.
Convalida dei valori degli slot
Puoi convalidare le risposte inviate al bot utilizzando l’applicazione client. Se la risposta non è valida, puoi utilizzare l'operazione PutSession
per ricevere una nuova risposta dall'utente. Ad esempio, immagina che il bot per ordinare fiori possa vendere soltanto tulipani, rose e gigli. Se l'utente ordina garofani, la tua applicazione può:
-
Esaminare il valore di slot restituito dalla risposta
PostText
oPostContent
. -
Se il valore di slot non è valido, può richiamare l'operazione
PutSession
. L'applicazione deve eliminare il valore di slot, impostare il camposlotToElicit
e impostare il valore didialogAction.type
suelicitSlot
. Facoltativamente, puoi impostare imessageFormat
campimessage
and se desideri modificare il messaggio utilizzato da Amazon Lex per ottenere il valore dello slot.