- PVSM.RU - https://www.pvsm.ru -
С начала 2000-х годов с завидной периодичностью появляются новости о внедрении в работу чат-ботов. В этой статье я расскажу с чего начать и приведу обзор существующих решений, а также поделюсь опытом создания бота для компании Selectel.
Развитие бизнеса зачастую сопровождается не только масштабированием основной деятельности, но и отладкой поддерживающих процессов. Чат-боты — только часть деятельности бизнеса в рамках автоматизации рутины. Коммуникация и выполнение простых однотипных заданий лежат в основе работы чат-бота. С его помощью можно выполнять не только повторяющиеся задачи, но и такие, которые человек выполнить не в состоянии, например, мониторинг активности в социальных сетях.
Разнообразие сфер применения ботов я хочу привести на примере собственной работы в компании Selectel. Мини-спойлер: начинал свою работу я в качестве технического писателя, теперь являюсь инженером отдела облачных решений. Путь внедрения виртуальных помощников начался с бота для отдела маркетинга, который отслеживает комментарии и упоминания компании в социальных сетях. Такая разработка является очень простой, но эффективно дополняет существующие решения на рынке, например, сервис IFTTT [1].
Следующими разработками в моей практике стали внутренний чат-бот для отдела HR и бот для общения с клиентами, представленный в качестве демо-стенда во время конференций SelectelTechDay в Санкт-Петербурге [2] и Москве [3]. Оба бота созданы с помощью разных сервисов и технологий. И прежде чем погружаться в технические подробности, рассмотрим верхнеуровневую схему устройства ботов.
Деятельность чат-ботов строится вокруг 3 основных действий:
Основные действия чат-ботов объединяются в рамках задачи сохранения контекста для создания человекоподобной формы общения и поддержки диалога. Чат-бот должен «помнить» предмет разговора и адаптировать свои ответы соответствующим образом.
Отдельно выделяется вопрос подключения чат-бота к социальным платформам. Коннекторы к мессенджерам и социальным сетям могут быть реализованы самостоятельно или поддерживаться в рамках существующих продуктов для создания чат-ботов.
На данный момент есть множество решений, предлагающих готовый сервис по автоматизации процессов технической поддержки или продаж. Я же больше внимания уделю инструментам, которые позволяют создать сервис, отвечающий внутренним требованиям по безопасности компании, без усложнения процесса разработки.
Изложенные выше 3 принципа работы чат-ботов (канал, анализ, действие) можно реализовать по-разному. Самый простой вариант — проводить сравнения поступающего текста и отправлять пользователю соответствующие ответы.
Наша цель немного выше — получить систему, в которую можно будет быстро добавлять новые сценарии и которая будет понимать пользователя в большинстве случаев.
Для этого нам необходимо понимать, о чем говорит пользователь, контролировать ход диалога и в некоторых случаях выполнять определенные действия (например, бронировать переговорные комнаты). Добиться этого можно, используя следующие инструменты:
При выборе продукта учитываются следующие факторы:
Для нашего внутреннего виртуального помощника чат-бота Тирекса была выбрана платформа от Google Dialogflow, которая предоставляет возможность визуального редактирования намерений, а выполнение действий осуществляется внутри частного облака в Selectel [4]. Определяющими факторами стали скорость начала работы с ботом, безопасность при передаче сообщений и наличие канала Slack в списке поддерживаемых.
Идея создания чат-бота давно витала в воздухе компании, особенно учитывая, какие проблемы можно было решить с ним:
Создание и подключение бота в Dialogflow занимает несколько минут. В начале рассмотрим принципы работы чат-бота в системе, а затем добавим выполнение сложных действий.
Далее в тексте мы будем оперировать такими понятиями, как:
Dialogflow обрабатывает естественный язык и извлекает все необходимые данные для выполнения сложных команд. Для этого создаются агенты, которые содержат в себе несколько намерений. Каждое из намерений позволяет подготовить чат-бот к пониманию нюансов и тонкостей при формулировании запросов.
Намерение включает в себя тренировочные фразы, параметры и ответы. Внутри тренировочной фразы мы выделяем параметры (например, время или место), которые необходимы для формирования корректного ответа.
Ответ указывается либо в намерении, либо Dialogflow отправляет запрос на наш сервер, который выполняет необходимую работу и возвращает обратно ответ на примере нашего чат-бота:
Рассмотрим работу с Dialoglow на примере бронирования переговорной. Мы создаем агент управления бронированиями и определяем следующие намерения:
Каждое из намерений вызывается тренировочными фразами. Чем больше их добавлено, тем вероятнее будет выполнено нужное действие. В нашем примере намерение «Забронировать переговорную» будем вызывать следующими фразами:
Принцип работы сбора данных в намерениях следующий:
Посмотрим на этот процесс в действии:
Обработка действия осуществляется отправкой запроса со всеми данными на заранее добавленный адрес сервера действий (Webhook URL):
По адресу website.ru/webhook [5] находится сервер, который выполняет обработку сложных команд (в нашем примере возвращает строку «Привет от сервера!»). Github Gist [6]для быстрого старта:
# -*- coding: utf-8 -*-
from flask import Flask, request, make_response, jsonify
app = Flask(__name__)
@app.route('/webhook', methods=['POST'])
def webhook():
req = request.get_json(force=True)
intent = req.get('queryResult').get('intent').get('displayName')
print(intent)
if intent == 'Sample intent':
res = make_response(jsonify(
{
"fulfillmentText": "Привет от сервера!",
}
))
return res
return make_response(jsonify(
{
"fulfillmentText": "Совпадений намерений не найдено!",
}
))
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=True, port=5000)
Для использования чат-бота без сторонних сервисов для распознавания текста можно использовать инструменты наподобие Rasa [7], которые позволяют полностью управлять всем процессом работы бота. Rasa — набор программных компонентов с открытым исходным кодом, которые содержат распознавание речи и управление диалогами. Уже сейчас можно посмотреть на Boilerplate [8], который я подготовил для знакомства с платформой, а более подробную инструкцию мы опубликуем, если будут запросы от Habr-сообщества.
Использовать ли сервисы автоматизации для клиентского обслуживания — непростой вопрос. Современные инструменты предоставляют множество решений при выборе между гибкостью, скоростью начала работы и безопасностью. Системы распознавания намерений в естественном языке теперь доступны не только в проприетарном виде, но и свободно распространяются, что открывает большие возможности для собственных экспериментов. Мы рассмотрели один из вариантов, который позволяет быстро внедрить чат-ботов для автоматизации однотипных задач вашего бизнеса без капитальных затрат и с минимальными трудозатратами. Если вы в работе уже применяете чат-ботов, поделитесь обратной связью в комментариях о своих впечатлениях и, конечно, впечатлениях ваших клиентов.
Автор: nzavyalov
Источник [9]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/api/306773
Ссылки в тексте:
[1] сервис IFTTT: https://ifttt.com/
[2] Санкт-Петербурге: https://blog.selectel.ru/selecteltechday-infrastruktura-nachinaetsya-zdes/
[3] Москве: https://blog.selectel.ru/selecteltechday-live-translyaciya/
[4] частного облака в Selectel: https://kb.selectel.ru/22059053.html
[5] website.ru/webhook: https://website.ru/webhook
[6] Github Gist : https://gist.github.com/Gaikanomer9/392cbdd14f213a052d765a248a844854
[7] Rasa: https://rasa.com/
[8] Boilerplate: https://github.com/Gaikanomer9/rasa-docker-bot
[9] Источник: https://habr.com/ru/post/436622/?utm_campaign=436622
Нажмите здесь для печати.