Создание чат-бота с использованием Google Dialogflow и развертывание с нуля !!

  1. Концепция чат-бота

Что такое чат-боты? Чат-бот - это программное обеспечение, агент или служба, которая имитирует человеческий разговор на естественном языке через приложения для обмена сообщениями, веб-сайты, мобильные телефоны или телефон. Их можно запрограммировать так, чтобы они отвечали на простые ключевые слова или подсказки в сложных обсуждениях. В основе чат-бота лежат две разные задачи: анализ запроса (определение намерений пользователя) и предоставление ответа.

Чат-боты бывают двух типов: один работает по набору правил, а другой, более продвинутый, использует искусственный интеллект. 1. Чат-боты, которые работают по правилам: их легко создать, и они могут выполнять базовые задачи с ограничениями для определенных команд. Производительность этого бота будет зависеть от навыков программирования. 2. Чат-боты, использующие машинное обучение: он понимает языки, а не только команды, он дает соответствующие ответы на основе предыдущего опыта и обучения. Он общается с помощью речи или текста, полагаясь на технологии искусственного интеллекта, такие как машинное обучение и НЛП.

1.2 Сценарии использования

  1. Ниже приведены некоторые из безграничных возможностей приложений чат-ботов: 1. Чат-бот для заказа еды, который позволяет клиентам делать заказы из своего офиса или дома. 2. Чат-бот, который отвечает на вопросы службы поддержки. 3. Чат-бот, который позволяет клиенту бронировать рейс и получать соответствующую информацию. 4. Чат-бот, помогающий покупателю совершать покупки в электронной коммерции. 5. Чат-бот, который задает вопросы клиенту для маркетинговой кампании. 6. Медицинский бот, который предоставляет услуги по записи на консультацию к врачу и лечению различных симптомов. 7. Чат-бот, который заказывает билеты в кино, а также предоставляет обзоры.

  1. 4 модели для чат-бота

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

В основном есть две модели:

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

2. Генеративная модель: чат-бот с генеративной моделью не использует никаких предопределенных репозиториев. Этот вид модели чат-бота является более продвинутым, потому что он учится на парсинге с помощью «глубокого обучения».

Обработка сообщений начинается с понимания намерений пользователя.

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

2. Модуль распознавания объектов извлекает из сообщения структурированные биты информации. Бот погоды, мы можем получить местоположение и дату, чтобы определить погоду.

3. Генератор ответа кандидата выполняет все вычисления, зависящие от предметной области, для обработки запроса пользователя. Он использует разные алгоритмы, инициирует вызов внешних API-интерфейсов или подключается к представителю-человеку, чтобы помочь с ответами. Результатом является список кандидатов ответа.

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

1.6 Фреймворки чат-ботов

  1. Pandorabots - бесплатный веб-сайт с открытым исходным кодом для разработки и развертывания чат-ботов. Pandorabots - это фреймворк с открытым исходным кодом, который используется для разработки чат-ботов со многими богатыми функциями ИИ.
  2. Microsoft Bot Framework - Microsoft Bot Framework - отличная платформа, которая помогает вам разрабатывать, подключать, публиковать и управлять чат-ботами. Чат-боты, построенные на этой платформе, обладают гибким обучением, интерактивны и умны, чтобы обеспечить лучший пользовательский интерфейс.
  3. Botpress-Botpress - это решение корпоративного уровня для разработки, развертывания, управления и масштабирования чат-ботов. Хотя он интуитивно понятен и прост, он такой же гибкий, как и бот.
  4. ChatterBot - это бесплатная облачная платформа AI Chatbot для создания ботов. Node.js управляет чаттер-ботом. Это библиотека Python, которая действует как механизм диалогового диалога и использует машинное обучение. Более того, он не зависит от языка, и эта функция позволяет использовать любой язык по выбору для обучения чат-бота.

5. Dialogflow (принадлежит Google) - это комплексный пакет разработки, позволяющий строить и развертывать везде. Поскольку в Dialogflow используется алгоритм машинного обучения Google, мы можем создавать голосовые или текстовые диалоговые интерфейсы для приложений и чат-ботов. Кроме того, мы можем подключаться к пользователям мобильных приложений, Alexa, Messenger, Google Assistant, веб-сайтов и т. Д. С помощью Dialogflow.

6. RASA Stack - это платформа для разработки чат-ботов с открытым исходным кодом на основе машинного обучения. Двумя важными интеграторами структуры RASA Stack являются Rasa Core и Rasa NLU.

7. Wit.ai - это бесплатный инструмент для создания текстовых или голосовых ботов от Facebook. С помощью Wit.ai мы можем разработать голосовой интерфейс для приложений для смартфонов, включить автоматизацию в носимых устройствах и т. Д., И это не ограничивается только разработкой ботов.

