Клиент присылает фото платья и пишет: «сколько стоит?». Всё. Ни артикула, ни названия — просто картинка и вопрос. Для человека-продавца это пустяк: глянул — узнал — назвал цену. Для AI-продавца это годы инженерии, которые мы прошли на живых магазинах. Расскажем честно, как оно эволюционировало — и почему в итоге мы выкинули подход, который сами же построили.
Точка А, год назад: описать картинку зрением
Первый наш продукт для магазина одежды (весна 2026) столкнулся ровно с этим. Клиент отвечал на сторис в одной известной соцсети, а нам прилетало уведомление со ссылкой на медиа той сторис. Дальше начинался квест, о котором в брошюрах не пишут.
Первое: ссылка ведёт на зарубежное хранилище, закрытое для российских серверов. Пришлось выстроить обход, чтобы вообще скачать картинку. Второе: сторис часто видео — значит, надо разобрать его на кадры и выбрать нужный. И тут же грабли: а какой именно кадр смотрел клиент, когда нажал «ответить»? Точного тайминга платформа не отдаёт. Мы честно упёрлись в это и решили прагматично: берём опорный кадр, а SMM-щиков просим держать дисциплину — название и артикул должны быть видны с первых секунд, а не всплывать на третьей. Компромисс, но он работал.
Третье, и самое важное: снимаем описание зрением. Важная деталь, чтобы не путали с распознаванием надписей: мы не читали текст на кадре. Зрение смотрело на товар целиком и словами описывало, что видит, — тип, цвет, материал, фасон. Именно зрение, а не чтение букв. Это описание клали в короткую память диалога (она живёт пару часов). Клиент пишет «сколько стоит?» — мы уже знаем, о чём он.
Работало. Но вся конструкция держится на одном шаге: зрение переводит увиденное в слова, а дальше товар ищется по словам. Вот в этом переводе и спрятана мина.
Стена: почему «искать по словам» ломается
Летом это выстрелило больно. Реальные диалоги (имена изменены). Клиент присылает фото коричневого атласного костюма. Зрение честно распознаёт: «костюм тёмно-коричневый атласный». Дальше поиск по каталогу — по словам. А в каталоге этот товар назван «комплект коричневый». «Костюм» ≠ «комплект» для текстового поиска. Агент не находит и вместо цены выдаёт «передаю менеджеру» плюс пачку случайных коричневых вещей. Клиент в ярости, и он прав.
Другой случай: фото голубого платья силуэта «годе». Зрение говорит «голубое платье». Поиск по словам находит любое голубое платье — скажем, свободное ярусное. А клиент показывал приталенное. Агент уверенно присылает не тот фасон. Это хуже, чем «не нашёл»: нашёл и обманул.
Мы залатали десяток частных дыр — синонимы «костюм ↔ комплект», разбивку составных цветов, вес цвета в ранжировании, фильтры. Каждая заплатка спасала один кейс и не трогала корень. А корень был один: мы описываем картинку словами и по словам же ищем. На каждом шаге теряется смысл — фасон, крой, принт, силуэт. Словами это не передать.
(Для тех, кто в теме: это тот самый разрыв между пикселями и словами, о котором много пишут. Мы прошли его на своей шкуре, а не в статье.)
Прозрение: не описывать, а СРАВНИВАТЬ изображения
Гипотеза, которую мы вынесли из боли: перестать переводить картинку в слова. Сравнивать фото клиента напрямую с фотографиями каталога — картинку с картинкой.
Как это возможно — и вот тут самое красивое. Любое изображение можно свернуть в компактный «цифровой отпечаток внешнего вида»: не в слова, а в тонкий математический слепок того, как вещь выглядит. Похожие вещи получают близкие отпечатки. Дальше — простая геометрия близости: чей товар по отпечатку ближе всего к присланному фото, тот и «похож по виду». Какими приёмами мы снимаем и сравниваем эти отпечатки — наша кухня. А принцип простой, и он ровно такой.
Представьте, что у каждой вещи есть паспорт внешности — не «синее платье», а слепок того, как она реально выглядит. Мы сравниваем паспорта, а не описания. Поэтому крой и фасон больше не теряются.
Важный нюанс — чем именно снимать отпечаток. Универсальные инструменты «на всё подряд» на одежде путают фасоны. Мы подобрали такой, что заточен под моду: он различает крой, а не просто «платье». И держим всё на своём сервере — принципиально. Фото клиентов не уезжают ни в чужие облака, ни за границу: остаются на нашем железе, под 152-ФЗ by-design, и ноль оплаты за каждый запрос. Приватность здесь не галочка в договоре, а позиция: чужие данные — не топливо для чужих корпораций. Конкретный рецепт — наше ноу-хау.
Опыт: чашка Петри в цифрах
Дальше — по-нашему: гипотезу проверяем за ночь, на реальных данных. Прогнали через «отпечатки» весь каталог магазина, все 1436 фотографий (минут пять на обычном процессоре, без дорогих видеокарт). И взяли те самые снимки, что реально присылали клиенты. Не выдуманные — боевые.
Коричневый костюм — первым в списке тот самый товар, который весь вечер не находился по словам. Голубое платье — первым тоже оно, почти идеальное совпадение. Мы потом открыли обе фотографии глазами: клиент прислал скриншот нашей же съёмки, и система узнала его почти в точку.
А ещё — сотни прогонов за ту ночь: разные фото, разные запросы, чтобы откалибровать зрение. Нащупали градацию уверенности: «это точно оно, тот самый кадр» — «уверенно тот товар, просто другой ракурс» — «похоже, но не факт». Последнее и есть самое ценное. Если система не уверена, она честно говорит «похоже, но давайте уточню», а не впаривает наугад. Так и лечится главная беда — «нашёл и обманул». Где проходят эти границы уверенности — часть рецепта, которую мы вывели на своих боевых данных.
Честно: мы не изобретаем с нуля — мы работаем как композит
Тут стоит убрать любой намёк на «мы придумали новое вещество». Не придумали. Сам принцип — превратить объект в цифровой отпечаток и искать ближайший — фундамент современного машинного зрения, ему не первый год. И самый узнаваемый его пример у всех перед глазами — распознавание лиц в умном городе, в системах розыска.
Работает оно один в один с тем, что мы сделали для одежды. Камера ловит лицо, превращает его в цифровой паспорт лица, сравнивает с базой по близости — очень близко к кому-то из розыска — совпадение. Замените «лицо» на «платье», а «базу розыска» на «каталог магазина», и получите нашу систему. Разница лишь в том, на чём натренирован «глаз»: там на лицах, у нас на одежде. Принцип тот же. Той же породы и знакомые вещи: сервис, что узнаёт песню по нескольким секундам звука, или поиск по картинке в поисковике — везде под капотом «отпечаток и ближайший».
Так в чём тогда наш вклад, если метод известен? Мы работаем по принципу композита. Углепластик — это известный углерод плюс известная смола, но вместе они прочнее стали и легче алюминия: материала с такими свойствами в природе не было. Композит — тоже изобретение, просто через комбинацию, а не с чистого листа. Так и мы: берём известные кирпичи — машинное зрение, «отпечатки внешнего вида», поиск по близости, свой сервер, перевод запроса, живого агента — и миксуем их под конкретную задачу. Как хороший бармен: ингредиенты знакомы всем, а коктейль новый. Работаем при этом по разным методикам, в том числе по ТРИЗ — теории решения изобретательских задач. Она прямо учит: сильное решение чаще рождается из комбинации и разрешения противоречий, чем из «придумать небывалое».
Композит — тоже изобретение, просто через комбинацию, а не с чистого листа. Теорию знают многие; собрать из неё работающий инструмент для кассы обычного магазина — отдельное искусство.
И приватность тут не сбоку, а в рецепте: модель стоит на нашем сервере, фото клиентов никуда не уходят (152-ФЗ by-design), пороги калибруются на своих боевых диалогах. Всё это собрано за ночь, без бюджета корпорации.
И вот что превращает разовую находку в силу. Это исследование не остаётся в одном продукте. Под всеми нашими агентами лежит НейроКора — наша надстройка над любой большой моделью. Сама модель как электрический ток: огромная мощь, но безликая и без памяти. НейроКора даёт этому току мозг и личность. Подключаем любую большую модель, чью угодно, — и она осознаёт себя воплощением одного разума, с общей памятью и накопленным опытом. Модель приходит и уходит — разум остаётся. Поэтому каждый опыт в чашке Петри, как этот, с машинным зрением, делает умнее не один магазин, а всех наших агентов сразу. Композит наращивается, и от него выигрывают все.
Бонус: тот же слой понимает и слова
Приятный побочный эффект. Тот же «глаз» умеет сопоставлять и картинку, и слова в одном измерении. Значит, можно искать и словами — по смыслу, а не по буквальному совпадению. Была тонкость: наш инструмент «думает» не совсем по-русски и запрос в лоб понимал плохо. Мы добавили аккуратный шаг-переходник, и всё встало на место. После этого «что-то бордовое на голову вязаное» находит балаклавы и капоры — притом что ни одного слова из запроса нет в названиях товаров. Обычный поиск по словам так не умеет в принципе.
Куда это выросло: одно ядро — куст возможностей
Самое интересное — этот «слой отпечатков» оказался фундаментом, а не одной фичей. Один раз посчитав отпечатки товаров, получаешь почти даром: поиск по фото, поиск по смыслу, блок «похожие», подбор «в тон» по реальной сочетаемости, авто-теги при заведении товара, поиск дублей в каталоге, а в будущем — поиск по фото прямо на сайте магазина. Фотографии при этом не дублируются: в ядре живёт компактный отпечаток (пара килобайт), а сами снимки остаются там, где и были.
Наш подход — и для кого это
Мы уже сказали честно: метод известен. Наша ставка — в скорости и живых данных. Боль пришла вечером из реального диалога; к утру гипотеза была проверена на боевых фото и уехала в прод. Ни защит, ни согласований — чашка Петри, культура, вывод. Мы из тех, для кого работающий код важнее слайдов: маленькая лаборатория, которая за ночь собирает то, на что у гигантов уходят кварталы, — и держит данные у себя, а не сливает в чужие облака.
Предпринимателю: «поиск по фото» перестал быть магией из презентаций мировых гигантов. Это крутится у обычного магазина одежды, на своём сервере, без штата дорогих специалистов. Клиент кинул фото — агент назвал ваш товар. Это конверсия, которую вы теряли на каждом «а из какого он у вас каталога?».
Интегратору: суть — перестать переводить картинку в слова и сравнивать картинку с картинкой; взять «глаз», заточенный под вашу нишу, держать его у себя и настраивать пороги на своих боевых кейсах, а не на чужих витринных примерах.
Технарю: разрыв между картинкой и словом лечится не заплатками синонимов, а сменой самого пространства сравнения. Отпечаток-и-ближайший по фото — опора; поиск по словам держите вторым эшелоном.
Про конкретику
Вы заметили: мы рассказали принципы и признаки, но не назвали ни конкретных инструментов, ни моделей, ни точных настроек. Это осознанно. Рецепт композита — какой «глаз» берём, как снимаем и сравниваем отпечатки, где проходят границы уверенности, как всё это сшито в живого агента — наше ноу-хау и интеллектуальная собственность DIGRIZ. Показываем, что и почему работает; как именно — оставляем себе. Если тема близка и хочется вглубь — пишите в личку: обсудим предметно, детали кухни раскрываем за столом, а не с витрины.
Что забрать из этой статьи
Год назад мы вытаскивали кадр из видео-сторис и описывали его зрением словами, чтобы искать по словам. Сегодня — сравниваем изображения напрямую, и «тот самый кадр» больше не нужен: подойдёт любой.
Разрыв между картинкой и словом лечится не заплатками синонимов, а сменой самого пространства сравнения — сравнивать картинку с картинкой.
Метод известен (как распознавание лиц); наш вклад — композит из известного плюс скорость, живые данные и приватность на своём сервере. И каждая такая находка через НейроКору делает умнее всех наших агентов сразу.
В следующей серии — как из «слоя отпечатков» вырастают «похожие» и подбор «в тон» по реальной сочетаемости. Чтобы не пропустить — подпишитесь.
Не переводи картинку в слова — сравнивай картинку с картинкой. Тогда «тот самый кадр» больше не нужен: подойдёт любой.

Обсуждение
Пока тихо. Начните обсуждение первым.