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

Конфигурационный файл


chatbot.yaml — главный конфигурационный файл чатбота. Содержит имя главного файла сценария, информацию о подключаемых модулях, конфигурацию NLU-модуля, список тестов и другую конфигурационную информацию.


Общие настройки


Имя бота
name: botName

На основе этого параметра формируется имя zip-файла при выполнении команды build или buildDeploy и формируется botId при выполнении команды deploy и buildDeploy.


Главный файл
entryPoint: main.sc

main.sc или entryPoint.sc — главный файл сценария чатбота, с которого начинается загрузка сценария. Файл должен находиться в папке src.

В начале сценария можно подгрузить другие сценарии или js-файлы. Для этого используйте тег require.


XML-тесты сценариев
tests:
  include:
  - "**/*.xml"
  exclude:
  - broken.xml

XML-тесты сценариев позволяют проверить логику чатбота, эмулируя запросы клиента и проверяя ответы от бота.

Тесты выполняются автоматически при деплое бота, если присутствуют в папке проекта 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.

Подробнее о $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: Ой, кажется, что-то пошло не так.