Как работает генерация медиа
Проблема: картинки статей — место, где сталкиваются деньги, качество и гниение хранилища: генеративные картинки стоят денег за штуку, осиротевшие файлы копятся вечно, а наивная чистка, ошибившись, удаляет картинки с живых страниц.
Слой 1 — инфографика или иллюстрация, решается на секцию
Заголовок раздела «Слой 1 — инфографика или иллюстрация, решается на секцию»Медиа-шаг не декорирует статью равномерно. Каждая контентная секция классифицируется эвристикой из ~10 сигналов (плотность чисел, сравнения, формы списков…): секции, тяжёлые данными, получают инфографику — спецификацию графика, детерминированно отрендеренную в headless-браузере, ценой практически ноль за картинку; нарративные секции — генеративную иллюстрацию от модели картинок ценой в доли цента. Здесь виден собственный уклон платформы: где контент числовой, детерминированное бьёт генеративное и по правде, и по цене.
Сам медиа-сервис — маленькая вендорнутая cloud-функция: stateless, с хранилищем позади и usage-статистикой в памяти; платформа зовёт его через типизированный адаптер, как любую другую интеграцию.
Слой 2 — предохранители квоты
Заголовок раздела «Слой 2 — предохранители квоты»Исчерпание генеративной квоты когда-то выглядело загадочным штормом пятисоток. Теперь адаптер поднимает провайдерский retry-after хинт, применяет пол кулдауна, а квотный брейкер срабатывает после серии отказов — прогон падает быстро с явным квотным вердиктом вместо сжигания минут в ретраях.
Слой 3 — реестр картинок: чистка без страха
Заголовок раздела «Слой 3 — реестр картинок: чистка без страха»Каждая сохранённая картинка трекается в реестре с явным жизненным циклом:
Несущие решения:
- Референсы сверяются с реальным рендером. Платформа сообщает, какие картинки её статьи реально используют, — включая скан финального HTML, добавленный после того, как экстрактор по полям измеримо промахивался мимо подавляющего большинства реальных ссылок. Реестр верит отрендеренной правде, а не метаданным.
- Жёсткого удаления нет. Чистка умеет только трэшить — физическое удаление позже делает retention-окно объектного хранилища. Ошибочный вердикт «сирота» обратим неделями; живой проход чистки однажды вернул большую часть бакета с нулём потерянных живых картинок.
Трейд-оффы, честно
Заголовок раздела «Трейд-оффы, честно»Два хранилища существуют по дизайну — объектное хранилище для пайплайн-генерённого медиа и файловая система сайт-хостов для «мебели» сайта (аватары, hero-картинки, заполняемые отдельным путём), — и реестр управляет только первым; унификация hero-картинок — известная открытая кромка. Посекционный классификатор эвристичен: пограничная секция может получить график там, где иллюстрация читалась бы лучше, — цена, принятая за детерминизм.
Пощупать за две минуты
Заголовок раздела «Пощупать за две минуты»План картинок и сгенерённые ассеты любой статьи видны в её телеметрии; снапшот-эндпоинт референсов реестра показывает ровно то, что платформа сейчас декларирует использовать.
Спеки: SPEC-095 (реестр картинок + предохранители квоты), плюс вендорнутый медиа-сервис и медиа-шаги генерационного пайплайна.