8. Botkit - Botkit - один из ведущих инструментов для разработчиков ботов. Botkit.ai помогает создавать ботов с помощью визуального конструктора бесед и позволяет добавлять плагины в зависимости от наших потребностей. Он работает на движке обработки естественного языка от LUIS.ai плюс включает библиотеки с открытым исходным кодом.

2 Google Dialog Flow

2.1 Введение

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

2.2 Почему выбирают Google Dialogflow

  • Обеспечивает естественное и продуктивное общение: он имеет встроенные функции обработки естественного языка и обучает чат-бота искусственному интеллекту (ИИ), тем самым позволяя ему естественным образом обрабатывать беседу.
  • Понимает, что говорят пользователи: машинное обучение делает Dialogflow достаточно умным, чтобы предсказать скрытое намерение, выраженное на языке ввода. Карта чат-бота Dialogflow - это пользовательский запрос с базой данных, доступной на его внутреннем сервере.
  • Работает со многими платформами. Чат-бот, разработанный с использованием Dialogflow, поддерживает множество платформ, и, таким образом, разработка чат-бота Google позволяет предприятиям ориентироваться на более широкую аудиторию с наименьшими усилиями. Поддержка различных устройств Dialogflow помогает в создании чат-бота, ориентированного на устройства. Таким образом, он взаимодействует с пользователями носимых устройств, телефонов, автомобилей, динамиков и других интеллектуальных устройств. Это помогает связать предприятия с их потенциальными покупателями или клиентами в любом месте и в любое время.
  • Помогает чат-ботам говорить на 14+ языках. Dialogflow поддерживает множество языков, включая бразильский португальский, китайский, английский, голландский, французский, немецкий, итальянский, японский, корейский, португальский, русский, испанский, украинский.
  • Отслеживание производительности с помощью инструмента аналитики. Подобно аналитике мобильных приложений, мы можем отслеживать производительность чат-ботов. Интегрированный инструмент аналитики может считывать шаблоны использования, проблемы с задержкой, а также высоко и низкоэффективные намерения.

2.3 Как работают чат-боты?

Шаги:

1. Пользователь отправляет текстовое или голосовое сообщение с устройства или приложения.

2. Приложение или Устройство передает данные в Dialogflow.

3. Сообщение классифицируется и соответствует соответствующему намерению.

4. Мы определяем действия для каждого выполняемого намерения (Webhook).

5. Когда Dialogflow обнаруживает конкретное намерение, веб-перехватчик будет использовать внешние API для поиска ответа от внешних баз данных.

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

7. Webhook отправляет форматированный ответ на намерение.

8. Intent генерирует полезные данные по разным каналам.

9. Данные отправляются в выходные приложения или подключенные устройства.

10. Пользователь получит в ответ текст / изображение / голос.

2.4 Создайте своего первого чат-бота

2.4.1 Регистрация в учетной записи Dialogflow

