YAML-справочники
подсказка
YAML-справочники используются для хранения различных структурированных данных для проекта.
Примеры использования YAML-справочников:
- Вы можете вынести в YAML-справочник тексты ответов бота, чтобы хранить их в одном месте и поддерживать отдельно от кода бота.
- Следует хранить в отдельных справочниках параметры конфигурации бота, которые часто используются и могут изменяться: ключи к внешним API, ограничения на различные счетчики и т. д.
Формат
YAML-справочники хранятся в файлах с расширением .yaml
или .yml
.
YAML — простой формат для записи типизированных значений и стандартных структур данных: последовательностей и пар вида «ключ — значение» произвольной степени вложенности. Например:
start:
id: 1
summary: Приветствие
answers:
- Здравствуйте, {{$client.name}}!
- {{$client.name}}, рад знакомству!
# ...
catchAll:
id: 99
summary: Нераспознанный текст
answers:
- Извините, я вас не понял.
- Не могли бы вы переформулировать вопрос?
подсказка
Если вы хотите использовать строки из YAML-словаря после тегов реакций или действий,
вы можете использовать в них строковые подстановки.
Внутри скобок
{{}}
может находиться любое допустимое выражение на JavaScript.
Во время работы бота оно будет вычислено и подставлено в строку.Подключение
Для подключения YAML-справочника к сценарию воспользуйтесь тегом require
с параметром var
:
require: states.yaml
var = states
подсказка
При подключении справочник будет преобразован в эквивалентный объект JavaScript, который будет доступен из кода сценария по имени переменной, указанному после
var
.Использование в сценарии
Воспользуемся справочником выше, чтобы вывести случайный ответ на нераспознанный текст. Для генерации случайного числа воспользуемся методом $reactions.random
.
state: CatchAll
event!: noMatch
script:
$temp.index = $reactions.random(states.catchAll.answers.length);
a: {{states.catchAll.answers[$temp.index]}}