С чем пришёл клиент
Магазин стройматериалов — региональный оффлайн-гипермаркет с онлайн-витриной. На складе около 4 000 позиций: от саморезов и монтажной пены до дверных блоков и межкомнатных перегородок. Сайт собран на 1С-Битрикс, каталог тянется напрямую из 1С через штатную выгрузку CommerceML.
Проблема была знакомая:
- Примерно у 60% карточек описание — это копипаста с сайта производителя. Яндекс видит дубль и опускает в выдачу.
- У 30% карточек описание отсутствует вообще: есть название, артикул и цена, и всё.
- У 10% карточек описание было написано контент-менеджером руками, и они были действительно хорошими. Но 10% — это 400 позиций, а надо 4 000.
Контент-менеджер писал по 10–15 карточек в день. На прошивку всего каталога в его темпе нужно было примерно 9 месяцев, и к концу этого срока половина ассортимента успеет поменяться — поставщики обновляют линейки, появляются новые бренды, снимаются старые артикулы. То есть работа никогда не закончится: это бесконечный догоняющий марафон.
Задача, которую поставил клиент, звучала так: «Хочу, чтобы через месяц у меня весь каталог был заполнен нормальными описаниями, и чтобы дальше это само поддерживалось». С этим и начали.
Почему готовых решений не хватило
Первый вопрос, который задают клиенты на этом этапе: «А почему нельзя взять ChatGPT и попросить его написать 4 000 описаний?». Можно, но результат будет отвратительным по трём причинам.
Во-первых, без структурированных входных данных модель галлюцинирует. Если дать GPT-4 просто название «Саморез универсальный 4x40 ЦБ», он додумает применение, материал, упаковку, стойкость к коррозии — и половина додумываний будет мимо. Покупатель смотрит карточку, видит несоответствие с фактическим товаром, уходит, пишет претензию. Для стройматериалов это критично: человек ищет очень конкретные характеристики и не прощает вранья.
Во-вторых, без шаблона модель пишет каждую карточку в своём стиле. Одна — деловая, другая — разговорная, третья — маркетинговая. Каталог превращается в лоскутное одеяло. Для SEO и для восприятия бренда это хуже, чем однообразно-сухие описания.
В-третьих, без кеша и incremental update каждая перегенерация стоит денег. 4 000 × стоимость токенов × каждый раз, когда меняется поставщик — это уже не автоматизация, это медленное сжигание бюджета.
Поэтому мы с самого начала строили не «GPT на коленке», а нормальный пайплайн.

