{
    "componentChunkName": "component---src-templates-doc-page-js",
    "path": "/docs/ru/JAICP_DSL/about_dsl/",
    "result": {"data":{"site":{"siteMetadata":{"title":"Gatsby-doc-engine"}},"markdownRemark":{"id":"d9813a94-039d-56ef-8856-51db3ac01b49","excerpt":"JAICP DSL?> JAICP DSL  — язык, предназначенный для разработки логики работы чатбота. JAICP DSL предоставляет удобный формат для описания конечного автомата, по…","html":"<h1>JAICP DSL</h1>\n<hr>\n<p class='warn'><strong>JAICP DSL</strong>  — язык, предназначенный для разработки логики работы чатбота. JAICP DSL предоставляет удобный формат для описания конечного автомата, по которому работает чатбот.</p>\n<p>Файл сценария  — древовидная структура. Степень вложенности управляется отступами, подобно языкам <code class=\"language-text\">python</code> и <code class=\"language-text\">yaml</code>.</p>\n</br>\n<p>В JAICP DSL используются языковые конструкции:</p>\n<ul>\n<li>Tеги NLU — описывают намерения пользователя.</li>\n<li>Декларативные теги — описывают структуру чатбота, задают зависимости между файлами, правила перехода между состояниями.</li>\n<li>Теги реакций — выполняются при попадании диалога в определенное состояние.</li>\n</ul>\n</br>\n<h3>Локальные и глобальные теги</h3>\n<p>В DSL мы выделяем глобальные и локальные теги. Глобальные теги содержат <code class=\"language-text\">!</code> в названии, например:</p>\n<ul>\n<li><code class=\"language-text\">intent</code> — локальный тег.</li>\n<li><code class=\"language-text\">intent!</code> — глобальный тег.</li>\n</ul>\n<p class='warn'>Локальный тег активен только в контексте диалога, переход в стейт возможен из ближайшего родительского или из дочерних стейтов. Глобальный тег позволяет осуществить переход диалога в данный стейт из любого другого стейта.</p>\n</br>\n<h3>Список тегов</h3>\n</br>\n<table>\n<thead>\n<tr>\n<th>Тег</th>\n<th>Описание</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/NLU_core/intent\"><code class=\"language-text\">intent</code></a></td>\n<td>После тега записывается путь к интенту. Интент — ключевая единица NLU-сервиса, объединяющая в себе набор фраз, намерение пользователя и другую метаинформацию.</td>\n</tr>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/JAICP_DSL/tags/declarative_tags/q\"><code class=\"language-text\">q</code></a></td>\n<td>После тега записывается <a href=\"/1.10.3/docs/ru/Patterns/about_patterns\">паттерн</a>, описывающий ключевые слова и выражения пользователя.</td>\n</tr>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/classificator/e\"><code class=\"language-text\">e</code></a></td>\n<td>Предполагает использование единичного примера, эталона для сравнения с запросом пользователя. Один тег — одна реплика.</td>\n</tr>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/classificator/eg\"><code class=\"language-text\">eg</code></a></td>\n<td>В случае, когда примеров для сравнения много, использовать тег <code class=\"language-text\">e</code> нецелесообразно. В таких случаях используется <code class=\"language-text\">eg</code> и задается необходимое количество примеров в отдельном файле справочнике.</td>\n</tr>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/JAICP_DSL/tags/declarative_tags/event\"><code class=\"language-text\">event</code></a></td>\n<td>Реакция на событие, происходящее в канале, аккаунте или проекте.</td>\n</tr>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/JAICP_DSL/tags/declarative_tags/init\"><code class=\"language-text\">init</code></a></td>\n<td>Тег позволяет задать скрипт, который будет выполнен при загрузке сценария один раз. Скрипт может содержать код, устанавливающий какие-либо обработчики, создающий временные переменные, выполняющий другую инициализацию.</td>\n</tr>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/JAICP_DSL/tags/declarative_tags/patterns\"><code class=\"language-text\">patterns</code></a></td>\n<td>После тега объявляются именованные паттерны в <code class=\"language-text\">.sc</code>-файле, они доступны для использования во всех файлах проекта.</td>\n</tr>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/JAICP_DSL/tags/declarative_tags/require\"><code class=\"language-text\">require</code></a></td>\n<td>Тег служит для загрузки зависимых файлов и, по сути, является альтернативой указанию всех зависимых файлов в <code class=\"language-text\">chatbot.yaml</code>.</td>\n</tr>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/JAICP_DSL/tags/declarative_tags/state\"><code class=\"language-text\">state</code></a></td>\n<td>Cостояние чатбота. Стейты могут иметь вложенную структуру.</td>\n</tr>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/JAICP_DSL/tags/declarative_tags/theme\"><code class=\"language-text\">theme</code></a></td>\n<td>Точка входа чатбота, в это состояние переходит система при запуске бота.</td>\n</tr>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/JAICP_DSL/tags/reaction_tags/a\"><code class=\"language-text\">a</code></a></td>\n<td>Передает текст ответа чатбота.</td>\n</tr>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/JAICP_DSL/tags/reaction_tags/buttons\"><code class=\"language-text\">buttons</code></a></td>\n<td>Кнопки. Осуществляют переходы между стейтам сценария.</td>\n</tr>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/JAICP_DSL/tags/reaction_tags/go\"><code class=\"language-text\">go</code></a></td>\n<td>Тег выполняет отложенный переход, при этом реакции указанного стейта не выполняются, но обработка следующей фразы происходит в контексте указанного стейта.</td>\n</tr>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/JAICP_DSL/tags/reaction_tags/go!\"><code class=\"language-text\">go!</code></a></td>\n<td>Тег обеспечивает немедленный переход, при этом выполняются все реакции указанного стейта.</td>\n</tr>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/JAICP_DSL/tags/reaction_tags/if_elseif_else\"><code class=\"language-text\">if/else/elseif</code></a></td>\n<td>Теги для записи простых условий, вывода различных ответов в зависимости от условий, перехода в другие состояния по условиям.</td>\n</tr>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/JAICP_DSL/tags/reaction_tags/inline_buttons\"><code class=\"language-text\">InlineButtons</code></a></td>\n<td>Inline-кнопки. При клике на inline-кнопку могут передаваться данные или URL (<code class=\"language-text\">callback_data</code> или <code class=\"language-text\">URL</code>, соответственно). Также inline-кнопки отображаются не под диалогом, а внутри него в виде реплик чатбота.</td>\n</tr>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/JAICP_DSL/tags/reaction_tags/newSession\"><code class=\"language-text\">newSession</code></a></td>\n<td>Тег определяет запуск новой сессии.</td>\n</tr>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/JAICP_DSL/tags/reaction_tags/random\"><code class=\"language-text\">random</code></a></td>\n<td>В результате выполнения будет выполнена только одна из вложенных реакций.</td>\n</tr>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/JAICP_DSL/tags/reaction_tags/script\"><code class=\"language-text\">script</code></a></td>\n<td>Скрипт реакции позволяет выполнять функции, логику обработки запросов, вызовы внешних систем, работу с памятью и другое.</td>\n</tr>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/JAICP_DSL/tags/reaction_tags/audio\"><code class=\"language-text\">audio</code></a></td>\n<td>Тег позволяет использовать аудиозаписи в ответах бота.</td>\n</tr>\n<tr>\n<td><a href=\"/1.10.3/docs/ru/JAICP_DSL/tags/reaction_tags/image\"><code class=\"language-text\">image</code></a></td>\n<td>Вывод изображения.</td>\n</tr>\n</tbody>\n</table>","frontmatter":{"title":"","description":null},"headings":[{"value":"JAICP DSL"}]}},"pageContext":{"slug":"/docs/ru/JAICP_DSL/about_dsl/","previous":{"fields":{"slug":"/docs/ru/Content_testing/test_widget/"},"frontmatter":{"title":"","description":null}},"next":{"fields":{"slug":"/docs/ru/Content_testing/caila_script_test/"},"frontmatter":{"title":"","description":null}}}},
    "staticQueryHashes": ["1209419333"]}