Интенты
Интент — ключевая единица NLU-сервиса, представляющая намерение, которое может выразить клиент в запросе. Интент объединяет в себе:
- Метаинформацию о целевом намерении.
- Набор тренировочных фраз и/или паттернов для обучения классификатора распознавать намерение.
- Данные о слотах — сущностях, уточняющих намерение.
Создание интента
Войдите в проект, на панели управления нажмите CAILA > Интенты. Вы перешли в справочник интентов для проекта.
Нажмите Создать интент и заполните информацию об интенте. Обязательно для заполнения только поле Название.
| Поле | Описание | Примечание |
|---|---|---|
| Название | Название интента. | Под полем ввода названия указан путь к интенту в общем дереве интентов. Путь рассчитывается автоматически и используется при обращении к интенту из сценария. |
| Комментарий | Дополнительное описание к интенту. | |
| Ответ | Стандартный ответ на интент. | Вы можете обратиться к тексту ответа из сценария через $context.intent.answer. |
Переключатель рядом с полем ввода названия позволяет включить или выключить интент. Выключенный интент не будет использован при формировании гипотез классификатора.
Тренировочные фразы
В разделе Тренировочные фразы вы можете задать примеры тренировочных фраз и/или паттернов, которые будут использованы при обучении классификатора распознавать намерение клиента.
Чтобы добавить новую тренировочную фразу в обучающую выборку, введите текст фразы в поле ввода и нажмите Enter. Далее вы можете искать необходимые фразы, нажав на иконку . При помощи флажков слева можно выбрать и удалить нужные фразы из выборки.
Не забудьте нажать на верхней панели, чтобы обучить классификатор на новом наборе фраз.
Паттерны
По умолчанию для обучения классификатора используются примеры фраз,
однако вы также можете задавать паттерны для непосредственного описания шаблонов фраз, подходящих под интент.
Это альтернативный подход к использованию паттернов наряду с тегами q и q!.
Чтобы переключиться на режим ввода паттернов или переделать фразу в паттерн, нажмите . Для переключения обратно на фразы нажмите .
Синтаксис паттернов в интентах поддерживает все базовые и большинство расширенных элементов паттернов, за небольшим числом исключений:
- Не поддерживается паттерн
$morphи маппинги —(один:1/два:2). - Вместо именованных паттернов
$patternи сущностей$entity<>используйте сущности CAILA.
Названия сущностей CAILA начинаются с символа @.
Групповое добавление фраз
Вместо того чтобы добавлять тренировочные фразы по одной, вы можете сформировать обучающую выборку в удобном для вас текстовом редакторе, после чего вставить всю выборку в форму ввода.
Каждая строка из вставленного фрагмента будет помещена в отдельную тренировочную фразу.
Слоты
Слоты — сущности, которые клиент упоминает в запросе либо в процессе уточнения информации, необходимой для выполнения запроса. Этот процесс называется слот-филлинг.
Нажмите Добавить слот и заполните параметры:
- Название — имя слота.
- Сущность — системная либо пользовательская сущность, задающая тип данных, которые попадут в слот.
При необходимости настройте дополнительные параметры:
- Обязательно — переведите переключатель в активное положение, если слот обязателен для заполнения, чтобы обработать интент.
- Массив — переведите переключатель в активное положение, чтобы в слот помещались все сущности данного типа, оформленные как массив.
- Вопросы — укажите вопросы, которые будут задаваться в процессе уточнения незаполненных слотов.
Вложенные интенты
Вы можете создавать вложенные интенты.
Для этого нажмите иконку
напротив названия интента > Создать вложенный интент.
Уровень вложенности интентов не ограничен.
Интенты формируют дерево на левой панели.
Узлы дерева отсортированы по алфавиту.
Для каждого узла через символ / указано число фраз в данном интенте и во всех вложенных.
Используйте вложенность, чтобы организовать интенты в иерархическую структуру и сгруппировать вместе похожие интенты. Это поможет не запутаться при навигации и редактировании.
Как использовать интенты в сценарии
Заполненные интенты можно использовать в сценарии в качестве способа активации стейтов.
Для этого воспользуйтесь тегами intent или intent!.