Сеть магазинов товаров для дома, 40 000 позиций в каталоге. Покупатель видел лампу у знакомых, фотографировал, а дальше тупик: текстовый поиск требовал название, которого никто не знал. Ниже история одной функции: от выбора метрики до ревью в сторах.
Клиент под NDA: имя не разглашаем, потому что связаны договором о неразглашении, для наших контрактов это обычное условие. Отрасль, задача, ход работ и цифры настоящие.
Запросы вида «такая же, как на фото» приходили в чат поддержки, и операторы честно листали каталог глазами. Большинство покупателей не писали никому: просто уходили искать по картинке туда, где это работало.
Команда приложения понимала, что теряет корзины, но не могла оценить сколько. Замер на пилоте показал: заметно больше, чем закладывали в худшем сценарии.
Одна функция с измеримым эффектом: поиск по фото, метрика: добавление в корзину. Никакого «ИИ вообще» в задаче не было.
За две недели собрали прототип на живом каталоге и прогнали через него настоящие фото покупателей: мятые, тёмные, под углом.
Фото разбирается на телефоне, в облако летит только запрос к каталогу. Батарею не ест, персональные данные не путешествуют.
Пакет для сторов собрали до отправки: возрастной рейтинг, жалобы на контент, описание данных. Ревью прошли с первого раза.
«Мы нарочно тестировали на худших фото: ночная кухня, полсветильника в кадре, палец на объективе. Когда поиск стал справляться и с такими, стало ясно, что функция готова к живым людям.»
От первой встречи до сборки в сторы прошло восемь недель. Поиск отвечает за секунду, добавления в корзину выросли на 12 %, и это на функции, которую покупатели даже не просили вслух: они просто уходили без неё.
Услуга по теме: направление 03 «ИИ для разработки» · все кейсы студии
Фотография превращается в набор признаков, и по нему ищется ближайший товар каталога. Тяжёлое считается там, где есть ресурсы.
Поиск по фото оправдан там, где покупатель не знает названия: мебель, свет, сантехника, отделка, запчасти. В категориях, где ищут по бренду и модели, он не нужен.
Порог по каталогу примерно от пяти тысяч позиций, и у каждой должна быть приличная фотография. Каталог из тысячи товаров человек пролистает глазами быстрее, чем сфотографирует. Ещё одно условие: у вас уже должно быть приложение, встраивать функцию в несуществующее приложение мы не беремся.
Прирост корзины на 12 процентов сравнивался не со всем приложением, а с сопоставимой группой пользователей.
Функцию выкатывали постепенно: сначала половине пользователей приложения. Прирост считали между теми, у кого поиск по фото появился, и теми, у кого его ещё не было, за один и тот же период. Это убирает сезон и рекламу из расчёта.
Добавление в корзину считали по событию аналитики приложения, а не по продажам: между корзиной и оплатой стоит слишком много всего, и приписывать себе выручку было бы нечестно.
Секунда на распознавание это медиана по замерам на устройствах пользователей, а не на нашем сервере. Мы отдельно смотрели старые телефоны: там время доходило до двух с половиной секунд, и это тоже вошло в выборку.
Поиск по фото красиво выглядит на демонстрации и по-настоящему настраивается на снимках покупателей. Три вещи с пилота, которые вошли в шаблон.
В каталоге товар снят на белом фоне при студийном свете, а покупатель фотографирует лампу в тёмной комнате. Точность подняли не улучшением модели, а добавлением в поиск фотографий из отзывов покупателей. Теперь это первый шаг для любого визуального поиска.
На телефонах старше четырёх лет локальная обработка была тяжёлой. Разделили: на новых считаем на устройстве, на старых отправляем сжатый кадр на сервер. Правило: список поддерживаемых устройств уточняем до архитектуры, а не после.
Магазинам приложений нужно понятное объяснение, зачем доступ к камере, и общей формулировки мало. Переписали текст запроса и описание функции, прошли с первого раза. Теперь тексты для ревью готовим вместе с функцией, а не в последний день.
Мобильная функция это не только модель: есть ещё сторы, ревью и старые телефоны.
На ревью в сторах мы всегда закладываем запас. Здесь повезло, но планировать проект впритык к дате релиза нельзя.
Назовите каталог и функцию, которой не хватает: посчитаем эффект и срок до сборки.