{
    "componentChunkName": "component---src-templates-doc-page-js",
    "path": "/docs/ru/NLU_core/project_migration/",
    "result": {"data":{"site":{"siteMetadata":{"title":"Gatsby-doc-engine"}},"markdownRemark":{"id":"42b4002a-5022-59fe-ab82-869a9991e485","excerpt":"Миграция проектов на CAILA?> Для проектов, созданных с использованием паттернов или групп примеров, доступна миграция на NLU CAILA. При этом для проекта будут…","html":"<h1>Миграция проектов на CAILA</h1>\n<hr>\n<p class='warn'>Для проектов, созданных с использованием <a href=/1.10.3/docs/ru/Patterns/about_patterns  >паттернов</a> или <a href=/1.10.3/docs/ru/classificator/classificator  >групп примеров</a>, доступна миграция на NLU CAILA.</p>\n<p>При этом для проекта будут доступны все функциональные возможности CAILA: распознавание интентов, использование системных и пользовательских сущностей, разметка слотов и слот-филлинг, CAILA API и др.</p>\n<p>В статье мы рассматриваем алгоритм миграции проектов на CAILA:</p>\n<ol>\n<li><a href=\"#%D0%9A%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9-%D1%84%D0%B0%D0%B9%D0%BB\">Изменения конфигурационного файла проекта</a>.</li>\n<li><a href=\"#%D0%9C%D0%B8%D0%B3%D1%80%D0%B0%D1%86%D0%B8%D1%8F-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BA-NLU\">Миграция настроек NLU</a>.</li>\n<li><a href=\"#%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB-%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%B0%D1%86%D0%B8%D0%B8\">Настройка правил активации</a>.</li>\n<li><a href=\"#%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B8-%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%B8%D1%8F\">Тестирование и обновление сценария</a>.</li>\n</ol>\n<hr>\n</br>\n<h3>Конфигурационный файл</h3>\n<p>Укажите в конфигурационном файле <code class=\"language-text\">chatbot.yaml</code> параметры:</p>\n<div class=\"gatsby-highlight\" data-language=\"yml\"><pre class=\"language-yml\"><code class=\"language-yml\"><span class=\"token key atrule\">botEngine</span><span class=\"token punctuation\">:</span> v2\r\n<span class=\"token key atrule\">language</span><span class=\"token punctuation\">:</span> ru\r\n \r\n<span class=\"token key atrule\">sts</span><span class=\"token punctuation\">:</span>\r\n    <span class=\"token key atrule\">noMatchThreshold</span><span class=\"token punctuation\">:</span> <span class=\"token number\">0.2</span>\r\n<span class=\"token key atrule\">caila</span><span class=\"token punctuation\">:</span>\r\n    <span class=\"token key atrule\">noMatchThreshold</span><span class=\"token punctuation\">:</span> <span class=\"token number\">0.2</span></code></pre></div>\n<ul>\n<li><code class=\"language-text\">botEngine</code> — тип классификатора, для использования CAILA укажите <code class=\"language-text\">v2</code>.</li>\n<li><code class=\"language-text\">language</code> — укажите язык для совместимости с классификатором STS.</li>\n<li><code class=\"language-text\">noMatchThreshold</code> —  параметр, задающий минимально необходимую похожесть фразы на один из классов. В ходе разработки NLU-сервиса было эмпирически определено, что оптимальное значение этого параметра 0.2.</li>\n</ul>\n<p class='tip'>Обратите внимание, что мы устанавливаем также значение <code class=\"language-text\">noMatchThreshold</code> для классификатора STS. Таким образом мы добиваемся обратной совместимости проекта.</p>\n</br>\n<h3>Миграция настроек NLU</h3>\n<p>Большинство настроек NLU в <code class=\"language-text\">chatbot.yaml</code> при миграции на CAILA становятся неактивными. Некоторые настройки, вы можете <a href=\"/1.10.3/docs/ru/platform_ux/nlu_core_caila/project_setting\">определить при настройке проекта в разделе <em>Настройки NLU</em></a>.</p>\n<p>Изменения рассмотрим на примере <a href=\"/1.10.3/docs/ru/classificator/connection_classificator\">настроек проекта с классификатором STS</a>:</p>\n<div class=\"gatsby-highlight\" data-language=\"yml\"><pre class=\"language-yml\"><code class=\"language-yml\"><span class=\"token key atrule\">nlp</span><span class=\"token punctuation\">:</span>\r\n  <span class=\"token key atrule\">morphology</span><span class=\"token punctuation\">:</span> myStem\r\n  <span class=\"token key atrule\">tokenizer</span><span class=\"token punctuation\">:</span> myStem\r\n \r\n  <span class=\"token key atrule\">vocabulary</span><span class=\"token punctuation\">:</span> common<span class=\"token punctuation\">-</span>vocabulary.json\r\n  <span class=\"token key atrule\">lengthLimit</span><span class=\"token punctuation\">:</span>\r\n    <span class=\"token key atrule\">enabled</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\r\n    <span class=\"token key atrule\">symbols</span><span class=\"token punctuation\">:</span> <span class=\"token number\">400</span>\r\n    <span class=\"token key atrule\">words</span><span class=\"token punctuation\">:</span> <span class=\"token number\">100000</span>\r\n  <span class=\"token key atrule\">timeLimit</span><span class=\"token punctuation\">:</span>\r\n    <span class=\"token key atrule\">enabled</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\r\n    <span class=\"token key atrule\">timeout</span><span class=\"token punctuation\">:</span> <span class=\"token number\">10000</span>\r\n  <span class=\"token key atrule\">spellcheck</span><span class=\"token punctuation\">:</span>\r\n    <span class=\"token key atrule\">enabled</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\r\n    <span class=\"token key atrule\">dictionary</span><span class=\"token punctuation\">:</span> dict.txt\r\n    <span class=\"token key atrule\">frequency</span><span class=\"token punctuation\">:</span> frequency.txt\r\n    <span class=\"token key atrule\">minWordLengthForEditDistance</span><span class=\"token punctuation\">:</span> <span class=\"token number\">3</span>\r\n    <span class=\"token key atrule\">maxWordEditDistance</span><span class=\"token punctuation\">:</span> <span class=\"token number\">0</span>\r\n  <span class=\"token key atrule\">speller</span><span class=\"token punctuation\">:</span>\r\n    <span class=\"token key atrule\">dictionary</span><span class=\"token punctuation\">:</span> speller.dict\r\n \r\n<span class=\"token key atrule\">classifier</span><span class=\"token punctuation\">:</span>\r\n  <span class=\"token key atrule\">enable</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span>\r\n  <span class=\"token key atrule\">engine</span><span class=\"token punctuation\">:</span> sts\r\n  <span class=\"token key atrule\">noMatchThreshold</span><span class=\"token punctuation\">:</span> <span class=\"token number\">0.2</span>\r\n  <span class=\"token key atrule\">parameters</span><span class=\"token punctuation\">:</span>\r\n    <span class=\"token key atrule\">algorithm</span><span class=\"token punctuation\">:</span> aligner2</code></pre></div>\n<ul>\n<li><code class=\"language-text\">morphology</code> — параметр неактивен, разметка текста выполняется в CAILA. Переопределение доступно в расширенных настройках NLU.</li>\n<li><code class=\"language-text\">tokenizer</code> — параметр неактивен, разметка текста выполняется в CAILA. Переопределение доступно в расширенных настройках NLU.</li>\n<li><code class=\"language-text\">vocabulary</code> — параметр неактивен, переопределение невозможно.</li>\n<li><code class=\"language-text\">timeLimit</code> — параметр активен только для тегов <code class=\"language-text\">q</code>, <code class=\"language-text\">e</code>, <code class=\"language-text\">eg</code>. Для тега <code class=\"language-text\">intent</code> значение задано по умолчанию, переопределение невозможно.\n<ul>\n<li><code class=\"language-text\">enabled</code> — параметр неактивен.</li>\n<li><code class=\"language-text\">timeout</code> — параметр неактивен.</li>\n</ul>\n</li>\n<li><code class=\"language-text\">spellcheck</code> — модуль коррекции опечаток, параметр неактивен. Формат словаря несовместим с CAILA. <a href=\"/1.10.3/docs/ru/platform_ux/nlu_core_caila/spellcheck\">Создайте и загрузите словарь нового формата</a>.</li>\n<li><code class=\"language-text\">speller</code> — модуль коррекции опечаток нового формата, параметр неактивен. Формат словаря совместим с CAILA. <a href=\"/1.10.3/docs/ru/platform_ux/nlu_core_caila/spellcheck\">Вы можете загрузить словарь при помощи CAILA API</a>.</li>\n<li><code class=\"language-text\">classifer</code> — параметр активен только для тегов <code class=\"language-text\">q</code>, <code class=\"language-text\">e</code>, <code class=\"language-text\">eg</code>. Для тега <code class=\"language-text\">intent</code> значение задано по умолчанию, переопределение невозможно.</li>\n<li><code class=\"language-text\">noMatchThreshold</code> — параметр неактивен, вместо него используется параметр <code class=\"language-text\">sts.noMatchThreshold</code>.</li>\n</ul>\n</br>\n<h5>Модуль коррекции опечаток</h5>\n<p>Встроенный глобальный модуль коррекции опечаток позволяет исправлять орфографические ошибки в запросах клиентов. Его можно комбинировать с пользовательским словарем. Таким образом, слова из доменной области будут исправлены при помощи словаря проекта, а все остальные — встроенным глобальным модулем.</p>\n<p>Если вы ранее использовали словарь <code class=\"language-text\">.dict</code>, то вы его можете <a href=\"/1.10.3/docs/ru/platform_ux/nlu_core_caila/spellcheck\">перенести в проект при помощи CAILA API Direct</a>.</p>\n</br>\n<h5>Токенизация и лемматизация</h5>\n<p><a href=\"/1.10.3/docs/ru/NLU_core/advanced_classifer_settings\">По умолчанию для проектов на русском языке используется токенизатор <code class=\"language-text\">udpipe</code></a>. По результатам тестов было установлено, что это лучшее решение для токенизации и лемматизации.</p>\n<p>Если ваш проект был разработан с использованием паттернов или классификатора STS, рекомендуем <a href=\"/1.10.3/docs/ru/NLU_core/advanced_classifer_settings\">использовать токенизатор <code class=\"language-text\">morphsrus</code> или <code class=\"language-text\">mystem</code></a>.</p>\n</br>\n<h5>Дополнительные параметры конфигурации NLU</h5>\n<p><a href=\"/1.10.3/docs/ru/platform_ux/nlu_core_caila/project_setting\">Перейдите к редактированию проекта</a>. Здесь укажите дополнительные параметры конфигурации: язык NLU, алгоритм классификатора, часовой пояс, настройки NLU.</p>\n<p class='warn'><a href=/1.10.3/docs/ru/NLU_core/advanced_classifer_settings  >Подробнее о настройках NLU</a></p>\n</br>\n<h3>Настройка правил активации</h3>\n<p>Для определения намерения клиента вы можете использовать паттерны, примеры фраз классификатора STS и классификатор CAILA cовместно. <a href=\"/1.10.3/docs/ru/NLU_core/rule_activation\">Механизм срабатывания стейтов при совместном использовании интентов, паттернов и групп примеров вы можете задать в сценарии бота</a>.</p>\n<p class='warn'><a href=/1.10.3/docs/ru/NLU_core/intent_detection  >Подробнее о механизме правил активации</a></p>\n</br>\n<h5>Справочник примеров</h5>\n<p>Если в проекте использовался классификатор STS, то вы можете перенести <a href=\"/1.10.3/docs/ru/classificator/work_with_classificator\">справочник примеров</a> в обновленный проект.</p>\n<p><a href=\"/1.10.3/docs/ru/platform_ux/nlu_core_caila/intents\">Для этого перейдите на страницу <em>Интенты</em></a>. Вверху дерева интентов нажмите Импорт > загрузите <code class=\"language-text\">.json</code> файл.</p>\n</br>\n<h5>CatchAll</h5>\n<p>Обратите внимание, что при совместном использовании NLU-сервиса с паттернами и примерами фраз классификатора, не используется подобный <code class=\"language-text\">CatchAll</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> Не понял</code></pre></div>\n<p>Для непредусмотренных сценарием запросов пользователя используйте <code class=\"language-text\">event: 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>\r\n        </code></pre></div>\n</br>\n<h3>Тестирование и обновление сценария</h3>\n<p>Для отладки сценария используйте <a href=\"/1.10.3/docs/ru/Content_testing/test_widget\">тестовый виджет</a>, встроенный в редактор сценариев.</p>\n<p class='warn'>При дальнейшем обновлении сценария мы рекомендуем использовать активационное правило <code class=\"language-text\">intent</code>, системные и кастомные сущности, слот-филлинг и <a href=/1.10.3/docs/ru/platform_ux/nlu_core_caila/nlu_core_caila  >другие возможности NLU-ядра CAILA</a>.</p>","frontmatter":{"title":"","description":null},"headings":[{"value":"Миграция проектов на CAILA"}]}},"pageContext":{"slug":"/docs/ru/NLU_core/project_migration/","previous":{"fields":{"slug":"/docs/ru/NLU_core/rule_activation/"},"frontmatter":{"title":"","description":null}},"next":{"fields":{"slug":"/docs/ru/NLU_core/nlu_core/"},"frontmatter":{"title":"","description":null}}}},
    "staticQueryHashes": ["1209419333"]}