{
    "componentChunkName": "component---src-templates-doc-page-js",
    "path": "/docs/ru/common/bot_structure/configuration_file/",
    "result": {"data":{"site":{"siteMetadata":{"title":"Gatsby-doc-engine"}},"markdownRemark":{"id":"8a623bdd-362b-5797-a102-2f5fda1db678","excerpt":"Конфигурационный файл?>  — главный конфигурационный файл чатбота. Содержит имя главного файла сценария, информацию о подключаемых модулях, конфигурацию NLU…","html":"<h1>Конфигурационный файл</h1>\n<hr>\n<p class='warn'><code class=\"language-text\">chatbot.yaml</code> — главный конфигурационный файл чатбота. Содержит имя главного файла сценария, информацию о подключаемых модулях, конфигурацию NLU-модуля, список тестов и другую конфигурационную информацию.</p>\n</br>\n<h3>Общие настройки</h3>\n</br>\n<h5>Имя бота</h5>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> botName</code></pre></div>\n<p>На основе этого параметра формируется имя zip-файла при выполнении команды <code class=\"language-text\">build</code> или <code class=\"language-text\">buildDeploy</code> и формируется <code class=\"language-text\">botId</code> при выполнении команды <code class=\"language-text\">deploy</code> и <code class=\"language-text\">buildDeploy</code>.</p>\n</br>\n<h5>Главный файл</h5>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">entryPoint</span><span class=\"token punctuation\">:</span> main.sc</code></pre></div>\n<p><code class=\"language-text\">main.sc</code> или <code class=\"language-text\">entryPoint.sc</code> — главный файл сценария чатбота, с которого начинается загрузка сценария. Файл должен находиться в папке <code class=\"language-text\">src</code>.</p>\n<p class='warn'>В начале сценария можно подгрузить другие сценарии или js-файлы. Для этого используйте тег <code class=\"language-text\">require</code>.</p>\n</br>\n<h5>XML-тесты сценариев</h5>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">tests</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">include</span><span class=\"token punctuation\">:</span>\n  <span class=\"token punctuation\">-</span> <span class=\"token string\">\"**/*.xml\"</span>\n  <span class=\"token key atrule\">exclude</span><span class=\"token punctuation\">:</span>\n  <span class=\"token punctuation\">-</span> broken.xml</code></pre></div>\n<p>XML-тесты сценариев позволяют проверить логику чатбота, эмулируя запросы клиента и проверяя ответы от бота.</p>\n<p>Тесты выполняются автоматически при деплое бота, если присутствуют в папке проекта <code class=\"language-text\">test</code>. Это поведение можно переопределить в секции <code class=\"language-text\">tests</code>.</p>\n<p>Секция <code class=\"language-text\">tests</code> может содержать две подсекции <code class=\"language-text\">include</code> и <code class=\"language-text\">exclude</code>, каждая представляет собой список <a href=\"http://ant.apache.org/manual/dirtasks.html#patterns\" target=\"_blank\" rel=\"noopener noreferrer\">ant-шаблонов</a> с именами файлов.</p>\n<ul>\n<li><code class=\"language-text\">include</code> — будут выполнены тесты только из тех файлов, которые попадают под шаблоны, перечисленные в этой подсекции.</li>\n<li><code class=\"language-text\">exclude</code> — из выполнения будут исключены все файлы, которые попадают под шаблоны, перечисленные в этой подсекции.</li>\n</ul>\n</br>\n<h5>JS unit-тесты</h5>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">jsTests</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">extensions</span><span class=\"token punctuation\">:</span>\n     <span class=\"token punctuation\">-</span> spec.js\n     <span class=\"token punctuation\">-</span> test.js\n  <span class=\"token key atrule\">include</span><span class=\"token punctuation\">:</span>\n     <span class=\"token punctuation\">-</span> <span class=\"token string\">\"**/*.test.js\"</span>\n     <span class=\"token punctuation\">-</span> <span class=\"token string\">\"dir/*.spec.js\"</span>\n  <span class=\"token key atrule\">exclude</span><span class=\"token punctuation\">:</span>\n     <span class=\"token punctuation\">-</span> broken.test.js\n     <span class=\"token punctuation\">-</span> modules/common/<span class=\"token important\">**</span></code></pre></div>\n<p>Платформа представляет возможность выполнять JS unit-тесты для автоматической проверки корректности JS-кода.</p>\n<p class='tip'>JS unit-тесты запускаются только локально. Для этого используется утилита по работе с платформой <code class=\"language-text\">ZB-CLI</code>.</p>\n<p>Для выполнения тестов используется фреймворк <a href=\"https://jasmine.github.io/\" target=\"_blank\" rel=\"noopener noreferrer\">Jasmine</a>. По умолчанию выполняются все файлы из папки <code class=\"language-text\">test</code>, имеющие расширение <code class=\"language-text\">test.js</code>. В <code class=\"language-text\">chatbot.yaml</code> можно уточнить правила включения unit-тестов, а так же задать расширения для файлов с тестами.</p>\n<p>Секция <code class=\"language-text\">jsTests</code> может содержать подсекции <code class=\"language-text\">include</code> и <code class=\"language-text\">exclude</code>, каждая представляет собой список <a href=\"http://ant.apache.org/manual/dirtasks.html#patterns\" target=\"_blank\" rel=\"noopener noreferrer\">ant-шаблонов</a> с именами файлов.</p>\n<ul>\n<li><code class=\"language-text\">include</code> — будут выполнены тесты только из тех файлов, которые попадают под шаблоны, перечисленные в этой подсекции.</li>\n<li><code class=\"language-text\">exclude</code> — из выполнения будут исключены все файлы, которые попадают под шаблоны, перечисленные в этой подсекции.</li>\n</ul>\n<p>В подсекции <code class=\"language-text\">extensions</code> можно переопределить расширение для файлов с тестами.</p>\n</br>\n<h5>Язык бота по умолчанию</h5>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">language</span><span class=\"token punctuation\">:</span> ru</code></pre></div>\n<p>Параметр <code class=\"language-text\">language</code> используется для установки языка бота по умолчанию, то есть заполняется поле <code class=\"language-text\">$request.language</code>, если оно не было задано в запросе.</p>\n<p>В дальнейшем <code class=\"language-text\">$request.language</code> используется для выдачи локализованных сообщений об ошибках, а также может быть использован в сценариях.</p>\n</br>\n<h5>Сообщения об ошибках</h5>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">messages</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">onError</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">defaultMessage</span><span class=\"token punctuation\">:</span> Что<span class=\"token punctuation\">-</span>то пошло не так\n    <span class=\"token key atrule\">locales</span><span class=\"token punctuation\">:</span>\n      <span class=\"token key atrule\">ru</span><span class=\"token punctuation\">:</span> Что<span class=\"token punctuation\">-</span>то пошло не так\n      <span class=\"token key atrule\">en</span><span class=\"token punctuation\">:</span> Failed on request processing</code></pre></div>\n<p>Секция <code class=\"language-text\">message</code> позволяет переопределить текст сообщения об ошибках чатбота. Текст сообщения указывается в поле <code class=\"language-text\">defaultMessage</code>.</p>\n<p class='tip'>В случае ошибки, если поле не заполнено, бот не отвечает.</p>\n<p>Локализованное сообщение выбирается в соответствии с языком клиента, который передается в параметре <code class=\"language-text\">$request.language</code>. Если параметр не передан, выводится сообщение из <code class=\"language-text\">defaultMessage</code>.</p>\n</br>\n<h5>Подключение зависимостей</h5>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">dependencies</span><span class=\"token punctuation\">:</span>\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> common\n   <span class=\"token key atrule\">type</span><span class=\"token punctuation\">:</span> git\n   <span class=\"token key atrule\">url</span><span class=\"token punctuation\">:</span> https<span class=\"token punctuation\">:</span>//&lt;repository<span class=\"token punctuation\">></span>\n   <span class=\"token key atrule\">version</span><span class=\"token punctuation\">:</span> heads/master\n <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> another_common\n   <span class=\"token key atrule\">type</span><span class=\"token punctuation\">:</span> git\n   <span class=\"token key atrule\">url</span><span class=\"token punctuation\">:</span> https<span class=\"token punctuation\">:</span>//&lt;repository<span class=\"token punctuation\">></span>\n   <span class=\"token key atrule\">version</span><span class=\"token punctuation\">:</span> heads/master\n</code></pre></div>\n<p>Секция <code class=\"language-text\">dependencies</code> позволяет определить список зависимостей проекта.</p>\n</br>\n<table>\n<thead>\n<tr>\n<th>Поле</th>\n<th>Возможные значения</th>\n<th>Описания</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code class=\"language-text\">name</code></td>\n<td><code class=\"language-text\">&lt;name></code></td>\n<td>Имя модуля, которое будет использоваться при подключении файлов в директиве <code class=\"language-text\">require</code>.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">type</code></td>\n<td><code class=\"language-text\">git</code>, <code class=\"language-text\">module</code></td>\n<td>Тип зависимости. Здесь: <code class=\"language-text\">git</code> — внешний git-репозиторий; <code class=\"language-text\">module</code> — указывает папку в случае, если в одном репозитории содержатся несколько модулей.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">url</code></td>\n<td><code class=\"language-text\">http://</code>  <code class=\"language-text\">git://</code>  <code class=\"language-text\">file://</code></td>\n<td><code class=\"language-text\">url</code>-адрес репозитория. Только для <code class=\"language-text\">git</code>-зависимостей.</td>\n</tr>\n<tr>\n<td><code class=\"language-text\">version</code></td>\n<td><code class=\"language-text\">heads/master</code></td>\n<td>Версия зависимости, может указывать на <code class=\"language-text\">branch</code> или <code class=\"language-text\">tag</code>. Только для <code class=\"language-text\">git</code>-зависимостей.</td>\n</tr>\n</tbody>\n</table>\n<p>?>Зависимости скачиваются в папку <code class=\"language-text\">module</code> при деплое через веб-интерфейс.</p>\n</br>\n<h5>Injector</h5>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">injector</span><span class=\"token punctuation\">:</span>\n   <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> value\n   <span class=\"token key atrule\">var1</span><span class=\"token punctuation\">:</span> value2</code></pre></div>\n<p>Секция <code class=\"language-text\">injector</code> позволяет определить конфигурационные параметры чатбота. Определенные здесь параметры будут доступны в скриптах чатбота через переменную <code class=\"language-text\">$injector</code>.</p>\n<p class='warn'><a href=/1.10.3/docs/ru/JS_API/variables/injector  >Подробнее о <code class=\"language-text\">$injector</code></a></p>\n</br>\n<h3>NLU-функции</h3>\n<p>Для подключения STS классификатора задайте параметры для nlp-функций платформы. Подробное описание параметров и примеры конфигурационного файла в <a href=\"/1.10.3/docs/ru/classificator/connection_classificator\">статье</a>.</p>\n<p>Для работы с NLU-сервисом CAILA укажите в <code class=\"language-text\">chatbot.yaml</code> параметры:</p>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">language</span><span class=\"token punctuation\">:</span> ru\n<span class=\"token key atrule\">botEngine</span><span class=\"token punctuation\">:</span> v2\n\n<span class=\"token key atrule\">sts</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">noMatchThreshold</span><span class=\"token punctuation\">:</span> <span class=\"token number\">0.2</span>\n<span class=\"token key atrule\">caila</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">noMatchThreshold</span><span class=\"token punctuation\">:</span> <span class=\"token number\">0.2</span></code></pre></div>\n<p class='warn'><a href=/1.10.3/docs/ru/NLU_core/nlu_core  >Подробнее о работе с NLU-сервисом CAILA</a></p>\n</br>\n<h3>Пример файла</h3>\n<ul>\n<li>Минимальный конфигурационный файл:</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> echo<span class=\"token punctuation\">-</span>template\n\n<span class=\"token key atrule\">entryPoint</span><span class=\"token punctuation\">:</span>\n  <span class=\"token punctuation\">-</span> main.sc\n\n<span class=\"token key atrule\">tests</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">include</span><span class=\"token punctuation\">:</span>\n    <span class=\"token punctuation\">-</span> test.xml</code></pre></div>\n</br>\n<ul>\n<li>Конфигурационный файл проекта с использованием NLU-сервиса CAILA:</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"language-yaml\"><code class=\"language-yaml\"><span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> zb<span class=\"token punctuation\">-</span>cailapub\n\n<span class=\"token key atrule\">entryPoint</span><span class=\"token punctuation\">:</span>\n  <span class=\"token punctuation\">-</span> main.sc\n\n<span class=\"token key atrule\">botEngine</span><span class=\"token punctuation\">:</span> v2\n<span class=\"token key atrule\">language</span><span class=\"token punctuation\">:</span> ru\n\n<span class=\"token key atrule\">sts</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">noMatchThreshold</span><span class=\"token punctuation\">:</span> <span class=\"token number\">0.2</span>\n\n<span class=\"token key atrule\">caila</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">noMatchThreshold</span><span class=\"token punctuation\">:</span> <span class=\"token number\">0.2</span></code></pre></div>\n</br>\n<ul>\n<li>Конфигурационный файл проекта с использованием STS классификатора:</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"yml\"><pre class=\"language-yml\"><code class=\"language-yml\"><span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> content\n\n<span class=\"token key atrule\">entryPoint</span><span class=\"token punctuation\">:</span>\n  <span class=\"token punctuation\">-</span> main.sc\n\n<span class=\"token key atrule\">dependencies</span><span class=\"token punctuation\">:</span>\n  <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> common\n    <span class=\"token key atrule\">type</span><span class=\"token punctuation\">:</span> git\n    <span class=\"token key atrule\">url</span><span class=\"token punctuation\">:</span> https<span class=\"token punctuation\">:</span>//bitbucket.org/common\n    <span class=\"token key atrule\">version</span><span class=\"token punctuation\">:</span> heads/master\n    \n<span class=\"token key atrule\">tests</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">include</span><span class=\"token punctuation\">:</span>\n    <span class=\"token punctuation\">-</span> test.xml\n    <span class=\"token punctuation\">-</span> purchase_return.xml\n    <span class=\"token punctuation\">-</span> order.xml\n    <span class=\"token punctuation\">-</span> commercial.xml\n    <span class=\"token punctuation\">-</span> unsubscription.xml\n\n\n<span class=\"token key atrule\">nlp</span><span class=\"token punctuation\">:</span>\n  <span class=\"token key atrule\">lengthLimit</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">symbols</span><span class=\"token punctuation\">:</span> <span class=\"token number\">1200</span>\n  <span class=\"token key atrule\">vocabFile</span><span class=\"token punctuation\">:</span> common<span class=\"token punctuation\">-</span>vocabulary.json\n  <span class=\"token key atrule\">spellcheck</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">enabled</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\n    <span class=\"token key atrule\">minWordLengthForEditDistance</span><span class=\"token punctuation\">:</span> <span class=\"token number\">3</span>\n    <span class=\"token key atrule\">maxWordEditDistance</span><span class=\"token punctuation\">:</span> <span class=\"token number\">0</span>\n\n<span class=\"token key atrule\">messages</span><span class=\"token punctuation\">:</span>\n    <span class=\"token key atrule\">onError</span><span class=\"token punctuation\">:</span>\n        <span class=\"token key atrule\">defaultMessage</span><span class=\"token punctuation\">:</span> Ой<span class=\"token punctuation\">,</span> кажется<span class=\"token punctuation\">,</span> что<span class=\"token punctuation\">-</span>то пошло не так.\n        <span class=\"token key atrule\">locales</span><span class=\"token punctuation\">:</span>\n            <span class=\"token key atrule\">ru</span><span class=\"token punctuation\">:</span> Ой<span class=\"token punctuation\">,</span> кажется<span class=\"token punctuation\">,</span> что<span class=\"token punctuation\">-</span>то пошло не так.</code></pre></div>","frontmatter":{"title":"","description":null},"headings":[{"value":"Конфигурационный файл"}]}},"pageContext":{"slug":"/docs/ru/common/bot_structure/configuration_file/","previous":{"fields":{"slug":"/docs/ru/common/bot_structure/about_bot_structure/"},"frontmatter":{"title":"","description":null}},"next":{"fields":{"slug":"/docs/ru/common/bot_structure/caila_import/"},"frontmatter":{"title":"","description":null}}}},
    "staticQueryHashes": ["1209419333"]}