Обучение бота
Чтобы обучить бота отвечать на вопросы клиентов, следуйте инструкции ниже.
Создайте скрипт с NLP распознаванием
В свойствах скрипта с подсказкой, как задать вопрос, должны быть настроены следующие параметры:
- Включить NLP — чтобы распознавание срабатывало внутри скрипта;
- Включить NLP Action — чтобы внутри скрипта можно быть распознавать NLP Action (функционал Small Talk от Dialogflow и другие action);
- Остальные параметры оставить без изменений.
В редакторе скрипта нужно добавить текст, призывающий задать вопрос, а в меню добавить скрытый пункт. Этот пункт не заведет пользователя в тупиковый сценарий, а будет слушать ввод. Если сделать скрипт без меню, то при вводе текста внутри этого скрипта, бот сбросит диалог, а не приведет в нужный ответ.
Поскольку мы включили опции распознавания естественного языка у скрипта, то ввод от пользователя в первую очередь будет отправлен в DF для распознавания намерения и только в случае, если намерение не будет найдено, ввод от пользователя будет перенаправлен в Fallback.
Создайте скрипты-NLP намерения
Выполнение данных скрипта подразумевают реакцию на вопрос пользователя, распознанный DF .
Главным условием работы данных скриптов является установка значения в поле NLP Намерение. Когда намерение в Dialogflow найдено, оно ищется по базе скриптов и сравнивается со значениями полей NLP Намерение. Если найдено полное совпадение, то скрипт с совпадающим значением вступает в работу.
NLP намерение лучше называть по аналогии с названием скрипта, но без пробела. Например для скрипта "Заказать услугу" намерение лучше назвать "заказать_услугу".
Рекомендуем также прописывать нумерацию намерений, чтобы легче работать с базой. Например: 01_заказать консультацию.
Скрипт простого ответа на вопрос должен содержать команду с выводом атрибута {{$nlpLastResponseText}}. Данный атрибут будет возвращен DF после распознавания вопроса и содержать ответ на вопрос указанный в намерении DF.
Для исправной работы в поле NLP Намерение скрипта следует указать .*, чтобы в данный скрипт попадали все распознанные намерения не относящиеся к другим скриптам.
Отдельные скрипты-ответы в поле NLP Намерение должны содержать намерение соответствующее названию скрипта и могут содержать одну или несколько команд.
В вашем боте может быть множество скриптов намерений и создаются они все по аналогии.
Некорректный ввод
Скрипт, который будет выполняться в том случае, если пользователь ввел вопрос/намерение или фразу не заложенные в базе знаний вашего бота.
В свойствах данного скрипта следует установить тип Fallback:
Далее в редакторе скрипта добавьте команду Отправить текст. В данной команде необходимо сообщить пользователю, что его запрос не распознан и порекомендовать его перефразировать, например, "Извините не понял. Сформулируйте свой вопрос по-другому."
Последним этапом добавьте команду Повторить вопрос.
Создание намерений в Dialogflow
Для полноценной работы чат-бота с распознаванием намерений пользователя необходимо создать и настроить базу знаний, по запросам к которой бот будет давать правильные ответы и выстраивать логику взаимодействия с пользователем.
Для работы нам понадобится сервис Dialogflow.
Перед тем как приступать к созданию намерений пройдите уроки Начало работы с Dialogflow и Интеграция с Dialogflow
В привязанном к вашему боту агенту мы будем создавать намерения, с помощью которых бот сможет распознавать текстовые запросы пользователя и подбирать правильные ответы из базы знаний. По кнопке Create Intent создаем новое намерение.
Для каждого скрипта с NLP намерением в боте создаем свое намерение DF с идентичным наименованием.
Внимание! При обучении бота, чем больше вы введете однородных по смыслу запросов и синонимов ключевых слов, тем более точнее ваш бот будет понимать ваших пользователей.
В раздел Training phrases надо добавить различные варианты на тему того, что могут написать пользователи. Например для намерения вызова оператора:
Внимание! В тренировочных фразах не должно быть знаков препинания в конце предложений. Так же при обучении бота намерению важно стараться не допускать фраз, которые могут повторяться в соседних намерениях, иначе бот из базы знаний может выбрать некорректный ответ.
Применение вариантов с перестановкой слов приветствуется. Знаки вопроса и прочие знаки препинания здесь прописывать не нужно.
Для намерений с однозначным ответом в поле Responses добавьте текстовый ответ. Он и будет выводиться в атрибут nlpLastResponseText.
В процессе обучения бота нужно проверять правильность вводимых значений. Для этого, в поле Try it now необходимо указать один из введенных вариантов обращения и система должна предоставить ссылку на нужное намерение.
После ввода всех вариантов возможных обращений необходимо сохранить намерение, нажав на кнопку Save.
Таким же образом создайте остальные намерения для вашего бота.