This site is no longer updated.Go to new Conversational Cloud docs

YAML-справочники


YAML-справочники используются для хранения различных структурированных данных для проекта.

Примеры использования YAML-справочников:

  • Вы можете вынести в YAML-справочник тексты ответов бота, чтобы хранить их в одном месте и поддерживать отдельно от кода бота.
  • Следует хранить в отдельных справочниках параметры конфигурации бота, которые часто используются и могут изменяться: ключи к внешним API, ограничения на различные счетчики и т. д.

Формат

YAML-справочники хранятся в файлах с расширением .yaml или .yml.

YAML — простой формат для записи типизированных значений и стандартных структур данных: последовательностей и пар вида «ключ — значение» произвольной степени вложенности. Например:

start:
  id: 1
  summary: Приветствие
  answers:
    - Здравствуйте!
    - Рад знакомству!

# ...

catchAll:
  id: 99
  summary: Нераспознанный текст
  answers:
    - Извините, я вас не понял.
    - Не могли бы вы переформулировать вопрос?

Подробнее о синтаксисе YAML

Подключение

Для подключения 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]}}