Бот с NLP

В этом уроке вы узнаете, как с помощью Metabot24 создать бот с распознаванием естественного языка и протестировать его в Telegram.

Введение

Чат-бот с применением технологии NLP может стать отличным дополнением в команду. Он выступит заслоном и фильтром обращений, разгрузит специалистов контакт-центра и при этом улучшит клиентский сервис за счет моментальной помощи в режиме 24/7. Если же вы работаете сами, благодаря чат-боту вы сможете высвободить массу времени и будете меньше отвлекаться.

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

Наибольшую выгоду от внедрения чат-бот создает на больших количествах обращений – ведь чат-бот это инструмент автоматизации для масштабирования бизнеса.

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

Созданный вами бот первого касания с распознаванием естественного языка (NLP), станет отличным решением для автоматизации вашей службы поддержки, а также для применения в продажах.

Вы сможете обучить чат-бота отвечать на вопросы с применением технологии обработки естественного языка на базе Dialogflow от Google (NLP).

circle-info

Обработка естественного языка (Natural Language Processing, NLP) — общее направление искусственного интеллекта и математической лингвистики. Оно изучает проблемы компьютерного анализа и синтеза естественных языков. Применительно к искусственному интеллекту анализ означает понимание языка, а синтез — генерацию грамотного текста. Решение этих проблем будет означать создание более удобной формы взаимодействия компьютера и человека. Источник: Wikipedia/NLParrow-up-right

circle-info

Мы запланировали функцию самостоятельного создания бота из шаблона, а пока готовый шаблон бота из этого урока вы можете запросить у нашей поддержки через удобный вам канал связи на странице Помощьarrow-up-right.

circle-exclamation

Структура урока

Данный урок состоит из двух частей:

  • в первой части урока вы узнаете, как на платформе Metabot создать типовой бот с применением NLP технологии, который будет способен распознавать намерение пользователя и стартовать подходящий сценарий поведения;

  • во второй части мы покажем вам, как интегрировать Dialogflow для распознавания намерений, обучить модель в Dialogflow и связать намерения в Dialogflow с ответами в Metabot.

Итак, приступим к первой части нашего урока - к созданию логики бота.

Создание бота

  1. Зарегистрируйтесьarrow-up-right на платформе Metabot24, подтвердите электронную почту. Далее войдите в аккаунт.

  2. Создайтеarrow-up-right нового бота, нажав кнопку Создать нового...

circle-info

Рекомендуем также ознакомиться с подробным описанием Как создать ботаarrow-up-right.

  • Укажите название бота. Например: "NLP бот продажи услуг";

  • Не устанавливаем опцию Включить обнаружение NLP в приветствии;

  • Не устанавливаем опцию Включить обнаружение NLP Action в приветствии;

  • Нажмите кнопку Создать.

3. Создайтеarrow-up-right статусы, нажав на кнопку Создать статус в разделе Настройки бота -> Статусыarrow-up-right.

circle-info

Рекомендуем также ознакомиться с подробным описанием Статусыarrow-up-right.

В рамках данного урока создадим два статуса: Первичное касание, Диалог с оператором.

  • Введите первый статус Первичное касание - он будет присвоен Лиду при первом запуске бота.

  • Аналогичным способом создадим второй статус Диалог с оператором - он будет присвоен Лиду, если он заказал услугу или позвал оператора.

4. Создайтеarrow-up-right новый скрипт в вашем боте, нажав на кнопку Создать скрипт в разделе Настройки бота -> Скриптыarrow-up-right.

circle-info

Рекомендуем также ознакомиться с подробным описанием Скриптыarrow-up-right.

  • Укажите название скрипта. Например: "Приветствие";

  • Остальные параметры без изменения.

Создание скрипта "Приветствие"
  • Далее откройте редактор скрипта, нажав на кнопку Перейти в редактор скрипта, расположенную напротив только что созданного вами скрипта.

circle-info

Рекомендуем также ознакомиться с подробным описанием Редактор скриптаarrow-up-right.

  • Добавьте команду Отправить текст, нажав на кнопку Добавить команду и выбрав ее в открывшемся окне. Напишите текст сообщения. Текст может содержать эмодзи для эмоционального окраса вашего приветствия.

  • Добавьте команду Установить статус лида, в которой при начале общения с ботом пользователю будет установлен статус, например, "Первичное касание".

circle-info

Рекомендуем также ознакомиться с подробным описанием Установить статус лидаarrow-up-right.