Предварительное условие: для подключения к Google Dialogflow требуется учетная запись Google.

  1. Создайте нашу учетную запись Dialogflow по ссылке (https://dialogflow.com/). Нажмите «Зарегистрироваться бесплатно» и приступите к созданию учетной записи.

3. Выберите свою учетную запись Google, и она будет направлена ​​на домашнюю страницу Google Dialogflow. Нажмите «Перейти к консоли» в правом верхнем углу, чтобы перейти на домашнюю страницу Google Dialogflow.

2.4.2 Создание агента

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

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

2.4.3 Создание намерения

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

  1. Щелкните значок плюса, как показано на изображении ниже, чтобы создать новое намерение, которое позволяет сопоставить то, что говорит наш пользователь, с тем, что отвечает наш агент. Введите название «Погода» и нажмите кнопку «СОХРАНИТЬ».

2. Щелкните ДОБАВИТЬ ОБУЧАЮЩУЮ ФРАЗУ, а затем добавьте обучающие фразы. Обучающие фразы - это примеры того, что пользователи могут сказать, чтобы соответствовать определенному намерению. Добавление множества фраз с разными вариациями и параметрами повысит точность сопоставления намерений.

3. Выделите даты в каждой фразе и щелкните правой кнопкой мыши, чтобы выбрать системный объект, например @ sys.date, для записи дня. Аналогичным образом выберите системный объект @ sys.geocity для города. Этот шаг включает определение цели пользовательского разговора и сохранение данных для улучшения связи.

4. Щелкните ДОБАВИТЬ ОТВЕТ, чтобы дать соответствующий ответ на запросы пользователей.

2.5 Понимание строительных блоков Dialogflow

В последнем разделе мы создали простой погодный агент (бот), использующий некоторые функции Dialogflow. В этом разделе мы кратко рассмотрим все возможности Dialogflow, что поможет понять следующие сегменты.

2.5.1 Агент:

Агент - это виртуальный агент или бот, который ведет диалог с конечными пользователями. Он включает обработку естественного языка, чтобы понять, что имел в виду пользователь, и выяснить, какое «действие» необходимо выполнить. Агенты успешно общаются с пользователем через намерение, сущности, контексты и другие строительные блоки.

2.5.2 Намерение

Намерения определяют действие, которое должен выполнить код. Это отображение того, что говорит пользователь, и того, что наша программа должна делать с его высказываниями.

Два типа намерения: намерение по умолчанию: Dialogflow предоставляет два намерения по умолчанию, а именно намерение приветствия по умолчанию (для приветствий) и резервное намерение по умолчанию (по умолчанию не выполняется намерение, когда другие намерения не совпадают). Настраиваемое намерение: Dialogflow предоставляет параметры для создания настраиваемых намерений на основе бизнес-требований.

а. Имя намерения: создайте новое намерение с именем Онлайн-консультация и сохраните его.

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

c. Действие и параметры:

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

2.5.3 Сущности

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

Два типа сущностей; Системные объекты: встроенные объекты, предоставляемые Google Dialogflow.

Сущности клиента: разработчик создает настраиваемые сущности. Здесь мы создали сущность «Консультация», предоставили синонимы и сохранили ее.

2.5.4 Выполнение:

Выполнение помогает использовать информацию, извлеченную обработкой естественного языка Dialogflow, для динамической генерации ответов или для запуска действий в серверной части. а. Настроить выполнение: i. Разрешить выполнение, сдвинув Разрешить вызов веб-перехватчика для этого намерения с намерениями, которые включают построение логики или запускают действия.

II. Чтобы включить встроенный редактор, нажмите «Выполнение» в левом меню. Щелкните переключатель встроенного редактора.

iii. Чтобы развернуть выполнение, нажмите «Развернуть» в редакторе кода.

iv. Чтобы экспортировать наш код: Когда вы будете готовы переместить наш код со страницы выполнения, вы можете использовать кнопку «Загрузить», чтобы получить его файл «.ZIP».

2.5.5 Интеграции

Dialogflow интегрируется со многими платформами, такими как Slack, Google Assistant и Facebook Messenger. Эти интеграции предоставляют специфические для платформы функции для создания продуктивных ответов.

Примечание. Эта функция подробно обсуждается в следующих разделах.

2.5.6 Обучение:

Обработка естественного языка Dialogflow основана на машинном обучении. Мы можем добавить данные обучения, на которых агент учится и которые используются для повышения своей производительности. Функция обучения Dialogflow предоставляет интерфейс для включения журналов внешних и внутренних взаимодействий с клиентами в обучающие фразы агента.

2.5.6 История

В разделе «История диалогового процесса» отображается упрощенная версия разговоров, которые вел агент. Записи предоставляют обзор того, как пользователи взаимодействуют с агентом.

2.5.7 Аналитика

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

2.5.8 Готовые агенты:

Предварительно созданные агенты - это агенты, предоставляемые Google Dialogflow, которые можно импортировать в качестве агентов и использовать в соответствии с требованиями.

3. Dialogflow: линейный и нелинейный

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

Линейные диалоги

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

Нелинейные диалоги

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

3.1 Линейный диалог. Когда диалог между пользователем и агентом является линейным, он называется линейным диалоговым потоком. Информация из ответов пользователя собирается, и вызывается следующее намерение. Linear Dialogflow разработан с использованием одного или нескольких намерений.

3.1.1 Линейный диалог с использованием единого намерения: мы можем собирать информацию от пользователя в едином намерении и фиксировать эту информацию в параметрах в линейной форме, используя параметры в разделе «Действие и параметры» при создании намерения. Мы обсуждаем то же самое на примере ниже. Давайте рассмотрим нижеприведенный поток, в котором агент запрашивает сведения о пользователе.

Шаги по созданию Linear Dialogflow с единственной целью:

  1. Войдите в Google Dialogflow и подключитесь к агенту Healthcare Agent, созданному в предыдущем разделе. 2. Создайте намерение с именем «Сведения о пользователе», как если бы мы собирали сведения от пользователя.

4. Зафиксируйте болезнь в параметре. Итак, мы создали бы настраиваемую сущность. Сохраните намерение и нажмите Entity, чтобы создать объект с именем Disease. Введите данные, как показано ниже, и нажмите «Сохранить».

5. Перейдите к сведениям о намерении пользователя. Выделите холодный, в небольшом окне будет отображаться список всех доступных сущностей (системных и пользовательских), выберите объект «Заболевание».

6. Выбор объекта свяжет параметр с информацией об импорте в обучающих данных. Пожалуйста, выполните шаг 5 для выделенных данных в обучающих фразах.

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

е. В разделе запросов нажмите «Определить запросы», чтобы предоставить ответ бота для сбора имени пользователя. Появится всплывающее окно с просьбой предоставить подсказки. Добавить подсказку Укажите имя, как показано ниже. Щелкните "Закрыть".

3.1.2 Линейный диалог с использованием нескольких целей:

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

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

а. Выходные контексты: при применении к намерению выходной контекст сообщает Dialogflow активировать контекст, если он еще не активен, или переносить информацию (параметры) из текущего намерения в последующее намерение.

Последующее намерение

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

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

Шаги по созданию линейного диалогового потока с несколькими намерениями с использованием контекста и последующих намерений:

е. Нажмите СОХРАНИТЬ, чтобы сохранить текущее намерение. Нажмите «Намерения», чтобы просмотреть список всех доступных намерений, выберите намерение «Интенсивность заболевания» и нажмите «Добавить последующее намерение».

j. Создайте выходной контекст для пересылки текущих сущностей в следующем намерении. Введите Diseaseintensity-follow-up, и он будет добавлен со значением продолжительности жизни по умолчанию, равным 5. Мы можем увеличить или уменьшить продолжительность жизни в зависимости от наших требований.

м. Перейдите в Интенсивность болезни - продолжительность и создайте цель последующего наблюдения как Интенсивность болезни -расширение. Добавьте контексты вывода, как показано ниже. Щелкните Сохранить.

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

с. Добавьте обучающую фразу

3.2 Нелинейный диалог:

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

4. Интеграции

Интеграции:

Перейдите на вкладку интеграции слева и включите интеграцию.

4.1 Веб-демонстрация Dialogflow:

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

Настройка веб-демонстрации

Чтобы создать веб-демонстрацию для нашего текущего агента, щелкните параметр «Интеграция» в левом меню Dialogflow, а затем щелкните переключатель на плитке «Веб-демонстрация».

После включения веб-демонстрации отобразится окно со следующей информацией:

  • URL-адрес сгенерированной веб-страницы, на которой размещен наш агент.
  • Ссылка на настройки значка и описания, которая влияет на нашего агента на сгенерированной веб-странице.

4.2 Телеграмма:

Чтобы настроить интеграцию Telegram для нашего агента, вам понадобится аккаунт Telegram.

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

  1. Авторизуйтесь в Telegram по ссылке https://telegram.me/botfather

2. Нажмите кнопку «Пуск» в веб-интерфейсе или введите / начните в Telegram.

3. Введите / newbot и укажите имя.

4. Укажите имя пользователя для бота, оканчивающееся на «бот» (например, garthsweatherbot). Скопируйте сгенерированный токен доступа.

Настройка Dialogflow

5. В Dialogflow перейдите в раздел "Интеграции, доступные в левом меню".

6. Щелкните плитку Telegram, чтобы включить интеграцию Telegram.

7. Вставьте токен доступа Telegram в соответствующее поле. Нажмите кнопку "Пуск".

5.1 Выполнение и интеграция с внешним API:

Выполнение:

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

5.1 Внешний вызов API - список клиник по специальности

В этом разделе мы извлекаем список клиник на основе специальности из внешнего API. Мы отображаем контактный номер и название клиники в зависимости от специальности.

5.1.1 Генерация ключа API

  1. Зарегистрируйтесь для генерации ключа API по ссылке https://developer.betterdoctor.com/

5.1.2 Создание агента и намерения

1. Создайте агента и намерение со следующими данными:

а. Создать агента DoctorsClinic_Speciality

б. Создать намерение Doctors_Speciality

c. Добавить обучающие фразы

5.1.3 Код выполнения:

5.2 Интеграция электронной почты В этом разделе мы отправим пользователю электронное письмо с деталями встречи, созданными в разделе 5.1.

5.2.1 Создание намерения

Мы создадим последующее намерение Назначить встречу, названное «Отправить электронное письмо», со следующими деталями: a. Имя намерения: Отправить электронное письмо. Примечание. Входные контексты автоматически добавляются к вновь созданным, чтобы мы могли использовать дату и время, зафиксированные в намерении «Назначить встречу».

3. Во вкладке index.js вставьте электронную почту и функцию pdf.

я. Выберите Развернуть

Счастливого обучения