Pamięć sesji

Wartości parametrów dotyczące konkretnego użytkownika w rozmowie możesz przechowywać w pamięci sesji. Akcja może następnie używać tych zapisanych wartości w promptach i warunków, a kod webhooka może uzyskać dostęp do wartości w pamięci sesji dla w razie potrzeby i w razie potrzeby.

Podczas rozmowy wszystkie dane zebrane za pomocą typów są przechowywane w ramach sesji. pamięci masowej. Możesz też wchodzić w interakcję z danymi w pamięci sesji za pomocą wywołań webhooka. W przypadku wywołań webhooka stan pamięci sesji jest przekazywany w interfejsie app.handle() i jest przechowywane w obiekcie session.

Dane przechowywane w pamięci sesji wygasają po zakończeniu rozmowy.

Odczyt i zapis danych w pamięci sesji

Aby zaktualizować lub ustawić nową wartość w pamięci sesji, przypisz ją do funkcji Pole params obiektu session w wywołaniu webhooka. Przykład poniżej ustawia „exampleColor” na „czerwony” w pamięci sesji:

Node.jsJSON
// Assign color to session storage
app
.handle('storeColor', conv => {
  let color
= 'red';
  conv
.session.params.exampleColor = color;
});
   
{
 
"responseJson": {
   
"session": {
     
"id": "12345678901234567890",
     
"params": {
       
"exampleColor": "red"
     
}
   
},
   
"prompt": {
     
"override": false
   
}
 
}
}
   

Aby uzyskać dostęp do danych przechowywanych w pamięci sesji, przypisz je do zmiennej w webhooku . Ten przykład pobiera wartość z atrybutu „exampleColor” trwa pamięć masowa:

Node.jsJSON
// Retrieve color from session storage
app
.handle('getStoredColor', conv => {
  let color
= conv.session.params.exampleColor;
});
   
{
 
"responseJson": {
   
"session": {
     
"id": "12345678901234567890",
     
"params": {
       
"exampleColor": "red"
     
}
   
},
   
"prompt": {
     
"override": false
   
}
 
}
}
   

Aby usunąć wcześniej zapisaną wartość, ustaw wartość w wywołaniu webhooka na null. Ten przykład usuwa wartość „exampleColor” w pamięci sesji:

Node.jsJSON
// Clear color from session storage
app
.handle('clearStoredColor', conv => {
  conv
.session.params.exampleColor = null;
});
   
{
 
"responseJson": {
   
"session": {
     
"id": "12345678901234567890",
     
"params": {}
   
},
   
"prompt": {
     
"override": false
   
}
 
}
}
   

Odwoływać się do przechowywanych wartości w promptach

Możesz odwoływać się do wartości zapisanych w pamięci sesji w prompcie. Aby odwołać się do wartość, użyj składni $session.params.PARAMETER_NAME, gdzie PARAMETER_NAME to nazwa nadana w webhooku, gdy parametr została ustawiona.

Na przykład w pamięci sesji została wcześniej zapisana wartość koloru jako exampleColor. Aby uzyskać dostęp do tej wartości w prompcie, musisz odwoływać się do niej: używając funkcji $session.params.exampleColor:

JSON
{
 
"candidates": [{
   
"first_simple": {
     
"variants": [{
       
"speech": "Your favorite color is $session.params.exampleColor."
     
}]
   
}
 
}]
}
   

Odwoływanie się do przechowywanych wartości w warunkach

W warunkach możesz też odwoływać się do wartości przechowywanych w pamięci sesji. Do odwołuje się do wartości, użyj funkcji session.params.PARAMETER_NAME gdzie PARAMETER_NAME to nazwa podana w webhooku, parametr został skonfigurowany.

Na przykład w pamięci sesji została wcześniej zapisana wartość koloru jako exampleColor i chcesz dopasować go do wartości „red” w . W warunku odwołujesz się do wartości przedpłaconej za pomocą funkcji session.params.exampleColor Twoje wyrażenie warunku wygląda tak:

session.params.exampleColor == "red"