{
    "componentChunkName": "component---src-templates-doc-page-js",
    "path": "/docs/ru/NLU_core/activation/rules/",
    "result": {"data":{"site":{"siteMetadata":{"title":"Gatsby-doc-engine"}},"markdownRemark":{"id":"0cb45f74-9a69-5b7e-921f-dd59f7366d86","excerpt":"Правила активации?> Для определения намерения клиента вы можете использовать различные правила активации стейтов: паттерны, примеры фраз, интенты CAILA. При…","html":"<h1>Правила активации</h1>\n<hr>\n<p class='warn'>Для определения намерения клиента вы можете использовать различные правила активации стейтов: <a href=/1.11.7/docs/ru/Patterns/about_patterns  >паттерны</a>, <a href=/1.11.7/docs/ru/classificator/classificator  >примеры фраз</a>, <a href=/1.11.7/docs/ru/NLU_core/nlu_core  >интенты CAILA</a>.</p>\n<p>При совместном использовании в одном сценарии нескольких типов правил активации они срабатывают в порядке убывания приоритета:</p>\n<ol>\n<li>Паттерны.</li>\n<li>Примеры и группы примеров.</li>\n<li>Интенты.</li>\n</ol>\n<h2>Порядок активации правил</h2>\n<p>Следующая таблица иллюстрирует порядок срабатывания правил активации в различных вариантах их совместного использования:</p>\n<table>\n<thead>\n<tr>\n<th>Паттерн?</th>\n<th>Пример?</th>\n<th>Интент?</th>\n<th>Сработавшее правило</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Да</td>\n<td>Да</td>\n<td>Да</td>\n<td>Паттерн</td>\n</tr>\n<tr>\n<td>Да</td>\n<td>Да</td>\n<td>Нет</td>\n<td>Паттерн</td>\n</tr>\n<tr>\n<td>Да</td>\n<td>Нет</td>\n<td>Да</td>\n<td>Паттерн</td>\n</tr>\n<tr>\n<td>Да</td>\n<td>Нет</td>\n<td>Нет</td>\n<td>Паттерн</td>\n</tr>\n<tr>\n<td>Нет</td>\n<td>Да</td>\n<td>Да</td>\n<td>Пример</td>\n</tr>\n<tr>\n<td>Нет</td>\n<td>Да</td>\n<td>Нет</td>\n<td>Пример</td>\n</tr>\n<tr>\n<td>Нет</td>\n<td>Нет</td>\n<td>Да</td>\n<td>Интент</td>\n</tr>\n<tr>\n<td>Нет</td>\n<td>Нет</td>\n<td>Нет</td>\n<td><code class=\"language-text\">noMatch</code></td>\n</tr>\n</tbody>\n</table>\n<p class='tip'>Таким образом, если на запрос клиента сработал паттерн, то произойдет переход в стейт с паттерном, даже если пример или интент сработали бы с большим весом.</p>\n<h3>Обработка нераспознанных запросов</h3>\n<p class='tip'>В проектах с несколькими типами правил активации не используйте паттерн <code class=\"language-text\">*</code> для обработки нераспознанных запросов:</p>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\"><span class=\"token keyword\">state:</span> CatchAll\r\n    <span class=\"token storageType\">q!:</span> *\r\n    <span class=\"token variableParameter\">a:</span> Вы сказали: <span class=\"token constantCharacter\">{{$request.query}}</span></code></pre></div>\n<p>В такой стейт будут попадать все запросы, не распознанные при помощи других паттернов. При этом примеры и интенты будут игнорироваться, поскольку приоритет у паттерна будет выше.</p>\n</br>\n<p class='warn'>Для не предусмотренных сценарием запросов клиента используйте <a href=/1.11.7/docs/ru/bot_answers/events_table  >событие</a> <code class=\"language-text\">noMatch</code>:</p>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\"><span class=\"token keyword\">state:</span> CatchAll\r\n    <span class=\"token storageType\">event!:</span> noMatch\r\n    <span class=\"token variableParameter\">a:</span> Вы сказали: <span class=\"token constantCharacter\">{{$request.query}}</span></code></pre></div>\n<h2>Пример сценария</h2>\n<p>Предположим, что в CAILA заданы интенты <code class=\"language-text\">/паттерн</code>, <code class=\"language-text\">/пример</code> и <code class=\"language-text\">/интент</code>, обученные на тренировочных фразах <code class=\"language-text\">паттерн</code>, <code class=\"language-text\">пример</code> и <code class=\"language-text\">интент</code> соответственно. Рассмотрим следующий сценарий:</p>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\"><span class=\"token keyword\">theme:</span> /\r\n\r\n    <span class=\"token keyword\">state:</span> Pattern\r\n        <span class=\"token storageType\">q!:</span> * паттерн *\r\n        <span class=\"token variableParameter\">a:</span> Сработал паттерн.\r\n\r\n    <span class=\"token keyword\">state:</span> Example\r\n        <span class=\"token storageType\">e!:</span> паттерн\r\n        <span class=\"token variableParameter\">a:</span> Пример не сработает, потому что сработает паттерн выше.\r\n\r\n    <span class=\"token keyword\">state:</span> Intent\r\n        <span class=\"token storageType\">intent!:</span> /паттерн\r\n        <span class=\"token variableParameter\">a:</span> Интент также не сработает, потому что сработает паттерн.\r\n\r\n    <span class=\"token keyword\">state:</span> Example2\r\n        <span class=\"token storageType\">e!:</span> пример\r\n        <span class=\"token variableParameter\">a:</span> Сработал пример.\r\n\r\n    <span class=\"token keyword\">state:</span> Intent2\r\n        <span class=\"token storageType\">intent!:</span> /пример\r\n        <span class=\"token variableParameter\">a:</span> Интент не сработает, потому что сработает пример.\r\n\r\n    <span class=\"token keyword\">state:</span> Intent3\r\n        <span class=\"token storageType\">intent!:</span> /интент\r\n        <span class=\"token variableParameter\">a:</span> Сработал интент.\r\n\r\n    <span class=\"token keyword\">state:</span> CatchAll\r\n        <span class=\"token storageType\">event!:</span> noMatch\r\n        <span class=\"token variableParameter\">a:</span> Вы сказали: <span class=\"token constantCharacter\">{{$request.query}}</span></code></pre></div>\n<p>Запустим тестовый виджет и проверим, в какие стейты попадут следующие запросы:</p>\n<table>\n<thead>\n<tr>\n<th>Запрос</th>\n<th>Стейт</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code class=\"language-text\">паттерн</code></td>\n<td><code class=\"language-text\">/Pattern</code></td>\n</tr>\n<tr>\n<td><code class=\"language-text\">пример</code></td>\n<td><code class=\"language-text\">/Example2</code></td>\n</tr>\n<tr>\n<td><code class=\"language-text\">интент</code></td>\n<td><code class=\"language-text\">/Intent3</code></td>\n</tr>\n<tr>\n<td>Другие запросы</td>\n<td><code class=\"language-text\">/CatchAll</code></td>\n</tr>\n</tbody>\n</table>\n<h2>Продвинутые возможности</h2>\n<p class='warn'>Если стандартный приоритет правил активации не подходит для вашего сценария, воспользуйтесь следующими возможностями, чтобы определить собственную логику обработки результатов классификации:</p>\n<ul>\n<li>Вы можете задать механизм выбора нужного правила при одновременном срабатывании правил разных типов на этапе классификации запроса при помощи обработчика <a href=\"/1.11.7/docs/ru/NLU_core/activation/selectNLUResult\"><code class=\"language-text\">selectNLUResult</code></a>.</li>\n<li>Если вам необходимо иметь доступ к результатам классификации из любого места сценария, воспользуйтесь <a href=\"/1.11.7/docs/ru/NLU_core/activation/nBest\"><code class=\"language-text\">$context.nBest</code></a>.</li>\n</ul>","frontmatter":{"title":"","description":null},"headings":[{"value":"Правила активации"}]}},"pageContext":{"slug":"/docs/ru/NLU_core/activation/rules/","previous":{"fields":{"slug":"/docs/ru/NLU_core/activation/selectNLUResult/"},"frontmatter":{"title":"","description":null}},"next":{"fields":{"slug":"/docs/ru/NLU_core/activation/nBest/"},"frontmatter":{"title":"","description":null}}}},
    "staticQueryHashes": ["1209419333"]}