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.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 webhooku . Ten przykład pobiera wartość z atrybutu „exampleColor” trwa pamięć masowa:
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ść w wywołaniu webhooka na null
.
Ten przykład usuwa wartość „exampleColor” w 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ł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:
Składnia warunku
session.params.exampleColor == "red"