5. Теперь мы создадим еще несколько скриптов по аналогии с пунктом 3. Всего в рамках этого урока нам необходимо создать следующие скрипты:

  • Задать NLP вопрос - в этом скрипте бот будет получать вопрос от пользователя и отправлять его в Dialogflow на распознавание;

  • Заказать услугу - это сценарий поведения бота для приема заявок на услугу и переключение на оператора для отработки заявки;

  • 👨‍🔧 Позовите оператора - выполнение данного скрипта подразумевает переключение на оператора;

  • Способы оплаты - ответ на вопрос пользователя;

  • Часы работы - ответ на вопрос пользователя;

  • Позвать бота - скрипт необходим, когда пользователь позвал оператора, но потом передумал и хочет продолжить общение с ботом;

  • 🛑 Не корректный ввод - скрипт, который бот выполняет, когда не распознано намерение пользователя.

Ниже рекомендации по созданию данных скриптов.

circle-info

Как выполнить интеграцию с соответствующим намерением из базы знаний в DF, рекомендуем ознакомиться в разделах Интеграция с Dialogflowarrow-up-right и Обучение ботаarrow-up-right.

circle-exclamation

Итак, приступим к созданию скриптов.

6. Создайте arrow-up-rightновый скрипт с названием Задать NLP вопрос:

  • Укажите название скрипта. Например: "Задать NLP вопрос";

  • Установить опцию Включить NLP;

  • Остальные параметры без изменения.

  • Далее откройте редактор скрипта, нажав на кнопку Перейти в редактор скрипта, расположенную напротив только что созданного скрипта. Блок Команды оставляем пустым. В блоке Меню добавим пункт меню.

circle-info

Рекомендуем также ознакомиться с подробным описанием Создание менюarrow-up-right.

  • Нажмите на кнопку Добавить пункт меню;

  • В поле Код укажите букву "а" и в фигурных скобках значение 300, например, а{300}. Это регулярное выражение обезопасит чат-бот от случайно введенного не заложенного в сценарии варианта, который может привести к остановке бота.

circle-info

а{300} - это означает, что пользователь должен ввести символ "а" триста раз, чтобы попасть в этот пункт меню

Однако, поскольку мы включили опцию Включить NLP у скрипта, то ввод от пользователя в первую очередь будет отправлен в DF для распознавания намерения и только в случае, если намерение не будет найдено, ввод от пользователя будет использован для поиска пункта меню с соответствующим кодом.

circle-exclamation
  • Установить опцию Скрыть код;

  • В поле Подпись пункта меню укажите, например, фразу "Что бы вы хотели узнать?";

  • Не устанавливать опцию Скрыть весь пункт меню

circle-exclamation
  • В качестве скрипта, выберите из списка созданный скрипт Приветствие.

7. Вернемся к редактированию скрипта Приветствие и в редакторе скрипта добавим команду Выполнить скрипт.

circle-info

Рекомендуем также ознакомиться с подробным описанием Выполнить скриптarrow-up-right.

  • В качестве скрипта, выберите из списка созданный скрипт Задать NLP вопрос.

circle-exclamation

8. Создайтеarrow-up-right новый скрипт с названием Заказать услугу. Выполнение данного скрипта подразумевает не только ответ на вопрос пользователя, но и переключение на оператора.

  • Укажите название скрипта. Например: "Заказать услугу";

  • Установить интеграцию с намерением в поле NLP намерение - установить значение заказать_услугу;

  • Остальные параметры без изменения.

circle-info

Как выполнить интеграцию с соответствующим намерением из базы знаний в DF, рекомендуем ознакомиться в разделах Интеграция с Dialogflowarrow-up-right и Обучение ботаarrow-up-right.

circle-exclamation

Скрипт Заказать услугу может содержать одну или несколько команд:

  • Добавьте команду Отправить текст, например,

    👋 Я Ваш личный бот-помощник и я готов принять Ваш заказ прямо сейчас! 🤖

    👉 Просто ответьте на мои вопросы.

Далее добавим две различные команды Запросить значение, которые будут запрашивать у пользователя его контактные данные и предпочитаемый способ оплаты, далее эти данные будут фиксироваться в карточке пользователя. Например, запросим следующие значения:

  • Добавьте команду Запросить значение.

    • Имя переменной - значение переменной указывается латинскими буквами. Если переменная состоит из нескольких слов, то слова разделяются знаком подчеркивания "_". Например, order_personal.

    Имя переменной - укажите order_personal.

    • Подсказка-приглашение для пользователя - произвольный текст понятный для пользователя, что он должен указать, например, "Одним сообщением укажите Ваши данные (ФИО, адрес, индекс и номер телефона) и какую услугу Вы хотите заказать 👇"

circle-info

Рекомендуем также ознакомиться с подробным описанием Запросить значениеarrow-up-right.

  • Добавьте команду Запросить значение.

    • Имя переменной - значение переменной указывается латинскими буквами. Если переменная состоит из нескольких слов, то слова разделяются знаком подчеркивания "_". Например, order_payment.

    Имя переменной - укажите order_payment.

    • Подсказка-приглашение для пользователя - произвольный текст понятный для пользователя, что он должен указать, например, "Укажите способ оплаты (наложенный платёж или предоплата). 👇"

  • Добавьте команду Установить статус лида, например, статус "Диалог с оператором".

