Блок Интенты


Блок Интенты (от англ. intent — намерение) определяет, чего хочет клиент, и направляет его по нужной ветке сценария.

Это самый важный блок в Aimylogic. Он позволяет боту понимать естественный язык при общении с клиентом, а также дает боту возможность следовать по разным веткам сценария в зависимости от ответа клиента.

Интенты работают следующим образом:

  1. Сначала вы добавляете в блок Интенты слова, примеры или шаблоны фраз, которые могут написать или произнести клиенты.
  2. После этого вы объясняете боту, что делать, если клиент напишет:
    • заданное слово, фразу, синоним слова или похожую фразу;
    • фразу, построенную по определенному шаблону.
  3. Когда клиент отправляет какую-либо фразу на участке сценария с интентом, бот проверяет, подходит ли сказанная фраза под один из добавленных интентов:
    • Если да, бот переходит на экран, с которым этот интент связан.
    • Если нет, бот идет по ветке Любая другая фраза.
  4. При необходимости бот сохраняет ответ клиента в отдельную переменную.

Как добавить интент?

Создайте свой интент

Вы можете создать собственный интент со списком своих примеров и шаблонов фраз клиента.

  1. В палитре блоков выберите Сделать свой интент.

    intent 1

  2. Перечислите шаблоны и примеры фраз, которые ожидаете получить от клиента. Нажмите Сохранить.

    intent 2

  3. Свяжите интент с нужным экраном. Если клиент скажет или напишет что-то подходящее под этот интент, бот переведет клиента на экран, с которым создана связь.

    intent 3

Выберите готовый интент

Для вашего удобства мы создали ряд готовых интентов. Они охватывают самые распространенные паттерны поведения клиента, которые могут возникнуть в диалоге — приветствие, согласие, отправка различных данных и многое другое.

Вам не нужно дополнительно описывать готовые интенты примерами и шаблонами фраз — они уже содержатся в интенте.

Часть готовых интентов находится в секции Реплики пользователя палитры блоков. Чтобы увидеть весь перечень готовых интентов, откройте подменю Еще блоки.

intent 4

Также вы можете добавить один из этих интентов при редактировании блока Интенты, нажав Выбрать готовый интент.

Сделайте интент доступным из любой точки сценария

Обычно бот работает по линейному сценарию — то есть выполняет соединенные связями экраны по порядку.

Однако можно сделать так, чтобы бот распознавал и принимал какую-либо информацию от клиента в любой момент диалога.

Для этого активируйте опцию Сделать доступным из любой точки сценария при редактировании блока.

intent 5

Теперь бот будет реагировать на этот интент в любой момент диалога.

Выберите реакцию для других фраз

Вариант Любая другая фраза срабатывает, когда клиент вводит что-то, что не подходит ни под один из шаблонов или примеров фраз.

Если вы не свяжете вариант Любая другая фраза ни с одним экраном, то бот будет отвечать Извините, непонятно на любую другую фразу.

Мы рекомендуем всегда связывать вариант Любая другая фраза с каким-либо экраном.

Вы также можете связать этот вариант с тем же самым экраном, на котором находится интент — тогда бот будет оставаться на этом экране до тех пор, пока клиент не введет корректную фразу.

intent 6

Примеры фраз

Чтобы настроить содержание интента, наведите курсор на блок и нажмите  . Откроется список примеров, из которых состоит интент. Если вы добавили готовый интент, он будет указан первым в блоке.

Каждый блок с примерами должен содержать как минимум один вариант фразы, который будет помогать боту распознавать ответ клиента.

Вы можете указать для каждого интента любое количество примеров фраз. Чем больше разнообразных фраз вы укажете, тем точнее бот будет понимать клиента.

Благодаря алгоритмам машинного обучения бот распознает синонимы и словоформы слов, а также извлечет нужные данные из фразы.

Например, вам достаточно написать привет в качестве примера фразы, чтобы бот распознал приветствие в сообщении «Здравствуй, дорогой друг».

Шаблоны

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

В отличие от примеров фраз, шаблоны не расширяются синонимами.

Указывайте шаблоны в соответствии с синтаксисом шаблонов, который мы разработали для обработки запросов на естественном языке.

Переключение между примером и шаблоном фразы

По умолчанию, когда вы переходите в редактирование блока Интенты и начинаете добавлять строки, они добавляются как примеры фраз, а не как шаблоны. Об этом свидетельствует иконка    слева от каждой фразы.

Чтобы сделать фразу шаблоном, нажмите на иконку    напротив каждой фразы. Она изменится на иконку   .

На одном экране можно добавлять примеры фраз и шаблоны одновременно.

Сохранение ответа клиента

Каждая реплика клиента автоматически сохраняется в системную переменную $queryText, которую затем можно использовать на следующих экранах сценария.

Реплика хранится в переменной $queryText до тех пор, пока не будет выполнен новый запрос или не сработает другой интент.

Чтобы сохранить реплику до конца сценария, создайте отдельную переменную и присвойте ей значение переменной $queryText до выполнения нового запроса в сценарии.

Использование сущностей для записи выбора клиента в переменную

Вы можете использовать сущности в интентах, чтобы принимать и записывать выбор клиента.

Для примера создайте справочник $fruit, поместите туда сущности яблоко и груша, добавьте несколько синонимов для каждой сущности.

intent 8

Добавьте в сценарий экран с текстом Выберите фрукт.

На этот же экран добавьте блок Интенты и укажите в нем выражение:

$fruit::fruitchoice

Этот интент будет принимать от клиента синонимы из справочника $fruit и записывать сущность, к которой относится тот или иной синоним, в переменную $fruitchoice.

Записанную сущность можно будет вывести в сценарии:

intent 9

intent 10