Размер шрифта
-
+

Машинное обучение и Искусственный Интеллект - стр. 27

Диалог – это дерево узлов, и каждый узел обычно обрабатывает один конкретный сценарий.

Например, здесь у нас есть три узла.

Первый узел – это Welcome, который обрабатывает приглашение чатбота.

Другими словами, наше приветствие при первом появлении пользователя.

Затем у нас есть узел Greetings для ответа на приветствие пользователя.

И, наконец, у нас есть специальный резервный узел, который будет уведомлять пользователя о том, что чатбот не совсем уверен в том, что спрашивает пользователь.

Welcome и Anything else – это два узла по умолчанию, созданные для вас при первом создании диалога для вашего чат-бота.

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

Каждому такому узлу дается имя.

Далее у нас есть условие, которое определяет, когда узел должен быть запущен.

В этом примере, узел будет запущен, если в пользовательском вводе обнаружено намерение #greetings.

Условие может быть как простым, так и сложным логическим выражением.

В большинстве случаев это условие будет проверять намерение, сущность или их комбинацию.

Затем у нас есть блок ответа, где мы указываем, что ответить пользователю.

В этом случае просто: «Привет. Чем я могу вам помочь?»

Этот блок ответа имеет много вариантов.

Ответ может быть изображением или некоторыми параметрами, которые может выбрать пользователь.

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

Мы даже можем прикрепить условие к каждому отдельному ответу в пределах одного и того же узла.

Наконец, мы можем указать, что происходит после того, как мы выдали ответ.

Как правило, мы просто ждем, когда пользователь скажет что-то еще, и это действие по умолчанию.

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

Запуск узлов выполняется сверху вниз в диалоге.

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

Если условие не выполнено, мы перейдем ко второму узлу.

Если и этот узел не соответствует критериям, мы рассмотрим третий узел и так далее.

И мы остановимся на первом узле, условие которого соответствует пользовательскому вводу.

Вот почему так важно, чтобы резервный узел Anything else находился в самом низу дерева узлов.

Этот узел имеет специальное условие, которое всегда выполняется, даже если все узлы над ним не выполняются.

Это гарантирует, что у нас всегда есть ответ для пользователя, например: «Я не понимаю, не могли бы вы перефразировать?».

Страница 27