Перейти к основному содержимому

Системные модули

Системные модули — модули, подключаемые для всей JAICP. Зависимости на системные модули доступны во всех ботах без дополнительного объявления.

Доступные системные модули

В облачной версии платформы доступен системный модуль zb-common. Он содержит в себе ряд универсальных и часто используемых элементов сценариев:

  • Именованные паттерны.
  • Справочники и конвертеры для именованных сущностей.
  • Функции и библиотеки на JavaScript.
  • Готовые сценарные фрагменты.
подсказка
Вы можете просмотреть код системных модулей в редакторе сценариев. Код доступен только для чтения.

Использование

Чтобы импортировать файл из системного модуля в сценарий, необходимо в одном из файлов сценария воспользоваться тегом require:

require: offtopic/fallback.sc
module = sys.zb-common

Здесь:

  • zb-common — название системного модуля.
  • offtopic/fallback.sc — путь к подключаемому файлу.
подсказка
Перед названием системного модуля должен стоять префикс sys..

Пользовательские системные модули

On-premise

Если JAICP установлена к вам в контур, ваши сотрудники могут самостоятельно создавать системные модули, которые будут доступны всем пользователям вашей установки.

Есть два способа добавить системные модули:

  • Добавить параметры репозиториев с системными модулями в конфигурацию компонента EditorBE.
  • Подключить модули с хоста, где установлен компонент BotServer.
подсказка
Рекомендуемый способ — подключать репозитории с модулями в EditorBE. Если обоими способами подключен модуль с одинаковым названием, будет использоваться та версия, что подключена через репозиторий.

Модули из удаленных репозиториев

  1. Разработчики создают удаленный репозиторий с проектом JAICP, который будет подключаться в другие проекты как системный модуль.

  2. Системные администраторы должны добавить параметры репозитория в переопределяющую конфигурацию компонента EditorBE, после чего перезапустить компонент:

    configs/hosts/{env_name}/editorbe/application-override.yml
    system-projects:
    projects:
    # Системные проекты по умолчанию…

    - url: https://gitlab.custom.com/custom-module # URL репозитория.
    project-id: custom-module # ID проекта.
    branch: main # Ветка в репозитории проекта, по умолчанию master.
    module: true # Флаг, указывающий, что это системный модуль.
  3. Пользователи вашей установки JAICP смогут подключать файлы из системного модуля через require. Название системного модуля соответствует значению параметра project-id:

    require: patterns.sc
    module = sys.custom-module

Модули из локальной директории

  1. Системные администраторы должны добавить в переопределяющую конфигурацию компонента BotServer путь до директории, в которой будут размещены системные модули:

    configs/hosts/{env_name}/botserver/application-override.yml
    bot:
    systemModulesFolder: /opt/sys-modules
  2. Проекты, которые предполагается подключать как системные модули, нужно разместить в указанной директории:

    └── opt
    └── sys-modules
    ├── custom-module
    │   └── src
    │   └── patterns.sc
    └── js-packages
    └── src
    ├── moment.min.js
    └── underscore.min.js
  3. Пользователи вашей установки JAICP смогут подключать файлы из системного модуля через require. Название системного модуля соответствует названию поддиректории внутри bot.systemModulesFolder:

    require: patterns.sc
    module = sys.custom-module