Контент-конвейер для большого каталога — это не массовый вызов генеративной модели. Это производственный процесс, который превращает проверенные мастер-данные в версии карточек для разных каналов и не позволяет тексту расходиться с характеристиками, остатками, ценой и юридическими ограничениями.
Единицей управления должен быть не файл и не промпт, а задача по SKU с состоянием: данные готовы, генерация выполнена, проверки пройдены, требуется редактор, утверждено, опубликовано, отклонено. Тогда любую карточку можно воспроизвести, объяснить и безопасно обновить при изменении источника.

Как устроен процесс
Входом служат PIM/ERP, медиатека, справочники бренда и правила площадки. Сначала данные нормализуются и проверяются: категория, единицы измерения, вариант, обязательные атрибуты, допустимые заявления. Только после этого формируется канал-специфичное задание на заголовок, описание, характеристики и alt-тексты.
Результат проходит машинные проверки и выборочную редактуру. Публикационный адаптер собирает фид или API-запрос, а обратная синхронизация фиксирует статус площадки. Ошибка конкретного канала не должна блокировать остальные и тем более не должна изменять мастер-данные обратным импортом.

Что важно учесть до запуска
Модель данных должна различать товар, вариант и торговое предложение. Общая характеристика бренда или модели не должна случайно переехать в SKU другого цвета, комплектации или объёма. Для каждой сущности задаётся стабильный идентификатор, а сборщик контекста получает только поля текущего уровня и явно разрешённое наследование.
Шаблон контента состоит не только из текста инструкции. Он включает схему входа, список разрешённых фактов, правила канала, примеры допустимого результата и автоматические тесты. Версия шаблона меняется вместе с тестами. Это позволяет ответить, почему две карточки одного SKU различаются, и безопасно воспроизвести старую поставку.
Пакетная обработка нуждается в backpressure. Если канал начал отклонять запросы или QA обнаружил системный дефект, новые партии приостанавливаются, а уже подготовленные не смешиваются с исправленными. Статус хранится на уровне SKU и канала; повторная отправка выполняется идемпотентно и не создаёт дубликаты публикаций.
Редактору показывают не весь каталог, а приоритетную очередь. В неё попадают новые категории, изменения критичных атрибутов, низкая уверенность, конфликт фактов и выборочная контрольная доля. Одобрение сохраняется как решение по конкретной версии. Если мастер-данные изменились позже, старое согласование не считается действующим автоматически.
Принципы, без которых система не будет управляемой
- Master data first. Факты поступают из систем учёта; модель не создаёт цену, состав, габариты или совместимость.
- Версия шаблона. Каждый результат связан с версией правил бренда, канала и генерации.
- Разделение факта и текста. Характеристики хранятся структурированно, а описание является их представлением.
- Канал-специфичность. Один SKU получает разные допустимые представления, а не один текст, скопированный повсюду.
- Инкрементальные обновления. Перегенерируются только поля и каналы, затронутые изменившимися данными.

Архитектура решения и движение данных
Оркестратор получает событие изменения SKU и создаёт задачи по каналам. Валидатор мастер-данных останавливает неполные записи. Генератор получает только разрешённый контекст, после чего lint-слой проверяет длину, запрещённые слова, соответствие атрибутам и формат.
Хранилище версий содержит входные данные, шаблон, результат, правки и публикационный ответ. Оно позволяет сравнить две версии и откатить неудачную поставку. Для изображений действует такой же принцип: исходный asset отделён от канал-специфичного экспорта и его кропов.

Ошибки, ограничения и безопасный fallback
Риск нужно связывать с наблюдаемым сигналом и заранее определённым действием. Тогда команда реагирует по регламенту, а не пытается угадать причину после инцидента.
| Риск | Как проявляется | Контроль |
|---|---|---|
| Галлюцинация свойства | В тексте появилось преимущество, которого нет в данных | Генерация только из allowlist полей и факт-чек каждого утверждения |
| Смешение вариантов | Цвет или размер одного SKU попал в другой | Жёсткие variant IDs и изоляция контекста |
| Массовая ошибка шаблона | Плохое правило затронуло весь каталог | Canary-пакет, лимит партии и быстрый rollback |
| Расхождение каналов | Фид и страница показывают разные цену или наличие | Единый источник и мониторинг расхождений |
| Потеря правок редактора | Повторная генерация затирает ручное исправление | Блокировки полей и политика merge |

Как измерять качество, эффект и стоимость
Baseline фиксируется до автоматизации. Метрики считаются по завершённому бизнес-результату и сегментируются по сценарию, версии и причине исключения — среднее значение по всей системе слишком легко скрывает деградацию.
| Метрика | Что показывает | Как разрезать |
|---|---|---|
| Проходимость first pass | доля SKU без возврата на исправление | по категории и шаблону |
| Стоимость опубликованного SKU | генерация, проверки и редактура | по каналу |
| Время от данных до публикации | полный lead time | P50/P95 |
| Доля расхождений | конфликты страницы, фида и мастер-данных | по полям |
| Rollback rate | частота откатов пакетов | по версии правила |
Пошаговый план внедрения
- 01
Выбрать одну категорию и описать каноническую схему атрибутов.
- 02
Зафиксировать правила каждого канала и запрещённые утверждения.
- 03
Собрать версионируемый шаблон и контрольный набор SKU.
- 04
Добавить машинные проверки до этапа редактора.
- 05
Публиковать canary-партиями с журналом ответа площадки.
- 06
После стабильного first pass расширять категории и объём партии.
Чек-лист приёмки
Перед включением реального потока команда проходит короткий операционный чек-лист. Пункт считается выполненным только при наличии проверяемого артефакта: настройки, теста, журнала или назначенного ответственного.
- Товар, вариант и предложение имеют разные идентификаторы
- Модель получает только разрешённые факты текущего SKU
- Каждый результат связан с версиями входа и шаблона
- Ошибка канала не блокирует публикацию в другие каналы
- Ручные правки защищены от случайной перегенерации
- Есть canary-партия и процедура отката
Частые вопросы
Можно ли генерировать сразу весь каталог?
Технически можно, но безопаснее начинать с категории и малых партий: ошибка шаблона масштабируется так же быстро, как удачный процесс.
Где хранить промпты?
Как версионируемый код или конфигурацию рядом с правилами и тестами, а не в личных заметках оператора.
Нужен ли человек на каждой карточке?
Не обязательно. Доля проверки зависит от риска категории, стабильности шаблона и результатов автоматических проверок.
Разберите процесс до выбора инструментов
На диагностике фиксируем границы, данные, цену ошибки, точки контроля и реалистичный пилот.
Источники
- Product data specificationGoogle Merchant Center
- Introduction to Product structured dataGoogle Search Central
- Product detail attributeGoogle Merchant Center
- Set up structured data for Merchant CenterGoogle Merchant Center
- ProductSchema.org
- OfferSchema.org
- GS1 Data Quality Framework for Brand OwnersGS1
- Merchant Center product data specification update 2024Google Merchant Center
Источники и методическая база
- Product data specificationGoogle Merchant Center
- Introduction to Product structured dataGoogle Search Central
- Product detail attributeGoogle Merchant Center
- Set up structured data for Merchant CenterGoogle Merchant Center
- ProductSchema.org
- OfferSchema.org
- GS1 Data Quality Framework for Brand OwnersGS1
- Merchant Center product data specification update 2024Google Merchant Center
