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]}}