Хроника ниже сводная: она собрана из ходов, которые повторяются, а не пересказывает конкретный проект. Повторяются они потому, что повторяется устройство самого бизнеса: много магазинов, тонкие каналы, программа лояльности с частными покупателями и категорийный отдел, который держит цены. Каждый следующий шаг выглядит разумным — и именно поэтому цепочка доходит до конца.
День первый: выгрузка ради сегментации
Начинается не с сервера, а с таблицы. Маркетингу нужно разложить покупателей по поведению — кто берёт детское, кто уходит после первой покупки, кому предложить категорию рядом. Из системы лояльности выгружаются телефоны, даты и состав покупок, файл загружается во внешний сервис с моделью, потому что «там удобнее спрашивать словами».
На заводе в такой момент наружу уезжает документ. Здесь уезжает список живых людей: частные покупатели, которые с вами ничего, кроме анкеты на карту лояльности, не подписывали. Открывать надо свою анкету: если передача данных оператору стороннего сервиса в ней не описана, выгрузка — это не техническая операция, а действие, которому нужно отдельное основание. Связка «человек — покупка» держится крепче, чем кажется: если покупатель просил электронный чек, его телефон или адрес почты лежит рядом с составом корзины.
Ход второй: пилот ставят в магазине
Кто-то замечает, что данные чувствительные, и делается вывод: раз наружу нельзя — поставим модель внутри. Дальше срабатывает привычка мыслить одним зданием, и модель ставят туда, где нашлось свободное железо, — в магазин.
Розница ломает этот ход на топологии. Магазинов много, у каждого свой канал, и на этом канале приоритет отдан кассовому узлу и платежам — их нельзя подвинуть ради чата. Вторая проблема тише: сеть неоднородна. Формат, ассортимент, цены и промо у магазина в торговом центре и у магазина у дома разные, и вывод, снятый на одной площадке, на остальные не переносится.
К концу недели: в чат заходит смена
Модель подключают к базе лояльности целиком — «чтобы отвечала на вопросы про покупателей». Разграничение доступа откладывают на потом: пилот же. В офисе на одном этаже это ещё как-то держится на том, что все друг друга видят. В рознице в чат заходит вся смена, и состав смены меняется.
Вопрос вида «кто у нас чаще всего берёт вот эту позицию» возвращает телефон конкретного человека и его историю покупок. Это уже не утечка наружу — это доступ внутри, которого не должно было быть. И следа он не оставляет: если обращения к модели не пишутся в журнал, потом не восстановить ни кто спрашивал, ни что ему показали.
Через месяц: рассылка, которую собрала модель
Модель собирает сегменты и черновики предложений, выгрузку отдают в рассылку по всей базе. Здесь включается ограничение, о которое завод или перевозчик не спотыкаются: у них на том конце контрагент, а у розничной сети — частный абонент со своим номером. Реклама, которую распространяют звонками и сообщениями, допускается только при предварительном согласии абонента, причём доказывать, что согласие было получено, обязан тот, кто рассылал; отдельно закон о рекламе не допускает автоматическую рассылку и автодозвон без участия человека.
Область у нормы своя: она про рекламу. Сервисное сообщение о готовности заказа рекламой не является, но граница проходит по содержанию конкретного текста и по каналу, и проверять её стоит с юристом, а не на глаз. Для контура вывод практический: отметка о согласии на рекламные сообщения — отдельное поле, не то же самое, что согласие на обработку данных, и модель обязана видеть его до того, как предложит сегмент.
Тем временем в общий индекс попал календарь промо
Пока разбираются с рассылкой, в базу знаний для модели загружают «всё полезное»: регламенты кассира, инструкции по возврату, а заодно файлы категорийного отдела. Предмет тайны в рознице — не рецептура и не маршрут: это закупочная цена по позиции и наценка, условия и бонусы поставщиков, календарь промо с датами и глубиной скидки, планограмма и планы открытий.
Цена утечки календаря промо измеряется не штрафом, а выручкой: тот, кто узнал дату и глубину заранее, выставит своё предложение раньше вас. Когда закупка лежит в одном индексе с инструкцией кассира, вопрос про товар вытаскивает и закупочную цену — модель не знает, что это разные слои, пока слои не разведены. Разводить их надо до загрузки документов, а не после первого неприятного ответа.
И параллельно: обращения, которые приняли за клиентские
Пока идёт пилот, поддержка получает поток обращений. Фальшивое обращение в рознице не похоже ни на спам, ни на подложную заявку от организации: оно выглядит как обычная просьба покупателя, и в этом весь расчёт.
- •«Потерял карту, перенесите баллы на другой номер» — при том, что подтверждения уходили на прежний номер,
- •Возврат по чужому чеку: номер настоящий, покупка по нему уже возвращалась,
- •Пачка регистраций в программе лояльности ради приветственных баллов — однотипные почты, одно устройство,
- •Жалоба с обещанием жаловаться дальше — ради сертификата или скидки,
- •Запрос на счёт для организации, где реквизиты в тексте не сходятся с названием в подписи.
Модель здесь — фильтр и память: поднимает историю по карте лояльности, сверяет, куда уходили подтверждения, и выносит расхождение оператору. Списание баллов и решение по возврату подтверждает оператор. Как устроен помощник поддержки, который отвечает по вашим же регламентам и честно передаёт сложное человеку, разобрано отдельно — чат-бот поддержки без выдумок.
Отдельно держите то, что в поддержку не приходит вовсе: звонок продавцу «из головного офиса» с просьбой продиктовать код из сообщения или срочно оформить возврат наличными. Это давление на сотрудника в зале, а не обращение покупателя, и модель его не видит — разговор не проходит ни через канал поддержки, ни через журнал обращений. Закрывается он не фильтром, а правилом для смены: код из сообщения не диктуют никому, а звонок «из офиса» подтверждают у своего руководителя, а не по номеру, с которого позвонили.
Где надо было ломать: нейросеть для розничной сети без общего чата на всю сеть
У всех эпизодов выше один корень: массивы разной чувствительности свалили в одну кучу и открыли её всем сразу. Разводится это до запуска, и разведение выглядит так:
| Массив | Что в нём у розничной сети | Кому он открыт |
|---|---|---|
| Программа лояльности | телефон и адрес почты, история покупок, баллы конкретного покупателя | роль на обращениях — по одному покупателю за раз, с записью в журнал |
| Продажи и товародвижение | состав корзины по магазину, возвраты, списания, остатки | аналитика на уровне магазина и категории, без выхода на человека |
| Закупка и промо | закупочные цены, бонусы поставщиков, календарь и глубина скидок | категорийный отдел, отдельным слоем |
| Регламенты магазина | инструкции кассира, порядок возврата и обмена, охрана труда | вся смена |
Дальше три технических решения, которые в рознице значат больше, чем класс модели. Первое: доступ режется не только по роли, но и по торговой точке — администратор работает со своим магазином и не должен одним вопросом доставать корзину покупателя из другого города. Второе: ответ называет документ и его редакцию. В рознице это не формальность: порядок возврата и условия акции переписываются к каждому промо, а отменённая редакция звучит ровно так же уверенно, как действующая, — без ссылки на источник кассир их не различит. Третье: магазины отдают в контур события — чек, обращение, движение товара, — а не архивы. Записи с камер торгового зала в контур не тянут вовсе: это отдельная система со своим порядком хранения и своим кругом допуска, и вопросы к ней решаются не в проекте про модель. Что при этом стоит на железе и как считают конфигурацию под число пользователей и объём документов — на странице локального AI-сервера.
Отдельно стоит развести две разные работы, которые в рознице путают. Вопрос «почему в этом магазине упали продажи категории» — это аналитика, и она устроена иначе, чем помощник на регламентах: разница между графиком и разбором словами разобрана в материале AI-аналитик или BI-дашборд.
Что в этой хронике отраслевое, а что общее
Разделить полезно: общее решается так же, как в любой компании, а отраслевое приходится решать заново.
- •Отраслевое: субъект данных здесь — частный покупатель, и таких у сети много; он не сотрудник контрагента и никаких служебных обязательств перед вами не несёт,
- •Отраслевое: согласие на рекламные звонки и сообщения живёт отдельно от согласия на обработку данных, и спрашивают о нём разные подразделения в разное время,
- •Отраслевое: часть сведений о продажах уходит из периметра не по вашему решению — кассовый чек в общем порядке применения касс попадает к оператору фискальных данных и дальше в налоговую,
- •Отраслевое: единица работы — магазин со своей сменой и своим каналом, поэтому и доступ, и пилот меряются одним магазином, а не сетью целиком,
- •Общее: разграничение доступа, журнал обращений и названный человек, который отвечает за неверный ответ.
Про фискальную передачу важно не ошибиться в выводе. Она идёт мимо вас и мимо модели: чек уходит по общему порядку применения касс, и локальный контур в этой цепочке ничего не меняет — ни закрыть её, ни сократить состав переданного он не может. Ошибка тут обратная и дороже: решить, что раз чеки и так ушли, то и внутреннюю копию продаж защищать не от кого. Копия остаётся у вас целиком — вместе с привязкой к карте лояльности, возвратами и списаниями, — и разграничивать надо именно её.
Когда это делать: календарь розницы решает
Пик у сети известен заранее — недели перед праздниками, школьный сезон, распродажи. Запуск пилота в собственный пик выглядит соблазнительно (там же самая нагрузка), но в пик проверяют отлаженный порядок, а не новый: людям некогда разбираться со странным ответом, и разбор превращается в «выключите это». Берите один повторяющийся участок на низком сезоне — разбор обращений или сверку возвратов — и заранее договоритесь, по какому наблюдаемому признаку работу продолжают и на чём её останавливают без обсуждения. Как выглядит план внедрения без хайпа и на чём такие проекты глохнут — как внедрить нейросеть в бизнес.
Разобрать контур под конкретную сеть — магазины, программу лояльности и закупку — локальный AI-сервер Stitex.
Частые вопросы
Нейросеть для розничной сети: с чего начинать, если магазинов много?
С того, чтобы перечислить массивы и назвать их владельцев, — и считать здесь надо не магазины. В рознице чувствительное разъехалось не по зданиям, а по функциям: анкеты и баллы держит лояльность, состав корзины — кассовая система, обращения — поддержка и горячая линия, закупочные цены и календарь промо — категорийный отдел. У каждого массива свой хозяин и свой круг допуска, и сведение их в одну кучу ради «умного поиска» — это и есть тот ход, который потом разбирают как инцидент. Модель ставят там, где массивы сходятся, а магазины отдают в контур события. Класс модели выбирают последним.
Можно ли выгрузить базу лояльности во внешний сервис ради сегментации?
Это отдельное действие с отдельным основанием, а не техническая мелочь: наружу уезжает список живых покупателей с телефонами и историей покупок. Смотреть надо в свою же анкету на карту лояльности: какая цель обработки там записана и назван ли круг тех, кому данные передают. Если оператора стороннего сервиса в этом круге нет, выгрузка выходит за то, на что покупатель соглашался, — и закрывается это не настройкой сервиса, а основанием. Когда модель работает внутри вашего контура, вопрос снимается на уровне маршрута: массив никуда не уезжает.
Может ли модель сама рассылать персональные предложения покупателям?
Собрать сегмент и черновик текста — да, отправить самостоятельно — нет. Закон о рекламе допускает рекламу, распространяемую звонками и сообщениями, только при предварительном согласии абонента, доказывать наличие согласия обязан тот, кто рассылал, и отдельно там не допускается автоматическая рассылка и автодозвон без участия человека. Норма про рекламу: сервисное сообщение о готовности заказа под неё не подпадает, но границу по вашим конкретным текстам стоит проверить с юристом, а не на глаз.
Нужен ли отдельный сервер в каждом магазине?
Нет. В магазине канал узкий, а приоритет на нём отдан кассовому узлу и платежам — подвинуть их ради чата нельзя. Модель живёт в одном контуре, магазины отдают в него события: чек, обращение, движение товара. Отдельно опишите, что делают кассир и администратор, когда подсказок нет вовсе, — этот порядок нужен независимо от AI.
Отличит ли модель мошенническое обращение по карте лояльности?
Она видит формальные признаки: подтверждение уходило на другой номер, чем тот, с которого просят перенести баллы; регистрации идут пачкой с однотипных почт; номер чека настоящий, а покупка по нему уже возвращалась. Это фильтр для оператора, а не решение за него. Списание баллов и решение по возврату принимает оператор; в регламенте к этому стоит добавить порог — до какой суммы баллов и какой давности чека он закрывает вопрос сам, а что уходит на второй уровень.
Что делать с чеками, которые и так ушли оператору фискальных данных?
Ничего: эта передача идёт по общему порядку закона о применении контрольно-кассовой техники, без всякого AI, и локальная модель на неё не влияет — ни закрыть её, ни сократить состав переданного она не может. Речь о другом — о вашей собственной копии данных о продажах, которая остаётся у вас целиком: кому внутри компании она открыта и виден ли в ней конкретный покупатель. Именно эту часть и закрывает свой контур.