circle-info

Рекомендуем также ознакомиться с подробным описанием Установить статус лидаarrow-up-right.

  • Добавьте команду Отправить текст, например, "Спасибо! Ваш заказ принят в обработку 🤩. Наши менеджеры работают каждый день с 9:30 до 21:30 и ответят Вам в этот промежуток времени".

  • Добавьте команду Стоп.

circle-info

Рекомендуем также ознакомиться с подробным описанием Стопarrow-up-right.

Состав команд в скрипте "Заказать услугу"

9. Создайтеarrow-up-right новый скрипт с названием Позовите оператора. Выполнение данного скрипта подразумевает переключение на оператора.

circle-exclamation
  • Укажите название скрипта. Например: "Позовите оператора";

  • Установить интеграцию с намерением в поле NLP намерение - установить значение позовите_оператора;

  • Остальные параметры без изменения.

Скрипт Позовите оператора должен содержать несколько команд, для этого в редакторе скрипта создадим команды:

  • Добавьте команду Отправить текст, в которой вы опишите дальнейшие действия пользователя и например, график работы специалистов;

  • Добавьте команду Установить статус лида, в которой будет установлен статус, например, "Диалог с оператором";

  • Добавьте команду Стоп.

10. Создайтеarrow-up-right новые скрипты Способы оплаты и Часы работы, которые должны быть интегрированы с соответствующими намерениями в DF и могут содержать одну или несколько команд:

  • Создайте скрипты, указав в поле NLP намерение соответствующие намерение из DF.

  • Далее в редакторе скрипта добавьте команду Отправить текст;

  • Добавьте команду Выполнить скрипт, в качестве скрипта укажите скрипт Задать NLP вопрос.

11. Создайтеarrow-up-right новый скрипт Позвать бота, который будет возобновлять работу чат-бота в том случае, если пользователь остановил его.

circle-exclamation
  • Укажите название бота. Например: "Позвать бота";

  • Остальные опции оставьте без изменений.

  • Далее в редакторе скрипта добавьте команду Установить статус лида. В данной команде необходимо перевести пользователя в первоначальный статус, например, "Первичное касание";

  • Добавьте команду Отправить текст, в которой вы уведомите пользователя о том, что с ним снова общается бот. Например, текст "Я здесь, с вами снова общается Бот.";

  • Добавьте команду Выполнить скрипт, в которой произойдет распознавание NLP намерения, в качестве скрипта укажем созданный скрипт Задать NLP вопрос.

12. Создайтеarrow-up-right последний скрипт в вашем боте, который будет выполняться в том случае, если пользователь ввел вопрос/намерение или фразу не заложенные в базе знаний вашего бота.

  • Укажите название скрипта. Например: "🛑 Не корректный ввод";

  • Тип скрипта - Fallback. Подробнее можно ознакомиться в разделе Скриптыarrow-up-right.

  • Остальные параметры без изменения.

  • Далее в редакторе скрипта добавьте команду Отправить текст. В данной команде необходимо сообщить пользователю, что его запрос не распознан и порекомендовать его перефразировать, например, "Извините не понял 🤷‍♂️. Сформулируйте свой вопрос по-другому.";

  • Добавьте команду Повторить вопрос.

circle-info

Рекомендуем также ознакомиться с подробным описанием Повторить вопросarrow-up-right.

circle-check

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

Создание маршрутов

Создайтеarrow-up-right маршруты для взаимодействия бота с пользователями, нажав на кнопку Создать маршрут в разделе Настройки бота -> Маршрутыarrow-up-right.

circle-info

Рекомендуем также ознакомиться с подробным описанием Маршрутыarrow-up-right.

1. Создайтеarrow-up-right маршрут, который будет запускаться для приветствия.

  • Введите параметры, как показано на изображении ниже;

  • В качестве Названия укажите "Приветствие";

  • В качестве скрипта, выберите скрипт Приветствие;

  • В Регулярном выражении слитно напишите точка-звездочка ".*" без кавычек. Это выражение означает, что бот будет реагировать на любой текст от пользователя;

  • В качестве Статуса выберите ранее созданный статус Первичное касание.

2. Создайтеarrow-up-right маршрут, который будет запускаться при вызове бота и скрипта Позвать бота.

  • Введите параметры как показано на изображении ниже;

  • В качестве Названия укажите "Позвать бота";

  • В качестве скрипта, выберите скрипт Позвать бота;

  • В Регулярном выражении напишите слово "бот". Это выражение означает, что бот будет реагировать на ввод текста "бот" от пользователя;

  • В качестве Статуса выберите ранее созданный статус Диалог с оператором.

