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

Миграция проектов на CAILA


Для проектов, созданных с использованием паттернов или групп примеров, доступна миграция на NLU CAILA.

При этом для проекта будут доступны все функциональные возможности CAILA: распознавание интентов, использование системных и пользовательских сущностей, разметка слотов и слот-филлинг, CAILA API и др.

В статье мы рассматриваем алгоритм миграции проектов на CAILA:

  1. Изменения конфигурационного файла проекта.
  2. Миграция настроек NLU.
  3. Настройка правил активации.
  4. Тестирование и обновление сценария.


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

Укажите в конфигурационном файле chatbot.yaml параметры:

botEngine: v2
language: ru
 
sts:
    noMatchThreshold: 0.2
caila:
    noMatchThreshold: 0.2
  • botEngine — тип классификатора, для использования CAILA укажите v2.
  • language — укажите язык для совместимости с классификатором STS.
  • noMatchThreshold — параметр, задающий минимально необходимую похожесть фразы на один из классов. В ходе разработки NLU-сервиса было эмпирически определено, что оптимальное значение этого параметра 0.2.

Обратите внимание, что мы устанавливаем также значение noMatchThreshold для классификатора STS. Таким образом мы добиваемся обратной совместимости проекта.


Миграция настроек NLU

Большинство настроек NLU в chatbot.yaml при миграции на CAILA становятся неактивными. Некоторые настройки, вы можете определить при настройке проекта в разделе Настройки NLU.

Изменения рассмотрим на примере настроек проекта с классификатором STS:

nlp:
  morphology: myStem
  tokenizer: myStem
 
  vocabulary: common-vocabulary.json
  lengthLimit:
    enabled: true
    symbols: 400
    words: 100000
  timeLimit:
    enabled: true
    timeout: 10000
  spellcheck:
    enabled: true
    dictionary: dict.txt
    frequency: frequency.txt
    minWordLengthForEditDistance: 3
    maxWordEditDistance: 0
  speller:
    dictionary: speller.dict
 
classifier:
  enable: true
  engine: sts
  noMatchThreshold: 0.2
  parameters:
    algorithm: aligner2
  • morphology — параметр неактивен, разметка текста выполняется в CAILA. Переопределение доступно в расширенных настройках NLU.
  • tokenizer — параметр неактивен, разметка текста выполняется в CAILA. Переопределение доступно в расширенных настройках NLU.
  • vocabulary — параметр неактивен, переопределение невозможно.
  • timeLimit — параметр активен только для тегов q, e, eg. Для тега intent значение задано по умолчанию, переопределение невозможно.
    • enabled — параметр неактивен.
    • timeout — параметр неактивен.
  • spellcheck — модуль коррекции опечаток, параметр неактивен. Формат словаря несовместим с CAILA. Создайте и загрузите словарь нового формата.
  • speller — модуль коррекции опечаток нового формата, параметр неактивен. Формат словаря совместим с CAILA. Вы можете загрузить словарь при помощи CAILA API.
  • classifer — параметр активен только для тегов q, e, eg. Для тега intent значение задано по умолчанию, переопределение невозможно.
  • noMatchThreshold — параметр неактивен, вместо него используется параметр sts.noMatchThreshold.

Модуль коррекции опечаток

Встроенный глобальный модуль коррекции опечаток позволяет исправлять орфографические ошибки в запросах клиентов. Его можно комбинировать с пользовательским словарем. Таким образом, слова из доменной области будут исправлены при помощи словаря проекта, а все остальные — встроенным глобальным модулем.

Если вы ранее использовали словарь .dict, то вы его можете перенести в проект при помощи CAILA API Direct.


Токенизация и лемматизация

По умолчанию для проектов на русском языке используется токенизатор udpipe. По результатам тестов было установлено, что это лучшее решение для токенизации и лемматизации.

Если ваш проект был разработан с использованием паттернов или классификатора STS, рекомендуем использовать токенизатор morphsrus или mystem.


Дополнительные параметры конфигурации NLU

Перейдите к редактированию проекта. Здесь укажите дополнительные параметры конфигурации: язык NLU, алгоритм классификатора, часовой пояс, настройки NLU.

Подробнее о настройках NLU


Настройка правил активации

Для определения намерения клиента вы можете использовать паттерны, примеры фраз классификатора STS и классификатор CAILA cовместно. Механизм срабатывания стейтов при совместном использовании интентов, паттернов и групп примеров вы можете задать в сценарии бота.

Подробнее о механизме правил активации


Справочник примеров

Если в проекте использовался классификатор STS, то вы можете перенести справочник примеров в обновленный проект.

Для этого перейдите на страницу Интенты. Вверху дерева интентов нажмите Импорт > загрузите .json файл.


CatchAll

Обратите внимание, что при совместном использовании NLU-сервиса с паттернами и примерами фраз классификатора, не используется подобный CatchAll:

    state: CatchAll
        q!: *
        a: Не понял

Для непредусмотренных сценарием запросов пользователя используйте event: noMatch:

    state: CatchAll
        event: noMatch
        a: Вы сказали: {{ $request.query }}
        

Тестирование и обновление сценария

Для отладки сценария используйте тестовый виджет, встроенный в редактор сценариев.

При дальнейшем обновлении сценария мы рекомендуем использовать активационное правило intent, системные и кастомные сущности, слот-филлинг и другие возможности NLU-ядра CAILA.