Правила активации
Для определения намерения клиента вы можете использовать паттерны, примеры фраз и интенты
При использовании в одном сценарии паттернов, интентов и групп примеров, обработка правил активаций происходит с приоритетом по мере убывания:
- Паттерны.
- Группа примеров классификатора STS.
- Интенты.
Механизм активации правил
- Если запрос клиента сработал в стейте с паттерном, группой примеров
e!и интентом, то приоритет будет у паттерна. Сработает стейт с паттерном. - Если запрос клиента сработал в стейте с группой примеров
e!и интентом, то приоритет будет у группы примеров. Cработает стейт с группой примеров. - Если запрос клиента сработал только в стейте с интентом, отработает только он.
- В остальных случаях запрос клиента будет обработан стейтом
CatchAll.
CatchAll
Обратите внимание, что при совместном использовании NLU-сервиса с паттернами и примерами фраз классификатора, не используется подобный CatchAll:
state: CatchAll
q!: *
a: Не понялДля непредусмотренных сценарием запросов клиента используйте event: noMatch:
state: CatchAll
event: noMatch
a: Вы сказали: {{ $request.query }}Пример сценария
Рассмотрим сценарий:
theme: /
state: Pattern
q!: * паттерн *
a: Сработал паттерн
state: Example
e!: паттерн
a: Этот пример не срабатывает, потому что отрабатывает паттерн
state: Second example
e!: пример
a: Сработал пример
state:
intent!: /паттерн
a: Этот пример не срабатывает, потому что отрабатывает паттерн
state:
intent!: /пример
a: Этот пример не срабатывает, потому что отрабатывает группа примеров
state: Intent
intent!: /интент
a: Сработал интент
state: CatchAll
event: noMatch
a: Вы сказали: {{ $request.query }}При этом тренировочные фразы для интентов:
/паттерн— паттерн;/пример— пример;/интент— интент.
Запускаем тестовый виджет и проверям сценарий:
- При запросе
Паттернотрабатывает стейтPattern. - При запросе
Примеротрабатывает стейтSecond example. - При запросе
Интентотрабатывает стейтIntent. - Все непредусмотренные сценарием запросы обрабатывает стейт
CatchAll.