Это было амбициозное, большое внедрение. На портале у наших заказчиков более 100 млн пользователей. Для проекта нужно было разработать сложный классификатор. Мы понимали, что результаты нашей работы увидят десятки миллионов человек. И конечно, это было для нас челленджем. К сожалению, назвать заказчика мы не можем — по условиям NDA. Но рассказать о проекте точно нужно.
Цель
Проблема
Задачи
- Научить бота распознавать более 600 тем возможных вопросов
- Внедрить системы статистики и отчетности
- Добавить возможность динамического управления диалогами
- Предусмотреть нюансы бизнес-логики
- Создать рабочую среду для редакторов заказчика
В какой-то момент штат операторов у заказчика вырос. И мы научили бота переводить пользователей не на операторов из общего пула, а к тем операторам, которые могут ответить на конкретный вопрос пользователя. При этом бот учитывал тематику всех последних вопросов пользователя, чтобы точнее определить группу, к которой его направить. Иными словами, чат-бот умеет подстраиваться под новые обстоятельства и условия.
Наша ML-модель была устроена сложнее, чем в классических чат-ботах.
У него есть плоский список интентов, и он пытается понять, к какому из них относится фраза пользователя.
В нашем случае:
Бот умеет отвечать на модифицированный вопрос. Если он сразу понял вопрос — хорошо. Если нет — то определит общую тему. А дальше будет работать уже внутри этого интента. Это увеличивает точность его ответа.
Стек
RASA
Самое мощное опенсорс-решение для разработки чат-ботов в мире. Любое другое окажется либо слишком дорогим, либо недостаточно мощным. Поэтому мы работаем с этим фреймворком. Наши тесты и аналитика показали, что под требования заказчика он подходит.
RASA — это технический движок. Он параметризуется конфигами для сценариев и обучения моделей. У него есть технический интерфейс для обучения, есть механизмы для управления жизненным циклом моделей. У него есть API, интеграции с внешними системами: с Telegram, Skype, например. Есть возможность расширять его своими компонентами для коннекторов или для элементов бизнес-логики.
Botfront
Еще мы дописали свои компоненты:
- Менеджер управления обученными моделями.
- Собственный классификатор.
- Компоненты взаимодействия с саппорт-системами.
Что в итоге
- У заказчика появился веб-интерфейс, в котором он сам может уточнять сценарии взаимодействия бота с системой.
- Появилось место, в которое он может заводить обучающие выборки для вопросов и целевые ответы.
- Появилась кнопка «Переобучить»: новые вводные боту заказчик может задавать самостоятельно.
-
1
Менее секунды для ответа
-
600
Тем для ответа
-
10
Запросов в секунду
Над проектом работали
-
Антон Гречкин
Ведущий разработчик проекта
-
Андрей Татаринов
Тимлид
-
Валерия Колчина
Менеджер проекта