Переменные в DL
В рамках синтаксиса DL вы можете использовать системные, временные и пользовательские переменные (переменные контекста) DialogOS для более гибкого составления ответной части ассистента.
Переменные используются для сохранения информации об ассистенте, о его собеседнике-пользователе, о результатах обращения в сервисы и т.п.
Имя переменной – это последовательность символов, в которую могут входить латинские буквы, кириллические буквы, цифры, нижнее подчеркивание, дефис, точка.
Значения переменных устанавливаются в ходе диалога и могут быть извлечены и использованы при необходимости.
В DialogOS существует 3 типа переменных, которые вы можете использовать в синтаксисе языка DL:
- Системные переменные
- Временные переменные
- Пользовательские переменные (Переменные контекста)
Типы переменных
| Переменные | Пример переменной | Способ объявления |
|---|---|---|
| Системные переменные | rsp.state.score | Только ядром (Диалоговым процессором); зарезервированные переменные. |
| Временные переменные | tmp.a _a_ | В блоке [js]..[/js]; В ответе ДУ; В вызове функции; В вызове общей функции. |
| Пользовательские переменные (Переменные контекста) | var1 | Без объявления, путем обработки входящих в DialogOS переменных в диалоге; Путем создания переменной ассистента. |
Если вы хотите указать пользовательскую переменную которой нет в разделе «Переменные», нужно обязательно добавлять название переменной в список переменных в разделе «Переменные».
Действия с переменными
Можно выделить 3 вида использования переменных:
- Присвоение значения переменной
- Вывод(подстановка) значения переменной
- Проверка значения переменной
Присвоение значений переменной
| Переменные | Пример переменной | До формирования ответа | Во время формирования ответа | После формирования ответа |
|---|---|---|---|---|
| Системные переменные | rsp.state.score | ✅ | ❌ | ❌ |
| Временные переменные | tmp.a _a_ | ❌ | ✅ | ❌ |
| Пользовательские переменные (Переменные контекста) | var1 | ❌ (Исключиение - в случае, когда переменная приходит в DialogOS на вход с новым значением) | ❌ (Исключиение - в случае, присвоения переменной значения текстовой функцией SetValue [@set()] языка DL) | ✅ |
Вывод(подстановка) значения переменной
| Переменные | Пример переменной | Во время формирования ответа |
|---|---|---|
| Системные переменные | rsp.state.score | ✅ |
| Временные переменные | tmp.a _a_ | ✅ |
| Пользовательские переменные (Переменные контекста) | var1 | ✅ |
Использование переменных
В таблице ниже приведены элементы ассистента, а так же секции этих элементов, где можно использовать переменные в DL:
| Элемент | Секции |
|---|---|
| Диалоговый узел | Ответы |
| Глобальные ответы | Ответы |
| Теги | Ответы |