Для оптимизации работы бота, упрощения работы, и во избежание проблем с редактором при работе с огромными сценариями, можно разбить один сценарий на модули – отдельные сценарии.
Модуль – это отдельный сценарий, переход к которому осуществляется с помощью блока результата. Все заданные пользователем переменные автоматически переносятся в следующий модуль при переходе.
Пример перехода в модуль
Пример стартового сценария:
В данном фрагменте происходит сохранение имени клиента в переменную {name}, а затем производится переход на нужный модуль после следующего вопроса с помощью блоков результата.
Пример модуля:
Переменная {name} в данном модуле будет иметь значение, полученное до перехода.
Параметры блока для перехода
Для перехода в следующий модуль необходимо использовать блок результата с типом действия Перевод на оператора, и выбрать действие при переадресации Другой сценарий, после чего выбрать в выпадающем меню сценарий, в который необходимо совершить переход.
Таким образом можно совершить переход между сценариями.
Применение модульной схемы
Эта система может быть эффективно использована для упрощения работы с большими сценариями. Чтобы эффективно разделить сценарий на модули, рекомендуется логически разбить диалог на логические части. Разберем разбиение на модули на примере реального кейса – бота для РЖД:
- Модуль с открытым вопросом. Это модуль, содержащий основной блок вопроса, с помощью которого уточняется тематика вопроса клиента.
- Модуль, содержащий тематические вопросы. Позволяет конкретизировать вопрос клиента.
- Модуль ответа. Позволяет собрать необходимую для точного ответа информацию при помощи уточняющих вопросов, после чего дает ответ клиенту, и возвращает диалог в модуль открытого вопроса.
Для каждого вопроса выделены отдельные модули, и в каждом модуле используется отдельный агент NLU для оптимизации скорости и точности распознавания ответа.
При использовании нескольких агентов NLU в одном сценарии может наблюдаться значительное снижение в скорости ответа на вопросы с интеллектуальным принятием решения. При использовании двух и более агентов бот анализирует ответ пользователя каждым агентом поочередно, в связи с чем увеличивается задержка ответа бота.