“Автодетектив” – это команда специалистов и экспертов-криминалистов, которая оказывает услуги по проверке автомобиля перед покупкой. Эксперты проверят VIN и комплектацию автомашины по фотографиям, которые предоставляет заказчик проверки. Основная аудитория “Автодетектива” – Б2Б-сектор, в частности страховые компании и крупные игроки рынка вторичной продажи автомобилей. Команда предоставляет экспертизу такого уровня, который недостижим для внутренней службы безопасности, и позволяет значительно снизить риски и издержки.
Значительная часть работы эксперта с заявкой состоит в изучении предоставленных фотографий, сборе из различных источников данных по VIN-номеру и сравнении их с тем, что представлено на фото. На то, чтобы получить данные из внешних каталогов, набор которых отличается у разных марок авто, уходит много драгоценного времени, а решение по заявке необходимо передать заказчику в течение 20 минут. Отсюда родилась потребность в автоматизации рутинных действий по сбору информации из разных источников и предоставлении удобной формы работы с заявкой.
Важно максимально упростить работу с приложением для экспертов, система должна принимать самостоятельно все решения, в которых можно обойтись без уникального человеческого опыта и интеллекта. Эксперты же должны сосредоточиться на своих задачах, не тратя время на копирование файлов, переключение статусов и тому подобные технические действия.
- Сокращение трудозатрат экспертов. Людям приходится тратить много времени на выполнение рутинных действий.
- Сокращение срока формирования решения. Партнеры “Автодетектива” ожидают решения уже через 10 минут после отправки заявки.
- Повышение качества решения. Процесс, в котором все зависит от внимательности и аккуратности людей, сильно страдает в качестве. Эту зависимость необходимо уменьшить.
- Накопление внутренней информационной базы. При поиске подозрительных автомобилей важно иметь “под рукой” свои ценные данные, накопленный прошлый опыт.
В первой версии проект представлял из себя достаточно простое решение: на вход поступает VIN-номер авто и пара десятков фотографий. Из этого набора данных формируется заявка, которая в дальнейшем автоматически дополняется данными из внешних ресурсов. Эксперт в удобном интерфейсе изучает все накопленные данные и формирует отчет со своим решением. Он передается заказчику по email или напрямую в его информационную систему.
В следующие годы мы активно внедряли функционал, облегчающий работу экспертам и собирающий на одну платформу все инструменты:
- Сбор данных по VIN-номеру от восьми различных провайдеров. В зависимости от страны производства автомобиля, каталоги отличаются и содержат различное количество полезных данных, из-за чего иногда требуется собирать данные с нескольких источников. В большинстве случаев эти ресурсы не имеют API, поэтому сбор представляет из себя сложный парсинг страниц каталога и извлечение оттуда нужных данных.
- Сбор дополнительных важных данных с других источников. Например, с публичной версии ГИБДД мы получаем историю владения автомобилем и историю штрафов, которые играют важное значение в ряде случаев.
- Мобильное приложение для партнеров и клиентов сервиса. Через него пользователь может войти в свой аккаунт, оформить заявку по требуемому формату, добавить необходимые данные (VIN-номер автомобиля, госномер и прочее). После этого в списке своих заявок клиент может отслеживать статусы, отвечать на вопросы экспертов и в итоге получить отчет по заявке.
- Две версии API для партнеров. У некоторых организаций уже есть свои внутренние информационные системы, в которых ведется собственный бизнес-процесс работы с автомобилями. Поэтому необходимо интегрировать наши системы таким образом, чтобы сотрудникам с их стороны не требовалось делать двойную работу по оформлению карточки автомобиля, а результат работы экспертов автоматически поступал к ним в приложение.
- Полнофункциональный личный кабинет для партнеров. Основные пользователи кабинета – организации, такие как страховые компании или дилеры, и их сотрудники. Здесь руководитель организации может управлять доступами своих сотрудников, выгружать отчеты, а сотрудники могут оформлять заявки и получать решения по ним за считанные минуты.
- Telegram-бот в дополнение к личному кабинету, который значительно упрощает операторам на выезде оформление заявок и работу над ними. Все оформление происходит в привычном и удобном формате мессенджера, а о гарантии доставки фотографий или сообщений уже позаботились инженеры Telegram.
- Нейронная сеть, которая автоматизирует классификацию фотографий автомобиля. Она позволяет сотрудникам “Автодетектива” экономить значительный процент времени, которое до этого уходило на просмотр, фильтрацию и перекладывание фотографий между категориями.
- Сбор данных с каталогов производителей. Большинство из них не предоставляет никаких программных интерфейсов для получения данных. Поэтому сбор данных в основном представляет из себя парсинг веб-ресурсов, а иногда и других, очень экзотических, источников. Парсинг всегда сопровождается рядом серьезных проблем стабильности: ресурсы довольно часто могут менять структуру страниц, добавлять методы защиты от множественных запросов, вводить новые поля в формах и многое другое. В случае подобных изменений логика с нашей стороны просто перестает работать и начинает страдать ключевой бизнес-процесс. К сожалению, избавиться от этого полностью невозможно. Но мы с самой первой версии развиваем максимально гибкий и динамичный инструментарий, который позволяет нам оперативно реагировать на любые сбои. Скорости реагирования же мы достигаем с помощью глубоко интегрированного мониторинга, который несколько раз в минуту “снимает показания” со всех компонентов и уведомляет нас, как только обнаруживается проблема на каком-то из этапов работы.
- Огромное количество данных. Мы собираем и аккумулируем огромные объемы информации об автомобилях во внутренних базах данных. В них хранятся миллиарды записей с различной информацией. Она используется во многих местах системы: из нее формируются срезы и выборки, она подгружается в заявки и появляется у эксперта в нужное время в нужном месте, по ней вычисляются пересечения и когорты и так далее. Как оказалось, мы не были готовы к таким объемам, когда разрабатывали первую версию платформы. Поэтому за прошедшие годы мы снова и снова возвращались к вопросу производительности системы и внедряли еще более совершенные решения, чтобы адаптировать работу к новым реалиям. Мы внедрили высокопроизводительную аналитическую базу данных, современную поисковую систему, NoSQL-базу данных, несколько слоев динамического кэширования и глубоко проработали код для достижения максимальной производительности.
- Миллионы фотографий в высоком разрешении. Для работы экспертам необходимы фотографии в лучшем качестве, поэтому мы не применяем практически никаких методов оптимизации, которые могут исказить изображение. Это приводит к очень быстрому и значительному росту объема файловой базы, которая на данный момент составляет десятки терабайт. Хранить эти данные на сервере – очень накладно и нерационально. Нам потребовалось внедрить интеграцию с внешним S3-хранилищем и добиться того, чтобы работа с ним была максимально “бесшовной” и незаметной для экспертов, ни на секунду не замедляя процесс работы с заявкой. Ситуация усложняется тем, что для некоторых шагов работы с заявкой нам необходимо иметь локальную версию файла, расположенную на жестком диске нашего сервера. Мы разработали специальный алгоритм кэширования файлов на своих серверах, который опирается на частоту использования, время загрузки файла и некоторые другие факторы. Система переносит его в S3 хранилище только тогда, когда скорость доступа перестает играть решающее значение и когда файл становится не нужен здесь и сейчас.
- Нейронная сеть для классификации изображений. В заявку поступает несколько десятков фотографий автомобиля, сделанных заказчиком со своего мобильного телефона. Эти фотографии необходимо классифицировать по 35 группам. К примеру: фото автомобиля спереди, фото автомобиля сзади, салон спереди справа, салон спереди слева, отсек двигателя и так далее. До внедрения нейронной сети, эти фото раскладывал по типам либо сам заказчик, либо оператор с нашей стороны, а иногда и вовсе эксперт. Этот процесс может отнимать у команды “Автодетектива” до 20% времени, выделенного на работу с заявкой, что составляет несколько часов в день. Поэтому мы приняли решение полностью автоматизировать этот процесс. На первый взгляд, задача казалась достаточно простой, но когда мы собрали первый набор данных для обучения из 10 000 фотографий, мы осознали, что высокой точности будет добиться очень и очень непросто. Дело в том, что фотографии делают сотни разных людей, с различными устройствами и параметрами съемки, в разном освещении, в разное время года. Мы сильно удивились, увидев фотографии автомобиля, полностью покрытого снегом. Самих автомобилей и вариантов исполнения каждой детали – бесчисленное множество. Рассказ о том, как мы решили эту задачу и с какими сложностями столкнулись по пути, заслуживает отдельной статьи, которую мы обязательно напишем. Здесь упомянем лишь то, что проблему удалось решить и полностью передать задачу классификации “искусственному интеллекту”. Он обрабатывает три десятка фотографий за 1-2 секунды и тем самым освобождает несколько минут времени экспертов, которые, в свою очередь, вкладывают это время в более качественную проработку заявки.