Как мы пилотировали AI-сомелье для покупателей «Ленты»: подробный кейс создания и тестирования прототипа винного ассистента на GPT-4o mini

2025-05-22 12:42:41 Время чтения 15 мин 1023

Разработали AI-ассистента на базе GPT-4o mini, который помогает выбирать вино с товарной полки покупателям в магазине «Лента». Протестировали на пользователях и сделали множество интересных выводов.

Проблема: Выбрать вино с полки не просто даже для опытного сомелье

Вы стоите перед огромной винной полкой магазина: десятки производителей, множество красивых бутылок, виноградных сортов, регионов и вариаций — но какую выбрать на ужин к мясу, встречу с друзьями или в подарок? Даже если вы разбираетесь в винах лучше среднестатистического покупателя, выбор неизбежно становится сложной задачей. Почему так происходит?

  1. Запрос покупателя сложно сопоставить с характеристиками вина. Сорта винограда, кислотность, танины и материал бочки интересуют гурманов. Рядовой покупатель часто задается вопросами о подборе вина к конкретному блюду или на определённый повод. Например, подойдет ли сухое альбариньо к мясу или в подарок юбиляру — совершенно непонятно.
  2. Необходимость внимательно вычитывать этикетки. Даже если вы можете четко сформулировать для себя: мне нужно вино к стейку, я люблю сорт Каберне-совиньон и хочу сухое, локальная навигация на винной полке не всегда поможет. Обычно вина делят по странам. Хорошо, если на ценнике будет обозначение «сухое». Для поиска сорта винограда придется просматривать все бутылки, а для детального анализа — читать содержание этикетки внимательно.
  3. Отсутствие рейтингов и отзывов на полке усложняет поиск хорошего вина. Частично эту задачу решает мобильное приложение Vivino с рейтингами, но чтобы увидеть оценку, нужно сканировать каждую понравившуюся бутылку. Это также не ускоряет процесс.

Как бы это ни было печально, основное правило выбора рядового пользователя — подороже и не из России, значит, хорошее. Может, это и не так уж плохо с точки зрения продаж, однако отсутствие нормального решения проблемы выбора вина для пользователей — это точка роста.

Как работает AI-сомелье: путь пользователя за 60 секунд

Вместо чтения этого раздела рекомендуем зайти и протестировать самостоятельно. Сразу предупреждаем — это прототип, разработанный для тестирования применимости генеративных LLM в задачах продаж товаров. Тесты на пользователях прошли, мы собрали необходимые данные и остались довольны результатом, после чего перешли к следующей итерации разработки. Если после публикации в бот набежит слишком много пользователей, мы отключим бота. Ссылка: https://t.me/LentaSommelierBot

Если протестировать не удалось или не захотелось, то вот описание процесса:

  1. Пользователь приходит в любой магазин «Лента» по всей России и делится своей геопозицией в Telegram-боте.
  2. Мы автоматически распознаем, в каком магазине находится пользователь, чтобы рекомендовать только те товары, которые есть в фактическом наличии на полке, ведь ассортимент в разных магазинах может сильно различаться. 
  3. Пользователь задаёт свой запрос на естественном языке, например: «Что-то легкое на девичник», «Вино к шурпе», «Сухое красное выдержанное в дубовой бочке до 2000 рублей», «Совиньон Блан с хорошим рейтингом», “Вино с яркими минеральными и фруктовыми нотами”
  4. Обрабатываем запрос и предоставляем три варианта красиво оформленных карточек товара с фото, ценой, рейтингом и уникальным продающим текстом, созданным в соответствии с запросом. Если пользователь спрашивает о "вине с низкой кислотностью", в описаниях нужно обязательно указать, почему именно эти бутылки соответствуют этому запросу.

Пользователь видит следующее: 

Рекомендация на запрос "вино к шурпе"

Под капотом: Путь везения от идеи до прототипа

1. “Data is King”: Разметка каталога вин с привлечением соммелье или как нам крупно повезло

Главным вызовом на старте работ стал не процесс разработки технологии, а сбор и подготовка данных о каталоге вин. Почему одно вино подходит к баранине, другое — на девичник, а третье — в подарок — это тайна, недоступная обывателю. И здесь нам повезло: некоторое время назад «Лента» реализовала проект, целью которого было подробное описание каталога вин с привлечением сомелье. В результате на сайте у большинства вин появились качественные и информативные описания, которые облегчают пользователям выбор. Сомелье вручную разметили более 1000 позиций по десяткам различных параметров, среди которых были как бытовые:

  1. Соответствие событию (встреча, подарок, праздничное событие и т.д.)
  2. Сочетаемость с блюдами (сыры, морепродукты, мясо, десерты и др.)
  3. Рейтинги