Архитектура пайплайна
Вся логика — три шага: забрать из 1С, обогатить AI-ом, положить обратно в Битрикс.
┌────────────────────────┐
│ 1С (CommerceML XML) │
└────────┬───────────────┘
│ nightly export
▼
┌────────────────────────┐
│ ETL → Postgres │
│ products / attributes │
└────────┬───────────────┘
│ hash diff
▼
┌────────────────────────┐
│ Enricher (AI pipeline) │
│ ─ шаблон по категории │
│ ─ LLM-генерация │
│ ─ валидация и QA │
└────────┬───────────────┘
│ enriched JSON
▼
┌────────────────────────┐
│ Битрикс (REST) │
│ description / meta / │
│ seo_keywords │
└────────────────────────┘
Каждую ночь пайплайн смотрит, что изменилось в 1С: новый товар, поменялась цена, поменялась характеристика. Если характеристик, влияющих на текст, не было — карточка не перегенерируется, только обновляется цена. Это принципиально: перегенерация ради перегенерации стоит денег и может сдвинуть уже набранные позиции в выдаче.
Шаблоны по категориям — главный секрет
Главное, что отличает хороший пайплайн от плохого — это категорийные шаблоны. Мы разбили каталог на 27 категорий (саморезы, клеи, краски, утеплители, двери, ламинат и так далее) и под каждую написали промпт-шаблон с фиксированной структурой.
Пример для категории «Саморезы»:
Входные данные:
- name: название товара
- specs: {диаметр, длина, материал, покрытие, наконечник, упаковка}
- application: поле "Применение" из 1С, если заполнено
Структура выхода:
1. Лид-абзац: 2-3 предложения о назначении
2. Характеристики: таблица из specs
3. Применение: 3-5 пунктов, с привязкой к материалам
4. Упаковка и фасовка
5. SEO-мета: title (60 символов), description (160 символов),
h1, 5-7 ключевых фраз
Тон: деловой, без воды, с цифрами.
Запрещено: придумывать характеристики, которых нет во входе.
Под каждую категорию шаблон свой, потому что саморез и межкомнатная дверь — это радикально разные тексты. У самореза важны метрики и совместимость, у двери — внешний вид, звукоизоляция, способ монтажа. Универсального шаблона нет и быть не может.
Шаблон — это не просто промпт, это ещё и few-shot примеры: мы взяли у клиента 3–5 эталонных описаний на каждую категорию, которые контент-менеджер написал вручную, и включили их прямо в промпт. AI видит «вот как должна звучать карточка в нашем магазине» и копирует тон.
Валидация: ловим галлюцинации до публикации
После генерации каждая карточка проходит автоматическую валидацию:
| Проверка | Что делает | Что если падает |
|---|---|---|
| Совпадение характеристик | Все числа из specs должны встречаться в тексте | Перегенерация с усиленным промптом |
| Отсутствие галлюцинаций | Никаких характеристик, которых нет во входе | Отбраковка, ручной ревью |
| Длина title и description | 50–60 / 150–170 символов | Автокорректировка |
| Уникальность по шинглам | ≥85% уникальности против предыдущих карточек | Перегенерация |
| Запрещённые слова | Стоп-лист клиента (названия конкурентов и т.п.) | Автозамена |
Автоматическая отбраковка — это ~8% карточек. Они отправляются контент-менеджеру в отдельную очередь «Проверить вручную». Из этих 8% примерно половина доправляется за минуту (опечатка в характеристике от поставщика), остальные требуют реального ручного переписывания. Итого живая ручная работа — около 4% от объёма, то есть примерно 160 карточек из 4 000.
Результаты через 3 недели
Неделя Что сделано Состояние каталога
─────────────────────────────────────────────────────────────────────
Неделя 0 Подключение к 1С, ETL ~10% с описанием
Неделя 1 Шаблоны 27 категорий, first pass ~65% с описанием
Неделя 2 Валидация, перегенерация, QA ~92% с описанием
Неделя 3 Ручная доправка сложных случаев 100% с описанием
| Метрика | До | После 3 недель |
|---|---|---|
| Карточек с полным описанием | 400 из 4 000 | 4 000 из 4 000 |
| Дублей по шинглам (внутри каталога) | 38% | 3% |
| Уникальных h1 и title | 62% | 100% |
| Органический трафик на карточки | базовый | +34% |
| Контент-менеджер занят на каталоге | 100% времени | ~20% времени |
И главное — 3 недели вместо 9 месяцев. Контент-менеджер, который до этого писал описания, теперь занимается задачами, которые AI не закроет: сравнительные обзоры в блог, работа с поставщиками, фотоконтент, скидочные посадочные.
Что забрать из кейса
Если коротко: AI не заменяет каталог-менеджера, а умножает его производительность примерно в 20 раз. Только он из «пишущего копипастера» превращается в редактора и куратора контента, который проверяет спорные карточки и ведёт сложные категории руками. Это другая роль, и она намного интереснее.
И ещё один вывод: ключ к качеству — не модель, а шаблоны. Одна и та же Claude Sonnet без шаблонов пишет расплывчато; с шаблонами по категориям — выдаёт структурированные, сравнимые карточки с предсказуемым SEO-весом. 80% работы в таком проекте — это не промпт-инжиниринг «в целом», а промпт-инжиниринг под каждую категорию отдельно.



