whatsapp_link
Назад

ТОП-6 Базовых истин о разработке чат-ботов

Вы когда-нибудь видели программу автоматического общения, работающую в чат-сервисах, таких как WhatsApp и Skype, или на сайтах интернет-магазинов? Такая программа автоматизированного общения называется чат-ботом. В этой серии мы объясним функции и механизм чат-ботов в общей сложности 6 раз, включая реальные программы. В этой первой части мы объясним, что могут делать чат-боты, примеры и их отношения с ИИ.

Часть 1: Что такое чат-бот?

  1. Что вы можете делать с чат-ботами

Чат-бот — это комбинация чата и бота, его также называют просто ботом.

Во-первых, позвольте мне рассказать, что вы можете делать с чат-ботами. Чат-боты могут автоматически реагировать на то, что говорит пользователь. Например, можно рассмотреть функцию, которая автоматически реагирует на замечания пользователя вроде: «Какая погода будет завтра?»

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

Многие чат-сервисы, такие как Skype, Facebook Messenger, Telegram, Vkontakte, WhatsApp поддерживают чат-ботов. Хотя чат-боты — это программы, они могут разговаривать с пользователями-людьми аналогичным образом или приглашать их к групповому разговору.

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

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

  1. Пример чат-бота

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

С другой стороны, существуют чат-боты, основная цель которых – доставлять человеку удовольствие от общения.

  1. Отношения между чат-ботами и ИИ

В последнее время актуальной темой стал искусственный интеллект. Между чат-ботами и ИИ существует тесная связь. В области искусственного интеллекта в последние годы больших успехов достигли такие методы машинного обучения, как глубинное обучение. Некоторые чат-боты используют методы машинного обучения, чтобы обеспечить более точные ответы и более естественные разговоры. С другой стороны, многие чат-боты, похоже, работают с простым методом «реагирования на ключевые слова, содержащиеся в комментариях пользователя». Эти простые чат-боты также являются разновидностью ИИ в широком смысле выражения.

Колонки с искусственным интеллектом (умные колонки), такие как Amazon Echo, Яндекс.Станция и Google Home, также используют технологии, аналогичные чат-ботам. Для докладчиков с искусственным интеллектом.

Часть 2: Как работают чат-боты

Выше я объяснил, что могут делать чат-боты и их отношения с ИИ, представив реальные примеры чат-ботов. На этот раз я объясню, как работает чат-бот, как замечания пользователя достигают чат-бота, как ответ чат-бота достигает пользователя и как чат-бот добровольно говорит.

  1. Как комментарии пользователя доходят до чат-бота

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

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

Затем чат-сервер отправляет комментарии пользователя чат-боту по сети.

  1. Как ответы чат-бота доходят до пользователей

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

Например, предположим, что вы хотите вернуть ответ «Доброе утро!». Помимо текста «Доброе утро!», Чат-бот также отправляет вышеупомянутый токен ответа и номер токена доступа, указывающий право доступа к серверу чата, серверу чата. LINE требует токен ответа и токен доступа. С другой стороны, другие сервисы чата используют механизм, аналогичный LINE, для управления правами чат-ботов на доступ к серверу чата. Получив ответ чат-бота, чат-сервер ищет токен, на который будет отправлено сообщение.

  1. Как чат-боты говорят добровольно

Затем давайте посмотрим на пример чат-бота, говорящего спонтанно, а не отвечающего на замечания пользователя.

Например, если вы скажете: «Выполняется продажа!», Чат-бот отправит на сервер чата текст «Выполняется продажа!». В это время идентификатор пользователя, представляющий пользователя-адресата, и токен доступа, упомянутый выше, также отправляются вместе. Сервер чата отправляет пользователю сообщение, если токены, полученные от чат-бота, подходят. Сколько чат-боту разрешено говорить добровольно, зависит от службы чата.

Часть 3: Разработка чат-бота

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

  1. Программа чат-бота

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

Первое, что нужно сделать, это проанализировать комментарии вводимого пользователя. Многие чат-боты проверяют, содержит ли текст заявления ключевое слово (конкретное слово), и действуют соответственно. Например, если текст содержит слово «доброе утро», он ответит «доброе утро!», А если в нем есть слово «погода», он ответит на прогноз погоды. Существуют также чат-боты, которые выполняют более сложный анализ, используя технику, называемую обработкой естественного языка, которая позволяет компьютеру анализировать язык, который люди используют ежедневно.

  1. Язык программирования чат-бота

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