Так и узконаправленные:

  1. Регион происхождения
  2. Кислотность и танины
  3. Тип емкости выдержки (бочка, сталь…)
  4. Ароматические и вкусовые ноты

Работа заняла несколько месяцев и стала серьезной основой для AI-соммелье. Экспертную разметку мы долго приводили в машиночитаемый вид, но стоит отдать должное: без их труда вся история с AI-соммелье была бы принципиально невозможной.

2. Почему остановились на формате AI-ассистента в Telegram?

Целевая модель работы ассистента — InApp чат, который удерживает пользователя в мобильном приложении. Однако реализация InApp технологий, даже на уровне WebView, добавляет минимум пару месяцев на разработку и тестирование, а также отвлекает команду разработки основного приложения от приоритетных задач. Поэтому на первом этапе мы решили ограничиться быстро собираемым прототипом в Telegram. Если технология заработает в Telegram, можно будет приступить к разработке полноценного решения InApp.

3. Почему OpenAI, а не отечественные LLM

На начальном этапе мы протестировали три варианта:

  1. YandexGPT: на момент запуска проекта осенью 2024 года он не поддерживал необходимый нам function calling, но с конца февраля 2025 поддержка появилась.
  2. GigaChat: на момент тестов работал не достаточно стабильно для полноценного продуктового решения даже на уровне пилота.
  3. OpenAI: поддерживает function calling и оказался самым стабильным среди конкурентов. Хотя стабильность — относительное понятие, о чем чуть ниже.

Таким образом, на момент выбора базовой модели (осень 2024 года) у нас не было особого выбора, и мы решили использовать OpenAI. В планах — повторный тест отечественных LLM, так как что-то серьезное делать через прокси было бы неправильно.

4. Как мы определяем, какие вина есть на полке конкретной «Ленты» и где нам крупно повезло во второй раз?

Пару лет назад мы реализовали видеоплеер для товарных карточек мобильного приложения «Ленты». Благодаря этому видеоплееру у нас появился API-доступ к данным об актуальных остатках и ценах в разных магазинах.

Определение магазина для пользователя — еще более простая задача. Получая данные о геолокации через Telegram, мы можем вычислить ближайший к пользователю магазин. Отсутствие необходимости интеграции с Лентой по товарным данным сократило реализацию пилота на несколько месяцев.

5. Главный вызов проекта: «галлюцинации» AI

Любая LLM (Large Language Model) в той или иной степени «галлюцинирует», выдавая недостоверную информацию или «придумывая» лишние сведения. С точки зрения разработки такие галлюцинации мешают предоставлять пользователю стабильный результат выполнения его запроса. Например, LLM может в 98 случаях из 100 выдать запрашиваемую информацию, но в 2 из 100 прислать совершенно не то, что указано в инструкции.

Это происходит по нескольким причинам: 

  1. Свойство технологии: модель с определенной вероятностью прогнозирует каждый следующий символ ответа. Поскольку это «вероятность», она может выдать совершенно не то, что от нее ожидают. 
  2. Чем сложнее запрос (длиннее промпт), тем выше вероятность, что часть инструкций не будет выполнена или будет выполнена с ошибкой.

С точки зрения пользователя, галлюцинации могут приводить к неправильным рекомендациям. Поэтому использование LLM в задачах с высокой стоимостью ошибки не всегда оправдано. Например, если порекомендовать пользователю неверный плиточный клей, вся приклеенная плитка может отпасть. В то же время, если ошибка случится в рекомендациях по вину, большинство пользователей, вероятно, не заметят этого.

6. Борьба с галлюцинациями и бюджетом

Бороться с галлюцинациями можно разными способами. Один из вариантов — использовать более мощные модели, менее подверженные этому явлению. Изначально мы рассматривали полную модель GPT-4o, но быстро отказались от этой идеи из-за высокой стоимости: затраты на один диалог с пользователем измерялись бы в рублях, что для юнит-экономики продаж слишком дорого. Поэтому выбор пал на GPT-4o mini с дальнейшей оптимизацией для минимизации галлюцинаций.

