Puoi memorizzare i valori dei parametri per un utente specifico in una conversazione in di archiviazione di sessione. L'azione può quindi utilizzare i valori archiviati in un secondo momento nei prompt e le condizioni e il codice webhook può accedere ai valori nello spazio di archiviazione della sessione la conversazione quando necessario.
Durante una conversazione, tutti i dati raccolti utilizzando i tipi vengono memorizzati nella sessione
archiviazione. Puoi anche interagire con i dati nello spazio di archiviazione della sessione utilizzando le chiamate webhook.
Per le chiamate webhook, lo stato di archiviazione della sessione viene passato in un app.handle()
ed è archiviata nell'oggetto session
.
I dati archiviati nella memoria della sessione scadono al termine di una conversazione.
Leggere e scrivere dati nello spazio di archiviazione della sessione
Per aggiornare o impostare un nuovo valore nello spazio di archiviazione della sessione, assegna il valore al parametro
Campo params
dell'oggetto session
in una chiamata webhook. Nell'esempio che segue
imposta "exampleColor" al "rosso" nello spazio di archiviazione della sessione:
Node.js
// Assign color to session storage app.handle('storeColor', conv => { let color = 'red'; conv.session.params.exampleColor = color; });
JSON
{ "responseJson": { "session": { "id": "12345678901234567890", "params": { "exampleColor": "red" } }, "prompt": { "override": false } } }
Per accedere ai dati archiviati nello spazio di archiviazione della sessione, assegnali a una variabile in un webhook chiamata. L'esempio seguente recupera un valore da "exampleColor" nella sessione spazio di archiviazione:
Node.js
// Retrieve color from session storage app.handle('getStoredColor', conv => { let color = conv.session.params.exampleColor; });
JSON
{ "responseJson": { "session": { "id": "12345678901234567890", "params": { "exampleColor": "red" } }, "prompt": { "override": false } } }
Per cancellare un valore salvato in precedenza, imposta il valore su null
in una chiamata webhook.
L'esempio seguente cancella il valore di "exampleColor" nello spazio di archiviazione della sessione:
Node.js
// Clear color from session storage app.handle('clearStoredColor', conv => { conv.session.params.exampleColor = null; });
JSON
{ "responseJson": { "session": { "id": "12345678901234567890", "params": {} }, "prompt": { "override": false } } }
Fare riferimento ai valori archiviati all'interno dei prompt
Puoi fare riferimento ai valori archiviati nella memoria della sessione in un prompt. Per fare riferimento
utilizza la sintassi $session.params.PARAMETER_NAME
, dove
PARAMETER_NAME
è il nome assegnato nel webhook quando il parametro
è stata impostata.
Ad esempio, in precedenza hai memorizzato un valore del colore nella memoria di sessione come
parametro exampleColor
. Per accedere a quel valore in un prompt, devi fare riferimento
utilizzando $session.params.exampleColor
:
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Your favorite color is $session.params.exampleColor." }] } }] }
Fare riferimento ai valori archiviati all'interno delle condizioni
Puoi anche fare riferimento ai valori archiviati nella memoria di sessione in condizioni. A
fare riferimento al valore, utilizzare l'session.params.PARAMETER_NAME
in cui PARAMETER_NAME
è il nome fornito nel webhook quando
il parametro è stato impostato.
Ad esempio, in precedenza hai memorizzato un valore del colore nella memoria di sessione come
parametro exampleColor
e vuoi associarlo al valore "red" in un
. Nella tua condizione, fai riferimento al valore memorizzato utilizzando
session.params.exampleColor
. L'espressione della condizione avrà il seguente aspetto:
Sintassi delle condizioni
session.params.exampleColor == "red"