Языки программирования, которые можно использовать для разработки программ чат-ботов, включают, например, Go, Java, JavaScript, Perl, PHP, Python, Ruby (Ruby) и так далее. Это языки программирования, поддерживаемые LINE Messaging API SDK, который представляет собой среду разработки чат-ботов для LINE, расположенную в алфавитном порядке.

  1. Среда разработки чат-ботов

Упомянутый выше LINE API SDK представляет собой среду/платформу разработки, предназначенную для LINE. С другой стороны, существует также среда/платформа разработки чат-ботов, которая поддерживает несколько сервисов чата. Используя такую среду разработки, можно эффективно разрабатывать чат-ботов, поддерживающих различные чат-сервисы. Это полезно, если вы хотите развернуть одного и того же чат-бота для многих чат-сервисов.

Например, чат-бот, разработанный с помощью Microsoft Bot Framework, Bot Help или Smart Sender

Часть 4: Как сделать простого приветственного чат-бота

Я уже объяснил поток обработки, выполняемый программой чат-бота, язык программирования, используемый для разработки, и среду разработки, которая поддерживает разработку чат-ботов. На этот раз я подробно объясню, какая обработка выполняется при создании простой программы чат-бота, который возвращает ответ типа «Привет!» Или «Доброе утро!». Этот чат-бот общается с пользователями. Основная идея та же самая при создании чат-бота, который общается с другими чат-сервисами.

  1. Как работает приветственный чат-бот

Для начала сделаем простого чат-бота, который всегда отвечает: «Привет!». Как только пользователь что-то отправляет, независимо от его содержания, всегда возвращается ответ «Привет!».

Например, когда пользователь говорит «Привет», чат-бот получает данные JSON от чат-сервера. Эти данные включают текст «Привет!» в заявлении, а также маркеры ответа, необходимые для ответа. Кроме того, хотя текст закодирован в фактических данных, для ясности он отображается как исходный текст.

  1. Приветственная программа чат-бота

Теперь, когда вы знаете структуру данных, которые получает и отправляет чат-бот, вы можете написать программу для управления этими данными, и чат-бот готов. На этот раз я попытался разработать программу на языке программирования Python. Программа представлена ниже.

  1. Как подстроить приветствие под сообщения пользователя?

Давайте немного усовершенствуем созданного нами чат-бота, чтобы мы могли менять приветствие в соответствии с сообщениями пользователя. Чат-бот, который отвечает «Доброе утро!», когда пользователь говорит: «Доброе утро» и «Спокойной ночи!», когда пользователь говорит: «Спокойной ночи».

На рисунке показан процесс изменения ответа в соответствии с сообщениями пользователя. Сначала мы получаем текст оператора и сохраняем его в переменной «promo 9». Затем спрашиваем, есть ли в отправленном сообщении «доброе утро» или подобные фразы. Если да, отправляем обратно ответ бота. Если нет, предлагаем повторить.

Часть 5: давайте сделаем практического чат-бота

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

  1. Как работает чат-бот?

На этот раз, если вы спросите, например, «23000 рублей на 5 человек», ответ будет «23000 рублей, разделенные на 5 человек, составляющий 4600 рублей». Это бот. Пригодится как для учета банкетов, так и при совместной покупке вещей. Вы можете разделить счет с помощью приложения-калькулятора, но если вы все время используете приложение чата, вы можете разделить счет, не переключая приложения. Также хорошо, что рассчитанный результат заносится в журнал.

Когда пользователь запрашивает разделенного чат-бота, он может сказать «23000 рублей за 5 человек» или «6 человек за 39000 рублей». Или вы можете сказать: «Я хочу разделить счет на 7200 рублей между четырьмя людьми». Это можно сказать по-разному, но в каждом случае включается образец суммы денег «○○ рублей» и образец количества людей «X человек». Если вы обратите внимание на эти закономерности и извлечете сумму и количество людей из сообщений пользователя, вы сможете рассчитать разделенный счет. Для поиска определенного шаблона в тексте удобно использовать функцию, называемую регулярным выражением. Регулярные выражения доступны во множестве языков программирования.

  1. Голландская программа чат-бота

