Вы можете сохранить значения параметров для конкретного пользователя в рамках разговора в хранилище сеанса. Затем ваше действие может использовать эти сохраненные значения позже в подсказках и условиях, а ваш код веб-перехватчика может при необходимости получать доступ к значениям в хранилище сеанса для разговора.
Во время разговора любые данные, собранные с использованием типов, сохраняются в хранилище сеансов. Вы также можете взаимодействовать с данными в хранилище сеансов с помощью вызовов веб-перехватчика. Для вызовов веб-перехватчика состояние хранилища сеанса передается в запросе app.handle()
и сохраняется в объекте session
.
Срок действия данных, хранящихся в хранилище сеанса, истекает после завершения разговора.
Чтение и запись данных в хранилище сеансов
Чтобы обновить или установить новое значение в хранилище сеанса, присвойте значение полю params
объекта session
в вызове веб-перехватчика. В следующем примере для параметра «exampleColor» в хранилище сеансов задается значение «красный»:
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 } } }
Чтобы получить доступ к данным, хранящимся в хранилище сеанса, назначьте их переменной в вызове веб-перехватчика. В следующем примере извлекается значение из «exampleColor» в хранилище сеанса:
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 } } }
Чтобы очистить ранее сохраненное значение, установите для него значение null
при вызове веб-перехватчика. В следующем примере очищается значение «exampleColor» в хранилище сеанса:
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 } } }
Ссылка на сохраненные значения в подсказках
Вы можете ссылаться на значения, хранящиеся в хранилище сеанса, в приглашении . Для ссылки на значение используйте $session.params. PARAMETER_NAME
Синтаксис $session.params. PARAMETER_NAME
, где PARAMETER_NAME
— это имя, указанное в веб-перехватчике при установке параметра.
Например, вы ранее сохранили значение цвета в хранилище сеанса как параметр exampleColor
. Чтобы получить доступ к этому значению в приглашении, вы ссылаетесь на это значение, используя $session.params.exampleColor
:
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Your favorite color is $session.params.exampleColor." }] } }] }
Ссылка на сохраненные значения в условиях
Вы также можете ссылаться на значения, хранящиеся в хранилище сеанса, в условиях . Чтобы ссылаться на значение, используйте session.params. PARAMETER_NAME
Синтаксис session.params. PARAMETER_NAME
, где PARAMETER_NAME
— это имя, указанное в веб-перехватчике при установке параметра.
Например, вы ранее сохранили значение цвета в хранилище сеанса как параметр exampleColor
и хотите сопоставить его со значением «красный» в условии. В вашем условии вы ссылаетесь на сохраненное значение, используя session.params.exampleColor
. Тогда выражение вашего условия будет выглядеть следующим образом:
Синтаксис условия
session.params.exampleColor == "red"