Spazio di archiviazione della sessione

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"