Загрузка всех известных параметров бутылок увеличила бы объем промпта до неприемлемого уровня, а вероятность ошибок возросла бы бы выше 50%. Чтобы сократить промпт, мы перенесли часть функционала поиска бутылок на наш сервер и обеспечили доступ к нему через API. Мы обучили модель вызывать нужную функцию поиска через механизм Function Calling и затем итеративно сократили промпт и описание функции, добиваясь стабильной работы.

В итоге в функции остались популярные сорта винограда, сочетаемость с блюдами, соответствие случаям (праздники, подарки), кислотность, танины, страна происхождения, ароматика (фрукты, специи), плотность тела, емкость бочки выдержки и несколько технических параметров. 

На тестирование на живых пользователях ушло пару месяцев, в течение которых мы узнали, что на самом деле ищут пользователи, и адаптировали промпт и структуру хранимых данных под реальные запросы.

7. Наводим марафет

LLM прекрасно работают с текстом, но вопросы оформления все равно остаются на нашей стороне. Поэтому на финальном этапе мы берем ответ от LLM, добавляем фото, название бутылки, цену, рейтинг и ссылки на карточку товара в каталоге магазина Лента. В результате пользователь видит три красиво оформленные карточки, которые не просто формально соответствуют его запросу, но и имеют уникальные описания для каждой бутылки, раскрывающие, почему именно эта бутылка подходит пользователю. То есть мы активно продаем.. 

Вау, а что так можно было? Что еще рассказали нам пользователи?

  1. Вау, а что так можно было - это обычная реакция пользователей на первый опыт взаимодействия
  2. Пользователи быстро осваивают новый подход к подбору вин. Не нужно дополнительных инструкций. 
  3. Несмотря на хайп вокруг генеративных LLM, массовый пользователь не имеет опыта работы с ними. Большинство пользователей вначале используют бота как поисковую строку, которая отвечает исключительно на запросы и не сохраняет контекст предыдущих обращений. Осознание того, что LLM хранит контекст переписки и позволяет уточнять предыдущие запросы, приходит не сразу.
  4. Те пользователи, которые имеют опыт общения с GPT, легко переходят в диалоговый режим и ведут беседу с пониманием, что контекст хранится. Однако таких пользователей не так много
  5. Уникальные описания, объясняющие, почему именно эта бутылка подходит под запрос, создают второе «ВАУ» у пользователей, после "А что, так можно было?". Многие считают, что описания к бутылкам прописаны заранее, и искренне радуются, когда находят бутылку с описанием, точно соответствующим их запросу.

Главные уроки разработки AI-ассистента для вин:

  1. Больше всего времени ушло не на разработку, а на подготовку данных: разметка данных для работы ассистента это ключевой этап проекта внедрения AI-ассистента
  2. Промпт должен быть максимально коротким: чем больше промпт, тем больше ошибок
  3. Function calling — must-have для точных рекомендаций продуктов: именно эта технология позволяет работать с товарными каталогами
  4. Новые технологии дают новый пользовательский опыт

Экономика и перспективы развития

Если стоимость подбора бутылки вина, требующего экспертности, измеряется в копейках, то этот опыт можно легко масштабировать на другие категории товаров с низкой стоимостью ошибки. Этой задачей мы сейчас и занимаемся. 

Также опыт с сомелье позволил нам запустить собственную платформу для создания AI-ассистентов. На ней мы разрабатываем ассистентов для различных категорий товаров и услуг и внедряем бизнесу решения. Буду делиться кейсами внедрения ассистентов. Если вы хотите внедрить ассистентов в свои продажи, обращайтесь. Телеграм: https://t.me/shayahmetov.

Философский итог: 

Начался процесс замены еще одного костыля пользовательских интерфейсов — фильтров в каталогах товаров. Фильтры — полезный инструмент, когда вы хорошо разбираетесь в специфике товара и хотите быстро просмотреть доступные варианты. Однако, как и все специализированные инструменты, они требуют освоения и понимания предметной области. Мы научили LLM использовать фильтры для решения задач покупки вина. Остальные категории товаров уже не кажутся такими сложными.

Попробуйте объяснить 80-летней бабушке, как пользоваться фильтрами при покупке новой газовой плиты для квартиры. Скорее всего, она не поймет. А вот воспользоваться AI-ассистентом, куда можно записать голосовое сообщение, она точно сможет.