Определение интента


Для определения намерения клиента вы можете использовать паттерны, примеры фраз классификатора STS и классификатор Brain

При использовании в одном сценарии паттернов, интентов и групп примеров, обработка правил активаций происходит с приоритетом по мере убывания:

  1. Паттерны.
  2. Группа примеров классификатора STS.
  3. Интенты.

Механизм активации правил

  1. Если запрос пользователя сработал в стейте с паттерном, группой примеров e! и интентом, то приоритет будет у паттерна. Сработает стейт с паттерном.
  2. Если запрос пользователя сработал в стейте с группой примеров e! и интентом, то приоритет будет у группы примеров. Cработает стейт с группой примеров.
  3. Если запрос пользователя сработал только в стейте с интентом, отработает только он.
  4. В остальных случаях запрос пользователя будет обработан стейтом 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 }}

При этом тренировочные фразы для интентов:

  • /паттерн — паттерн;
  • /пример — пример;
  • /интент — интент.

Запускаем тестовый виджет и проверям сценарий:

  1. При запросе Паттерн отрабатывает стейт Pattern.
  2. При запросе Пример отрабатывает стейт Second example.
  3. При запросе Интент отрабатывает стейт Intent.
  4. Все непредусмотренные сценарием запросы обрабатывает стейт CatchAll.

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней