Интент — ключевая единица NLU-сервиса, объединяющая в себе набор фраз, намерение пользователя и другую метаинформацию.
Подключение SmartApp Brain
Чтобы использовать в своем чат-боте интенты и сущности, вам нужно подключить в проект SmartApp Brain.
Для этого укажите в конфигурационном файле chatbot.yaml
параметры:
language: ru
botEngine: v2
sts:
noMatchThreshold: 0.2
caila:
noMatchThreshold: 0.2
Где:
language
— язык классификатора. Возможные значения:ru
— русский,en
— английский.noMatchThreshold
— порог срабатывания классификатора. Число в диапазоне от 0 до 1. Значение по умолчанию0.2
. Если классификатор не может отнести фразу ни к одному из классов с заданной степенью уверенности, создается событиеevent: noMatch
.
SmartApp Brain подключен во всех проектах по умолчанию.
Создание интента
Войдите в проект, на панели управления нажмите Редактор > Интенты. Вы перешли в справочник интентов для проекта.
Нажмите Создать интент. Заполните поля:
- Название — укажите название интента. Полный путь интента рассчитывается автоматически и отображается под полем ввода, он используется при обращении к интенту из сценария.
- Описание — укажите дополнительное описание или комментарий.
- Ответ — укажите стандартный ответ на интент. Вы можете обратиться к нему из сценария как
$context.intent.answer
. - Тренировочные фразы — укажите примеры тренировочных фраз для распознавания данного интента.
Вы можете также создать вложенный интент. Уровень вложенности интентов не ограничен.
Интенты формирую дерево на правой панели. Узлы дерева отсортированы в лексикографическом порядке. Для каждого узла указывается число примеров фраз в данном интенте и через символ /
число всех дочерних фраз.
Заполнение слотов для интента
Slots (слоты) — данные, которые клиент передает с запросом или в процессе дозапроса. У каждого слота есть обязательные атрибуты: Имя, Тип.
Подробнее о процессе дозапроса информации Slot filling.
Для заполнения слотов нажмите Добавить слот. Заполните поля:
- Название — название слота.
- Сущность — выберите из списка сущность, определяющую тип данных, которые попадут в слот. Вы можете использовать как системные, так и кастомные сущности.
- Обязательно — переведите переключатель в активное положение, если слот является обязательным для заполнения.
- Массив — переведите переключатель в активное положение, чтобы в слот помещались все сущности данного типа, оформленные как массив.
- Вопросы — укажите вопросы, которые будут использованы при процессе Slot filling.
Экспорт и импорт интентов
Для экспорта интентов перейдите к списку проектов > напротив проекта нажмите иконку
. В экспортированном архиве в файлеcaila_import.json
все данные проекта по работе с NLU-ядром Brain.Вы можете использовать этот архив или отдельные файлы для загрузки в новый проект.
Для этого создайте проект нажмите иконку
> Загрузить > выберите архив проекта.Также вы можете импортировать интенты на странице Интенты. Для этого сформируйте .json
файл следующего формата:
{
"classes": [
{
"path": "/PlayGames/Games", // путь к интенту
"description": "", // описание
"disabled": false, // при `false` интент активен
"phrases": [
"давай поиграем в какие-нибудь игры" // тренировочные фразы
]
},
{
"path": "/PlayGames/Games/CanYouPlay",
"description": "",
"disabled": false,
"phrases": ["ты умеешь во что-нибудь играть?", "ты знаешь какие-нибудь игры?", "ты знаешь как играть?"]
}
]
}
Вверху дерева интентов нажмите Импорт > загрузите файл.