circle-check

Резюмируем. Мы создали два маршрута, однако, напомним, что скриптов всего 8. Один из них Fallback на случай не верного ввода, для двух мы сделали маршруты, а в оставшиеся 5 мы будем попадать при помощи распознавания намерения NLP.

Приступим ко второй части нашего урока - созданию базы знаний и модели Dialogflow.

База знаний / Dialogflow

circle-info

Напомним, что мы запланировали функцию самостоятельного создания бота из шаблона, а пока готовый шаблон бота из этого урока вы можете запросить у нашей поддержки через удобный вам канал связи на странице Помощьarrow-up-right.

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

Для работы нам понадобится сервис Dialogflow и чтобы им воспользоваться необходимо иметь аккаунт Google.

circle-info

Как выполнять регистрацию и интеграцию с соответствующим намерением из базы знаний в DF рекомендуем ознакомиться в разделах Регистрация в Dialogflowarrow-up-right и Интеграция с Dialogflowarrow-up-right.

  1. Выполните авторизацию на сервисе Dialogflow.

  2. Перейдите в консоль учетной записи, нажав кнопку Go to console.

  3. Нажмите на кнопку Create New Agent и создайте новый проект/агента, например, NLP_бот.

4. После авторизации на сервисе Dialogflow и создании нового Проекта/ Агента дальнейшая работа по обучению бота будет производиться в разделе Intents.

5. Создаем Намерения, с помощью которых бот сможет распознавать текстовые запросы пользователя и подбирать правильные ответы из базы знаний.

circle-info

Как выполнять обучение бота соответствующим намерениям из базы знаний в DF рекомендуем ознакомиться в разделе Обучение ботаarrow-up-right.

6. Создаем Намерения, с помощью которых бот сможет распознавать текстовые запросы пользователя и подбирать правильные ответы из базы знаний. По кнопке Create Intent создаем новое намерение.

Мы создали бота с 4 скриптами, в которых указана интеграция с базой знаний. Создаем 4 намерения для каждого скрипта соответственно:

  • Заказать_услугу;

  • Позовите_оператора;

  • Способы_оплаты;

  • Часы_работы.

circle-exclamation

В раздел Training phrases надо добавить различные варианты на тему того, что могут написать пользователи.

circle-exclamation

Применение вариантов с перестановкой слов приветствуется. Знаки вопроса и прочие знаки препинания здесь прописывать не нужно.

В процессе обучения бота нужно проверять правильность вводимых значений. Для этого, в поле Try it now необходимо указать один из введенных вариантов обращения и система должна предоставить ссылку на нужное намерение. Например, при варианте вопроса "До скольки вы открыты" выдается намерение "Часы_работы".

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

circle-exclamation

Итак, обучите четыре намерения, например, так как показано на картинках ниже.

Настройка намерения "Заказать услугу"
Настройка намерения "Позовите оператора"
Настройка намерения "Способы оплаты"
Настройка намерения "Часы работы"

Интеграция скриптов в Metabot с намерениями из DF была произведена ранее при создании скриптов. Теперь можно встраивать в бота каналы по обмену сообщениями.

circle-exclamation
  • В диалоговом окне заполнить следующие параметры:

    • Интеграционная система - выбрать из списка Dialogflow;

    • Авторизационный ключ (json) - из буфера обмена скопировать полностью текст закрытого ключа;

    • Токен - параметр остается не заполненным;

    • Нажать кнопку Создать.

circle-exclamation

Запуск бота в Telegram

  1. Создайте бот в Telegram при помощи @BotFather и скопируйте токен.

circle-info

Рекомендуем также ознакомиться с подробным описанием Интеграция канала Telegramarrow-up-right.

2. Создайтеarrow-up-right новый канал в Metabot в разделе Настройки бота -> Каналыarrow-up-right, нажав на кнопку Новая привязка.

circle-info

Рекомендуем также ознакомиться с подробным описанием arrow-up-rightКаналыarrow-up-right.

  • Выберите Telegram в качестве Канала;

  • Скопируйте токен, полученный на предыдущем шаге;

  • Нажмите Создать, чтобы сохранить настройки.

circle-exclamation

Взаимодействие с ботом

Далее перейдите в приложение Telegram, откройте ваш бот и нажмите кнопку Запустить/Start. Если вы все сделали правильно, ваш бот поприветствует вас.

Далее задайте любой вопрос.

circle-check
circle-check

Попробовать в действии бот, который был описан в данном уроке можно, набрав в Telegram логин @urok1_nlp_bot.

circle-exclamation

Следующие шаги

Воспользуйтесь следующим уроком для решения ваших бизнес-задач:

Last updated