![Превью проекта](/upload/medialibrary/14f/14fa5020ac70bfb5a5a3d64c9ac5665f.png)
Это было амбициозное, большое внедрение. На портале у наших заказчиков более 100 млн пользователей. Для проекта нужно было разработать сложный классификатор. Мы понимали, что результаты нашей работы увидят десятки миллионов человек. И конечно, это было для нас челленджем. К сожалению, назвать заказчика мы не можем — по условиям NDA. Но рассказать о проекте точно нужно.
Цель
Проблема
Задачи
- Научить бота распознавать более 600 тем возможных вопросов
- Внедрить системы статистики и отчетности
- Добавить возможность динамического управления диалогами
- Предусмотреть нюансы бизнес-логики
- Создать рабочую среду для редакторов заказчика
![Превью проекта](/upload/medialibrary/9fc/9fcc8631eaf1a270b2fc300fe4c3b9e2.png)
![Превью проекта](/upload/medialibrary/649/6492a0c7bcb7f5a8ab03cc1f65170c5f.png)
![Превью проекта](/upload/medialibrary/d28/d28d0087f759a3f533889e0dbea576a3.png
)
В какой-то момент штат операторов у заказчика вырос. И мы научили бота переводить пользователей не на операторов из общего пула, а к тем операторам, которые могут ответить на конкретный вопрос пользователя. При этом бот учитывал тематику всех последних вопросов пользователя, чтобы точнее определить группу, к которой его направить. Иными словами, чат-бот умеет подстраиваться под новые обстоятельства и условия.
![Превью проекта](/upload/medialibrary/427/427bc63ac966d6a73e0937f9fdf63730.png)
Наша ML-модель была устроена сложнее, чем в классических чат-ботах.
У него есть плоский список интентов, и он пытается понять, к какому из них относится фраза пользователя.
В нашем случае:
Бот умеет отвечать на модифицированный вопрос. Если он сразу понял вопрос — хорошо. Если нет — то определит общую тему. А дальше будет работать уже внутри этого интента. Это увеличивает точность его ответа.
![Превью проекта](/upload/medialibrary/d93/d93d19bccf52dcfc92a11f19b8d4e127.png)
Стек
![Картинка](/upload/medialibrary/bcc/bcc2ba95883a9bbed173a637ee886901.png)
RASA
Самое мощное опенсорс-решение для разработки чат-ботов в мире. Любое другое окажется либо слишком дорогим, либо недостаточно мощным. Поэтому мы работаем с этим фреймворком. Наши тесты и аналитика показали, что под требования заказчика он подходит.
RASA — это технический движок. Он параметризуется конфигами для сценариев и обучения моделей. У него есть технический интерфейс для обучения, есть механизмы для управления жизненным циклом моделей. У него есть API, интеграции с внешними системами: с Telegram, Skype, например. Есть возможность расширять его своими компонентами для коннекторов или для элементов бизнес-логики.
![Картинка](/upload/medialibrary/6a0/6a07ec014c8e2c6332b897019fc64e77.png)
Botfront
Еще мы дописали свои компоненты:
- Менеджер управления обученными моделями.
- Собственный классификатор.
- Компоненты взаимодействия с саппорт-системами.
Что в итоге
- У заказчика появился веб-интерфейс, в котором он сам может уточнять сценарии взаимодействия бота с системой.
- Появилось место, в которое он может заводить обучающие выборки для вопросов и целевые ответы.
- Появилась кнопка «Переобучить»: новые вводные боту заказчик может задавать самостоятельно.
-
1
Менее секунды для ответа
-
600
Тем для ответа
-
10
Запросов в секунду
Над проектом работали
-
Антон Гречкин
Ведущий разработчик проекта
-
Андрей Татаринов
Тимлид
-
Валерия Колчина
Менеджер проекта