ДЛЯ СЕРВИСА
УСЛУГ

ЧАТ-БОТ

Это было амбициозное, большое внедрение. На портале у наших заказчиков более 100 млн пользователей. Для проекта нужно было разработать сложный классификатор. Мы понимали, что результаты нашей работы увидят десятки миллионов человек. И конечно, это было для нас челленджем. К сожалению, назвать заказчика мы не можем — по условиям NDA. Но рассказать о проекте точно нужно.
Написали чат-бота для портала на 100 млн пользователей.
генеральный директор AGIMA.AI
Андрей Татаринов
Цель
разработать систему, которая станет нулевой линией поддержки
У заказчика была проблема: пользователи сервиса обращались в чат поддержки, но операторов не всегда хватало, чтобы оперативно ответить. Наш чат-бот должен был подменить людей в моменты аврала.
Научить бота распознавать более 600 тем возможных вопросов.
задачи
Внедрить системы статистики и отчетности.
Добавить возможность динамического управления диалогами.
Предусмотреть нюансы бизнес-логики.
этапы
На первом этапе мы выяснили, как наш бот будет распознавать темы вопросов. Для этого мы взяли примеры диалогов из чатов с реальными операторами, сделали ML-прототип и обучили тестовую модель классификации.
АНАЛИТИКА
01
Так мы убедились, что наш стек подходит под задачи заказчика.
Бот подбирает ответ с учетом реакции пользователя.
Мы собрали всю систему в миниатюре. Это уже был тестовый чат-бот, но умел он намного меньше. Мы показали его заказчику и дали возможность с ним поработать. Заказчик попробовал и дал обратную связь: согласился на полную интеграцию.
пилотная версия
02
Бот понимает несколько вариантов одного и того же слова. Например, «нету» он распознает так же, как и «нет».
На этом этапе мы разрабатывали функции под нюансы бизнес-логики.
формализация сценариев
03
Например:
  • если клиент задает вопрос по одной теме второй раз, его нужно перевести на оператора;
  • если операторов нет на связи, бота нельзя переводить на оператора, даже если по сценарию нужно;
  • если какая-то система внутри сервиса сломалась, на вопросы о ней бот должен отвечать определенным сообщением;
  • если бот не может понять вопрос, но примерно понимает его тему, то он должен задать уточняющий вопрос и т. д.
Бот умеет реагировать на разные ситуации. Например, понимает, когда с ним просто поздоровались.
В какой-то момент штат операторов у заказчика вырос. И мы научили бота переводить пользователей не на операторов из общего пула, а к тем операторам, которые могут ответить на конкретный вопрос пользователя. При этом бот учитывал тематику всех последних вопросов пользователя, чтобы точнее определить группу, к которой его направить. Иными словами, чат-бот умеет подстраиваться под новые обстоятельства и условия.
генеральный директор AGIMA.AI
Андрей Татаринов
Интент — это класс или, еще проще, ключевое слово. Мы классифицировали их иерархически. То есть бот понимал не только формулировку типа «восстановить утерянный паспорт», но и только слово «паспорт».
классификация интентов
04
Бот быстро понимает запрос.
Наша ML-модель была устроена сложнее, чем в классических чат-ботах
Классический классификатор работает так:
у него есть плоский список интентов, и он пытается понять, к какому из них относится фраза пользователя.
В нашем случае:
бот умеет отвечать на модифицированный вопрос. Если он сразу понял вопрос — хорошо. Если нет — то определит общую тему. А дальше будет работать уже внутри этого интента. Это увеличивает точность его ответа.
Дальше мы подготовили стек к внедрению, провели интеграционное тестирование со всеми компонентами:
внедрение
05
  • с чат-системой;
  • с системой сбора статистики;
  • с системами мониторинга заказчика.
После этого чат-бот был готов
Так выглядит панель сбора статистики.
стек
rasa
Мощное опенсорс-решение для разработки чат-ботов. Любое другое кажется нам либо слишком дорогим, либо недостаточно мощным, поэтому мы работаем с этим фреймворком. Наши тесты и аналитика показали, что под требования заказчика он подходит.
RASA — это технический движок. Он параметризуется конфигами для сценариев и обучения моделей. У него есть технический интерфейс для обучения, есть механизмы для управления жизненным циклом моделей. У него есть API, интеграции с внешними системами: с Telegram, Skype, например. Есть возможность расширять его своими компонентами для коннекторов или для элементов бизнес-логики.
генеральный директор AGIMA.AI
Андрей Татаринов
Botfront
Это интерфейс, который помогает описать диалог в визуальном редакторе.
Нашей задачей было создать рабочую среду для копирайтеров заказчика.
И Botfront подходил для этого больше всего — он дружелюбен по отношению к человеку, но при этом функционален.
Он может проанализировать диалог, через него легко внести правки в поведение бота.
Как обучали
Мы расширили стандартный классификатор на базе. Таким образом, что он одновременно отвечал на много вопросов. То есть он пытался найти задачу классификацаии на всех уровнях классификатора. Он отвечал сначала на вопрос, какому верхнему уровню относится вопрос. Это вопрос про паспорт, вопрос да-нет, просьба перевети на оператора. И внутри каждой группы он снова пытался решить задачу классификации, но уже внутри только этого класса, внутри этой широкой тгруппы. Если мы поняли на первом шаге, что вопрос относится к паспорту, то мы принимаем решение не наскозь всех 600 интентов, а насквозь тех 10, которые относятся к группе Паспорт.
Это повышает отзывчивость бота. Автор сценариев может оперировать промежуточными группами, чтобы задать уточняющие вопросы или любую другую логику.
Еще мы дописали свои компоненты:
  • менеджер управления обученными моделями;
  • собственный классификатор;
  • компоненты взаимодействия с саппорт-системами.
Что получилось в результате
У заказчика появился веб-интерфейс, в котором он сам может уточнять сценарии взаимодействия бота с системой.
Появилось место, в которое он может заводить обучающие выборки для вопросов и целевые ответы.
Появилась кнопка «Переобучить»: новые вводные боту заказчик может задавать самостоятельно.
Наш чат-бот отвечает на запрос менее 1 секунды.
Он знает несколько сценариев поведения.
Бот знает ответы по 600 темам сервиса.
Выдерживает нагрузку 10 запросов в секунду.
Кто работал над проектом
Андрей Татаринов
CTO
Алексей Ланских
Менеджер проекта
Антон Гречкин
Тимлид
контакты AGIMA AI
hello@agima.ai
107031, г. Москва, ул. Петровка, д. 19, стр. 4.
Теперь вы знаете, где нас искать
Обычно мы работаем с 10 до 19.