Задача
Клиент — нишевой медиа-портал в сегменте B2B. Тематика — новости и обзоры в отрасли, где происходит много всего: релизы, назначения, регуляторные изменения, финансовые отчёты, профильные конференции. До нас портал работал классическим медийным способом: два редактора каждое утро читают 30 источников, выбирают новости, переписывают, публикуют. Темп — 8–12 статей в день, пик к 11 утра.
Проблема типичная для медиа:
- Опаздывают с повесткой. Пока редактор проснулся, почитал, сел писать — новость уже висит на сайтах конкурентов.
- Теряют выходные. В субботу-воскресенье ленту никто не обновляет, портал замирает. Поисковики это замечают и понижают ранжирование.
- Нет масштабирования. Если хочется охватить больше источников — нужно нанимать ещё редакторов, а маржа в нишевом медиа и так тонкая.
Задача — перевести портал на автоматический контент-конвейер: парсинг источников → AI-рерайт → SEO-оптимизация → публикация. Темп — 50+ статей в день, включая выходные. Редакторы не исчезают, но переходят с «написать» на «проверить и выпустить».
Этический дисклеймер заранее
С клиентом провели отдельный разговор про этику. Автоматический парсинг и рерайт — инструмент, который легко использовать плохо: сплогерство, слепая копипаста, маскировка чужого труда. Договорились на принципах:
- Только первичные источники — официальные пресс-релизы компаний, публичные отчёты, регуляторные уведомления. Никакого рерайта материалов других медиа.
- Явные ссылки на источник в каждой статье — не мелким шрифтом в подвале, а в первом абзаце.
- Фактчек перед публикацией — цифры, даты, имена, цитаты обязательно проверяются в оригинале.
- Человек выпускает в свет. AI пишет драфт, редактор нажимает «опубликовать». Ни одна статья не уходит в паблик автоматически.
Это не юридический щит, а осознанная граница, которая отличает полезный инструмент от сплогерского мусорного конвейера. Весь пайплайн собирался под эти четыре принципа.
Архитектура конвейера
30+ источников (RSS / API / парсинг HTML)
│
▼
Парсер / нормализатор
(извлечение основного текста страницы)
│
▼
Фильтр релевантности
(AI: интересно ли это аудитории портала?)
│
▼
Дедупликация
(уже писали про это?)
│
▼
Фактчек-помощник
(вытаскивание ключевых фактов из источника)
│
▼
Разбор выдачи (ТОП-10 по теме)
— смотрим, как пишут конкуренты
— собираем тематические слова и фразы
│
▼
ТЗ (автоматическое)
— структура статьи, обязательные блоки
│
▼
Черновик: генерация + внутреннее AI-ревью
│
▼
Модерация редактором
— факты, тон, источник, заголовок
│
▼
Публикация в CMS через API
Фильтр релевантности — первое место, где всё ломается

Тридцать источников на входе — это не 50 новостей в день, а примерно 300–400 элементов в ленте. Из них нашему порталу подходит ~15%. Остальное — либо про другие сегменты, либо про рутину внутри компаний, которая не интересна читателю.
Первый инстинктивный вариант — сделать фильтр по ключевым словам. Работает плохо: в нишевых темах тот же термин может быть и главным триггером статьи, и просто вскользь упомянутым. Ключевое слово «X» в заголовке — это новость про X. То же «X» где-то в последнем абзаце пресс-релиза про Y — это шум.
Решение — AI-фильтр с промптом «интересно ли это нашей аудитории». В промпт подставляется описание аудитории портала, их прошлые «интересно / не интересно» (вручную размечали 200 первых кейсов) и текст новости. Модель отвечает «да/нет» с кратким обоснованием.
Метрика качества фильтра за первый месяц работы:
Точность (правда релевантно из отобранных) ████████████████████ 94%
Полнота (нашли из релевантного) ███████████████████ 91%
Ложные срабатывания (отсеются далее) █ 6%
Пропуски (прозевали интересное) ██ 9%
Значит: из 400 элементов в день фильтр оставляет ~55–70 релевантных, а из них после дедупа и модерации доходят до публикации 50+.
Дедупликация на уровне фактов, а не текста
Классическая ошибка новостных конвейеров — дедупликация по похожести текста. Один и тот же факт (например, «компания X купила компанию Y за $100 млн») публикуется через пресс-релиз X, пресс-релиз Y, новостную ленту, официальное сообщение регулятора — у всех разные тексты, но это один и тот же факт.
Если дедуп работает по тексту, вы публикуете четыре статьи про одно и то же. Читатель недоволен, Яндекс видит дубли в своей выдаче, рейтинг сайта проседает.
Сделали дедупликацию по фактам:
- Из каждой входящей новости AI извлекает «кортеж фактов» — кто, что, кому, когда, сколько.
- Кортеж сравнивается с базой уже опубликованных кортежей за последние 7 дней.
- Если новая новость покрывает те же факты, что уже публиковались — она помечается как дубль и не идёт в генерацию.
- Исключение — если в новой новости появляются дополнительные факты (новые детали сделки, свежие комментарии), запускается режим «обновление»: апдейт уже опубликованной статьи, а не новая публикация.
Этот модуль оказался сложнее всех остальных вместе взятых. Он же дал самый заметный эффект по качеству ленты.
Фактчек: отдельный шаг, отдельный промпт

