Главная/Портфолио/Автоматизируй это: виртуальный помощник вместо колл-центра
E2M CallversoАвтоматизируй это: виртуальный помощник вместо колл-центра
Голосовые помощники перекочевали из фантастических фильмов в смартфоны, и сегодня Алиса, Ok Google, Siri и Alexa популярны среди пользователей. Другие компании в B2C тоже используют виртуальных консультантов вместо службы поддержки своих клиентов. Например, в марте 2018 Bank of America, второй по величине банк США, запустил чат-бота Erica. Erica общается с клиентами банка через голосовой канал, мессенджер и меню с набором опций. Сейчас ботом Erica пользуются уже больше миллиона человек.
Подобное финтех решение мы разрабатываем совместно с Callverso. Это израильская R&D-компания, которая занимается приложениями для распознавания голоса. Callverso получили заказ на создание чат-бота для банка и обратились к нам для сотрудничества. Нашей команде поручили аналитику и разработку, а вопросы, связанные с R&D, взяли на себя партнёры из Израиля.
Зачем банку чат-бот?
Голосовой помощник поможет банку:
- сократить расходы на услуги колл-центра
- увеличить число обработанных заявок
- ускорить процессы внутри банка
Цель проекта Callverso — автоматизировать службу поддержки клиентов банка. Бот-помощник возьмёт на себя функции колл-центра и проконсультирует людей, обратившихся на горячую линию. Услышав запрос от клиента, он выдаст нужную информацию, а если клиент не торопится общаться, бот подскажет, с чего начать. В определённый момент разговора виртуальный консультант выбирает стратегию разговора — подстраивается под поведение клиента и быстро обрабатывает звонки. Банк выигрывает вдвойне — расходы на колл-центр снижаются, а число обработанных заявок возрастает.
Постепенно расширяя свой запас знаний, помощник станет центральной информационной системой банка и будет помогать не только клиентам, но и банковским сотрудникам. Сотрудники быстрее найдут нужную информацию и эффективность работы банка повысится.
Как устроен виртуальный помощник
Чтобы создать голосового ассистента с широким набором функций (распознавание речи, анализ разговора, управление базой данных), мы использовали микросервисную архитектуру. Микросервисы — небольшие приложения, каждое из которых выполняет свою функцию. Вместе они составляют большую структуру, которая и является нашим ботом. Такая архитектура позволяет легко добавлять новые сервисы и обновлять старые. Недавно мы подключили модуль, использующий нейросеть, и библиотеку Vowpal Wabbit. С помощью этого модуля бот выбирает стратегию ведения разговора. Всего в структуре бота 28 программных компонентов, и каждый отвечает за отдельную функцию.
Сейчас бот учится учиться — мы занимаемся разработкой веб-интерфейса, через который операторы будут подсказывать помощнику, насколько правильное решение он принял и правильно ли понял пользователя. На основе подсказок бот научится отличать верные решения от неверных.
В дальнейшем роль операторов уменьшится и виртуальный помощник будет принимать и анализировать свои решения самостоятельно, используя информацию из логов приложений. Для сбора логов мы применяем программный стек ELK.
ELK состоит из нескольких компонентов, которые помогают боту обрабатывать неструктурированные данные из логов приложений, а нам — следить за показателями и параметрами системы.
В состав ELK входят:
- компоненты сбора данных (Filebeat, metricbeat)
- Logstash — конвейер обработки данных. Систематизирует логи приложений
- ElasticSearch — поисковый движок. Хранит и анализирует большие объемы данных
- Kibana — плагин, который отображает данные в веб интерфейсе в виде дашбордов с графиками, таблицами и гистограммами
Как мы справились с трудностями
Когда Callverso предоставили нам список технологий, оказалось, что с некоторыми из них мы раньше не работали. Поэтому в ходе проекта мы освоили новые инструменты, например стек ELK.
Подготовить бота к постоянным нагрузкам было непросто. Бот должен обслуживать клиентов банка в режиме 24/7, и допускать отключения системы из-за отказа одного компонента нельзя. Чтобы обеспечить непрерывную работу виртуального помощника, мы разместили его на кластере — группе компьютеров, использующихся как единый ресурс.
Отсюда возникла необходимость постоянно мониторить показатели каждого компьютера в кластере. Здесь нас снова выручил ELK. Его компоненты собирают, анализируют и отображают в веб-интерфейсе данные из логов приложений. На основе этих данных мы следим за показателями физических и виртуальных устройств и оптимизируем настройки компонентов бота.
Тестировать бота — еще одна непростая задача: пока он понимает только иврит. Мы не можем похвастать знанием иврита, но уже скоро обучим бота английскому языку. Callverso планирует подключать новые языки, если на виртуального помощника появится спрос в других странах.
Что у нас получилось
Сейчас помощник уже умеет отвечать на вопросы пользователей и самостоятельно начинает разговор. Перед тем, как общаться с клиентами банка, бот пройдёт курс обучения через разработанный веб-интерфейс.
Работа над проектом продолжается. Callverso довольны сотрудничеством — мы начали следующую фазу проекта.
В ближайших планах у нас — повысить защиту бота. Для этого мы создадим единую точку входа — SSO (single sign on). SSO обеспечит доступ к различным компонентам виртуального помощника через персональный идентификатор. Доступ будет предоставляться в зависимости от роли, которая назначается как отдельным пользователям, так и их группам. В результате систему станет проще использовать и юзерам, и администраторам.
Для выполнения этой задачи мы уже провели миграцию проекта на последнюю версию Spring 5 и Spring Boot 2 и обновили версии Java-библиотек.
Стек технологий
REST, Micro Services, Business Process Management (BPM), OAuth 2.0, JSON Web Token (JWT), Spring, Akka, Apache UIMA, Stanford CoreNLP, FastText, Vowpal Wabbit, Apache Cassandra, Docker, OpenShift, Activiti, ELK Stack