Создание и сохранение переменных контекста | Слот Memory
Слот Memory – слот, позволяющий записывать данные в Контекстные переменные чата, а также создавать новые Пользовательские контекстные переменные путем записи значения в несуществующую ранее переменную.
Последующие переходы: Text, Wait For Reaction, Jump, Attachment, File, Memory, External Request, Slot Filling, Button Menu, Transition Rule, Regular Expression, NLU, Change Chat Mode.

- NAME ー название слота, которое будет отображено в Диалоговом Сценарии;
- KEY ー имя переменной;
- VALUE ー значение, которое будет записано в переменную.
Для того, чтобы записать значение в Контекстные переменные чата, используя слот Memory, необходимо указать в поле KEY название переменной, а в поле VALUE нужное значение.
Важно!
Все переменные записываются только в текстовом или числовом формате. Число, записанное в одинарных кавычках (’45’), является строкой и не может участвовать в арифметических операциях.


В некоторых случаях значение VALUE необходимо обрамить одинарными кавычками.
Например, если нужно записать числа как строку:

или записать строку со спецсимволами (+):

Важно!
Пробелы в начале или в конце поля VALUE будут автоматически удалены.

Если требуется записать значение одной Контекстной переменной чата в другую переменную, то в поле VALUE необходимо указать название переменной, используя синтаксис {{ @variable_name }}.
Например, если нужно сохранить последнее сообщение Собеседника в Контексте client_message, то в поле VALUE будет значение {{ @client_message }}.

Если нужно записать в переменную пустую строку, в поле VALUE нужно указать две одинарные кавычки.

В некоторых случаях необходимо заменить значение client_message на отличное от последнего сообщения Собеседника. Например, для распознавания текста, полученного по External Request в слотах NLU и Regular Expression.
Это можно сделать в слоте Memory. Переменная client_messageー единственная из системных контекстных переменных, которую можно перезаписывать.
Также в слоте Memory можно выполнять конкатенацию нескольких значений, в т.ч. переменными.
Для этого нужно перечислить эти переменные в нужном порядке в поле VALUE, через знак « + ».
- Конкатенация строковых переменных

- Конкатенация строковой и числовой переменной

Переменная v3 имеет числовое значение, ее необходимо обрамить одинарными кавычками. Иначе в процессе общения в слоте Memory произойдет ошибка, так как знак « + » с числовым значением определяется как операция сложения.
- Конкатенация строковой переменной и строки

Важно!
Конкатенация системных контекстных переменных modified_at и date невозможна, так как они имеют тип данных «Дата».
В слоте Memory можно выполнять арифметические операции с числами.
NB
На данный момент нельзя проводить арифметические операции с переменными.
Знак “+” выполняет как сложение, так и конкатенацию, в вышеуказанном примере складываются числа, но если обрамить их в одинарные кавычки (т.е. привести к строкам) ‘134’+’1265’, то будет выполнена конкатенация строк, итог будет равен 1341265.
Для получения целой части от результата деления используется операция приведения данных к целочисленному типу.
Для определения приоритета выполнения арифметических операций используются круглые скобки.
Важно!
При попытке записать в поле VALUE операцию, которая не соответствует описанным выше правилам, произойдет ошибка. Системная контекстная переменная error примет значение Failed to process the data!