В медиа больше, чем где бы то ни было, нельзя выпускать AI-драфт «как есть». Модель может перепутать цифру, год, имя, компанию. Поэтому перед генерацией текста мы запускаем фактчек-помощник: отдельный промпт, который читает исходный текст новости и вытаскивает структурированный список фактов.
{
"кто": "Компания X",
"что": "запустила продукт Y",
"когда": "14 апреля 2026",
"где": "на выставке Z в Москве",
"цифры": ["инвестиции $15 млн", "команда 40 человек"],
"цитаты": ["«Y решает проблему A», — заявил глава X, Иван Петров"],
"источник": "https://..."
}
Этот факт-объект дальше уходит в генерацию как жёсткий контекст, который модель не имеет права менять. В промпт генерации прямо написано: «цифры и имена бери ТОЛЬКО из блока фактов; если нужной информации там нет — НЕ выдумывай, либо сформулируй без неё, либо запроси дополнительное уточнение».
Ошибки на цифрах после этого — единичные, и все ловятся финальным редактором. До внедрения ошибка была в среднем в каждой 15-й статье.
Генерация: ТЗ + разбор выдачи
Раз факты уже вытащены и тема известна, можно переиспользовать обычный контент-пайплайн: делаем разбор выдачи (ТОП-10 по теме), собираем ТЗ из реальной выдачи, генерируем черновик, прогоняем через AI-ревью, отдаём на человеческую модерацию.
Зачем нужен разбор на новостях: не все новости требуют SEO-оптимизации. Горящие апдейты пишутся быстро, минимальным объёмом, без разбора. А обзорные и аналитические материалы, которые живут на сайте неделями, получают полноценный SEO-блок: тематические слова, внутренние ссылки, техническая разметка NewsArticle.
Порог, когда включается разбор выдачи, простой: если новость про событие старше 24 часов или явно подана как обзор — идёт полный пайплайн. Если это горящий апдейт — генерация без разбора, редактор подхватывает и выпускает в течение 15 минут.
Модерация: человек нужен именно здесь
Редакторы никуда не делись — их роль изменилась. Раньше они писали статьи с нуля. Теперь работают в «модерационной» панели, где им прилетает AI-драфт вместе с тремя вещами:
- Исходный источник — пресс-релиз, регуляторное уведомление, пост в блоге компании.
- Факт-блок — что модель вытащила, что использовала в тексте.
- Сравнение с источником — визуальная подсветка мест, где AI ушёл в свободную переформулировку.
Редактор делает четыре действия: проверяет факты, подправляет тон и заголовок (AI-заголовки бывают скучноватые), ставит теги, нажимает «опубликовать». Среднее время на один материал — 3–5 минут. У двух редакторов хватает производительности на 80–100 материалов в день. Реальный темп портала — 50+.
| Этап | До внедрения | После |
|---|---|---|
| Чтение и выбор новостей | 60 мин / день / редактор | 0 (фильтр) |
| Разбор источника | 15 мин / новость | 0 (AI) |
| Написание статьи | 40–60 мин / статья | 0 (AI) |
| Модерация и фактчек | 10 мин / статья | 3–5 мин / статья |
| Публикация в CMS | 5 мин / статья | 0 (API) |
| Итого на статью | ~70 мин | ~4 мин |
Переводя в штат: раньше два редактора могли выпустить 16 статей в день суммарно. Сейчас — 80+ без спешки, в режиме «проверить, не писать».
Публикация и SEO-разметка
Финальный шаг — публикация в CMS портала через API. В этот момент к статье добавляется:
- Разметка
NewsArticle(JSON-LD) с датой публикации, автором (редактор-человек, не AI), источником, изображением. - Ссылка на первоисточник в первом абзаце.
- Канонический URL.
- OG-изображение (подхватывается из источника или генерируется шаблонно с заголовком).
- Внутренние ссылки на тематические рубрики и предыдущие материалы по теме.
Внутренние ссылки — отдельная история. Ведём граф тематической близости: после публикации каждой статьи пересчитываем её похожесть с предыдущими N материалами, и в новые статьи автоматически подставляются ссылки на релевантные. Это даёт и перелинковку (которую Яндекс любит), и реальную ценность читателю — из новости про событие он может перейти на обзор контекста.
Результаты

Замеры через 4 месяца после запуска:
| Метрика | До | После (4 мес) |
|---|---|---|
| Среднее количество публикаций в день | 8–12 | 52 |
| Публикаций в субботу-воскресенье | 0 | 28 / день |
| Органический трафик / мес | 85 000 | 310 000 |
| Среднее время от источника до публикации | 4–8 часов | 25 минут (горящие), 90 мин (обзоры) |
Разметка NewsArticle на всех материалах | нет | 100% |
| Попадание в Яндекс.Новости | нерегулярно | постоянно |
| Нагрузка на редактора (часов/день) | 8 | 5 |
Отдельный эффект, которого не ждали: скорость индексации. Яндекс сам понял, что этот портал обновляется часто и регулярно, и стал заходить почти каждый час. Это повлияло на ранжирование по свежим событиям: по части тем портал теперь появляется в ТОП-10 Яндекс.Новостей через 15–30 минут после события.
Главное
Медиа-конвейер — это не «парсим и переписываем», это фильтр + фактчек + шаблон + модерация, и каждое слово в этой формуле критично. Без фильтра тонете в шуме, без фактчека выдаёте галлюцинации, без шаблона теряете голос издания, без модерации сползаете в сплогерство.
И наоборот: если эти четыре шага на месте, AI-конвейер не заменяет редактора, а освобождает его от рутины «выбери-прочти-перепиши-опубликуй», оставляя время на то, чего у медиа обычно и не хватает: фактчек, тон, понимание контекста. В хорошем медиа именно это и есть ценность.



