Премиальный lifestyle-магазин собрался продавать в Telegram и хотел, чтобы товар там искали разговором.
Ассортимент разложен по десятку категорий, позиций несколько тысяч, и покупатель в них тонет.
Запрос у него звучит задачей - подарок партнёру на юбилей с бюджетом до пятнадцати тысяч, что-то в спальню под тёмное дерево.
Фильтр по цене и категории на такое не отвечает, человек листает витрину и уходит.
Раньше подбором занимался консультант в переписке, вечером и в выходные ответа ждали до утра.
Владелец хотел, чтобы первый круг подбора магазин закрывал сам и круглосуточно, и не предлагал товары, которых у него нет.
В Mini App обычная витрина, а поверх неё ИИ-консьерж, работающий по тому же каталогу.
Описания товаров прогоняются в векторный индекс, поиск идёт по смыслу - запрос про что-то тёплое в спальню находит плед, у которого в названии нет ни одного слова из запроса.
Найденные позиции уходят в модель, она собирает ответ и объясняет, почему предложила именно их.
Это главное, что ломается в таких ботах: модель охотно придумывает товар, которого у магазина никогда не было, и покупатель приходит за ним в чат.
Закрыл жёстко - в промпт попадает только выборка из базы, идентификаторы позиций сверяются перед отправкой ответа, чего нет в выборке, до покупателя не доходит.
Если подходящего в каталоге нет, консьерж прямо говорит об этом и показывает соседнюю категорию.
Карточки внутри ответа кликабельные, дальше идёт обычная корзина, выбор доставки и оплата картой или СБП.
Индекс пересобирается при изменении каталога, то-есть новый товар доступен консьержу сразу после сохранения в админке.
История диалогов пишется в базу, владелец видит формулировки покупателей и запросы, на которых подбор ничего не нашёл.
Стек - Python, aiogram 3, Mini App, PostgreSQL, векторный поиск по описаниям товаров, модели через сервис OpenRouter, VPS.
Через консьержа за первый месяц прошло около четверти заказов, остальное покупатели набрали руками в витрине.
Ночные обращения перестали висеть до утра, это была основная претензия к магазину.
Владельцу осталась админка на товары, категории и заказы, лог диалогов с отметкой пустых подборов и инструкция, как править характер ответов консьержа без разработчика.
По этому логу магазин уже дозакупил две позиции, которые спрашивали регулярно.
После сдачи добавили ограничение длины диалога и кеш повторяющихся запросов, расход на модель упал примерно вдвое.