Вся программа выглядит так:

________________________________________

#! / usr / local / bin / python

import codecs

import json

import os

import re

import sys

import запросы

# Укажите кодировку символов ввода sys.stdin = codecs.getreader (‘utf-8’) (sys.stdin.detach ())

# Получить ввод данных JSON = json.load (sys.stdin)

# Токен доступа token = ‘…’

# Обработать все события

для события на входе [‘events’]:

# Получить примечание пользователя

query = событие [‘сообщение’] [‘текст’]

# Получить

цену и количество людей price = re.search (r ‘(\ d +) rublei’, query)

people = re.search (r ‘(\ d +) people’, query) или re.search (r ‘ (\ d +)) Имя ‘, запрос)

# Если количество или количество людей не указано,

если не цена или не люди:

reply = ‘Пожалуйста, укажите количество и количество людей. ‘

# Рассчитайте разделенный счет

else:

price = int (price.group (1))

people = int (people.group (1))

reply = ‘{} Если разделить рубль на {} человек, это будет {} рублей. ‘

.format (цена, люди, цена // люди)

# Отправить ответ

requests.post (

‘https://api.line.me/v2/bot/message/reply’,

headers = {

‘Content-Type’: ‘application / json’,

‘Authorization’: ‘Bearer’ + token

},

data = json.dumps ({

‘replyToken’: событие [‘replyToken’],

‘messages’: [{

‘type’: ‘text’,

‘text’: reply

}]

})

)

________________________________________

  1. Поддерживать более широкий диапазон выражений

Некоторые пользователи могут называть имена людей «name» вместо количества «X человек». Чтобы иметь возможность рассчитать разделенный счет любым способом, улучшите процесс получения количества контактов следующим образом.

До изменения: people = re.search (r ‘(\ d +) people’, query)

После изменения: people = re.search (r ‘(\ d +) people’, query) or re.search (r ‘( \ d +)) Имя ‘, запрос)

«Or» означает «или». В процессе пост-изменения сначала найдите шаблон «X люди», а если он не найден, найдите образец «X имя». Теперь вы можете получить количество людей для любого шаблона.

  1. Как предотвратить ложные ответы

С другой стороны, если чат-бот интерпретирует, что цена и количество людей были заявлены, чат-бот может рассчитать разделенный счет, даже если пользователь не намерен разделить счет. Например, если пользователь говорит: «стоимость на человека составляет 20 000 рублей», этот чат-бот ответит: «Если вы разделите 20 000 рублей на одного человека, это будет 20 000 рублей».

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

Часть 6: создадим чат-бота с помощью поискового бота Web API-Price

В прошлый раз я сделал чат-бота как практический пример. На этот раз мы будем использовать веб-API (веб-API) для создания более продвинутого чат-бота. Тема — чат-бот для поиска цен, который ищет цену на указанный продукт в интернет-магазине. Разработайте программу для, используя язык программирования Python.

  1. Что такое веб-API?

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

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

Основной механизм один и тот же, использует ли человек веб-браузер для использования веб-сайта или программа использует веб-API для использования веб-сайта — важное отличие.

  1. Как работает чат-бот по поиску цен

Веб-API, используемый на этот раз, возвращает данные JSON с информацией о продукте, которая соответствует ключевому слову, когда ключевое слово задано для поиска продукта. Вы можете указать несколько ключевых слов, разделив их пробелом, например, «4 батарейки AA, бесплатная доставка», как если бы человек выполнял поиск в реальном интернет-магазине. В дополнение к ключевым словам поиска вы также можете указать порядок результатов поиска, элементы, которые нужно получить, количество элементов, которые нужно получить, и так далее.

Результаты поиска будут возвращены в виде данных JSON

  1. Программа чат-бота для поиска цен

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

Отправьте такую информацию, как идентификатор приложения и ключевое слово для поиска, на URL-адрес веб-API. Порядок результатов поиска — это возрастающая цена (сначала низкая цена, затем высокая цена), а элементы, которые необходимо приобрести, — это «название продукта», «цена», «URL» и «название магазина». Кроме того, чтобы время ответа чат-бота оставалось заданным, установлено ограничение на количество срабатываний в 5 раз.

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

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

Мухтасипов Иван, менеджер по развитию бизнеса Digital-агентства «Business Boom»