W pamięci sesji możesz przechowywać wartości parametrów dla konkretnego użytkownika w rozmowie. Akcja może używać tych przechowywanych wartości później w promptach i warunkach, a kod webhooka może w razie potrzeby uzyskiwać dostęp do wartości w pamięci sesji na potrzeby rozmowy.
Podczas rozmowy wszystkie dane zebrane za pomocą typów są przechowywane w pamięci sesji. Z danych w pamięci sesji możesz też korzystać za pomocą wywołań webhooka.
W przypadku wywołań webhooka stan pamięci sesji jest przekazywany w żądaniu app.handle()
i przechowywany w obiekcie session
.
Dane przechowywane w pamięci sesji wygasają po zakończeniu rozmowy.
Odczytywanie i zapisywanie danych w pamięci sesji
Aby zaktualizować lub ustawić nową wartość w pamięci sesji, przypisz wartość do pola params
obiektu session
w wywołaniu webhooka. W tym przykładzie ustawiliśmy wartość „exampleColor” na „red” w pamięci sesji:
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 } } }
Aby uzyskać dostęp do danych przechowywanych w pamięci sesji, przypisz je do zmiennej w wywołaniu webhooka. Ten przykład pobiera wartość z „exampleColor” w pamięci sesji:
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 } } }
Aby usunąć wcześniej zapisaną wartość, ustaw wartość na null
w wywołaniu webhooka.
Ten przykład usuwa wartość „exampleColor” z pamięci sesji:
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 } } }
Odwoływanie się do zapisanych wartości w promptach
Wartości zapisane w pamięci sesji możesz odwoływać się w prompcie. Aby odwołać się do wartości, użyj składni $session.params.PARAMETER_NAME
, gdzie PARAMETER_NAME
to nazwa podana w webhooku podczas ustawiania parametru.
Załóżmy na przykład, że w pamięci sesji została wcześniej zapisana wartość koloru jako parametr exampleColor
. Aby uzyskać dostęp do tej wartości w prompcie, odwołuj się do niej za pomocą funkcji $session.params.exampleColor
:
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Your favorite color is $session.params.exampleColor." }] } }] }
Utwórz odwołanie do zapisanych wartości zgodnie z warunkami
Wartości przechowywane w pamięci sesji możesz też odwoływać się w conditions. Aby odwołać się do wartości, użyj składni session.params.PARAMETER_NAME
, gdzie PARAMETER_NAME
to nazwa podana w webhooku podczas ustawiania parametru.
Załóżmy na przykład, że w pamięci sesji jako parametr exampleColor
była zapisana wartość koloru, a teraz chcesz dopasować ją do wartości „red” (czerwony) w warunku. W warunku możesz się odwoływać do zapisanej wartości za pomocą funkcji session.params.exampleColor
. Wyrażenie warunku będzie wtedy wyglądać tak:
Składnia warunku
session.params.exampleColor == "red"