Конфигурационный файл
chatbot.yaml — главный конфигурационный файл чатбота. Содержит имя главного файла сценария, информацию о подключаемых модулях, конфигурацию NLU-модуля, список тестов и другую конфигурационную информацию.
Общие настройки
Имя бота
name: botNameНа основе этого параметра формируется имя zip-файла при выполнении команды build или buildDeploy и формируется botId при выполнении команды deploy и buildDeploy.
Главный файл
entryPoint: main.scmain.sc или entryPoint.sc — главный файл сценария чатбота, с которого начинается загрузка сценария. Файл должен находиться в папке src.
В начале сценария можно подгрузить другие сценарии или js-файлы. Для этого используйте тег require.
XML-тесты сценариев
tests:
include:
- "**/*.xml"
exclude:
- broken.xmlXML-тесты сценариев позволяют проверить логику чатбота, эмулируя запросы клиента и проверяя ответы от бота.
Тесты выполняются автоматически при деплое бота, если присутствуют в папке проекта test. Это поведение можно переопределить в секции tests.
Секция tests может содержать две подсекции include и exclude, каждая представляет собой список ant-шаблонов с именами файлов.
include— будут выполнены тесты только из тех файлов, которые попадают под шаблоны, перечисленные в этой подсекции.exclude— из выполнения будут исключены все файлы, которые попадают под шаблоны, перечисленные в этой подсекции.
JS unit-тесты
jsTests:
extensions:
- spec.js
- test.js
include:
- "**/*.test.js"
- "dir/*.spec.js"
exclude:
- broken.test.js
- modules/common/**Платформа представляет возможность выполнять JS unit-тесты для автоматической проверки корректности JS-кода.
JS unit-тесты запускаются только локально. Для этого используется утилита по работе с платформой ZB-CLI.
Для выполнения тестов используется фреймворк Jasmine. По умолчанию выполняются все файлы из папки test, имеющие расширение test.js. В chatbot.yaml можно уточнить правила включения unit-тестов, а так же задать расширения для файлов с тестами.
Секция jsTests может содержать подсекции include и exclude, каждая представляет собой список ant-шаблонов с именами файлов.
include— будут выполнены тесты только из тех файлов, которые попадают под шаблоны, перечисленные в этой подсекции.exclude— из выполнения будут исключены все файлы, которые попадают под шаблоны, перечисленные в этой подсекции.
В подсекции extensions можно переопределить расширение для файлов с тестами.
Язык бота по умолчанию
language: ruПараметр language используется для установки языка бота по умолчанию, то есть заполняется поле $request.language, если оно не было задано в запросе.
В дальнейшем $request.language используется для выдачи локализованных сообщений об ошибках, а также может быть использован в сценариях.
Сообщения об ошибках
messages:
onError:
defaultMessage: Что-то пошло не так
locales:
ru: Что-то пошло не так
en: Failed on request processingСекция message позволяет переопределить текст сообщения об ошибках чатбота. Текст сообщения указывается в поле defaultMessage.
В случае ошибки, если поле не заполнено, бот не отвечает.
Локализованное сообщение выбирается в соответствии с языком клиента, который передается в параметре $request.language. Если параметр не передан, выводится сообщение из defaultMessage.
Подключение зависимостей
dependencies:
- name: common
type: git
url: https://<repository>
version: heads/master
- name: another_common
type: git
url: https://<repository>
version: heads/master
Секция dependencies позволяет определить список зависимостей проекта.
| Поле | Возможные значения | Описания |
|---|---|---|
name |
<name> |
Имя модуля, которое будет использоваться при подключении файлов в директиве require. |
type |
git, module |
Тип зависимости. Здесь: git — внешний git-репозиторий; module — указывает папку в случае, если в одном репозитории содержатся несколько модулей. |
url |
http:// git:// file:// |
url-адрес репозитория. Только для git-зависимостей. |
version |
heads/master |
Версия зависимости, может указывать на branch или tag. Только для git-зависимостей. |
?>Зависимости скачиваются в папку module при деплое через веб-интерфейс.
Injector
injector:
name: value
var1: value2Секция injector позволяет определить конфигурационные параметры чатбота. Определенные здесь параметры будут доступны в скриптах чатбота через переменную $injector.
NLU-функции
Для подключения STS классификатора задайте параметры для nlp-функций платформы. Подробное описание параметров и примеры конфигурационного файла в статье.
Для работы с NLU-сервисом CAILA укажите в chatbot.yaml параметры:
language: ru
botEngine: v2
sts:
noMatchThreshold: 0.2
caila:
noMatchThreshold: 0.2Подробнее о работе с NLU-сервисом CAILA
Пример файла
- Минимальный конфигурационный файл:
name: echo-template
entryPoint:
- main.sc
tests:
include:
- test.xml- Конфигурационный файл проекта с использованием NLU-сервиса CAILA:
name: zb-cailapub
entryPoint:
- main.sc
botEngine: v2
language: ru
sts:
noMatchThreshold: 0.2
caila:
noMatchThreshold: 0.2- Конфигурационный файл проекта с использованием STS классификатора:
name: content
entryPoint:
- main.sc
dependencies:
- name: common
type: git
url: https://bitbucket.org/common
version: heads/master
tests:
include:
- test.xml
- purchase_return.xml
- order.xml
- commercial.xml
- unsubscription.xml
nlp:
lengthLimit:
symbols: 1200
vocabFile: common-vocabulary.json
spellcheck:
enabled: true
minWordLengthForEditDistance: 3
maxWordEditDistance: 0
messages:
onError:
defaultMessage: Ой, кажется, что-то пошло не так.
locales:
ru: Ой, кажется, что-то пошло не так.