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

Фильтр релевантности — первое место, где всё ломается
Тридцать источников на входе — это не 50 новостей в день, это примерно 300–400 элементов в ленте. Из них нашему порталу подходит ~15% — остальное либо про другие сегменты, либо про рутину внутри компаний, которая не интересна читателю.
Первый инстинктивный вариант — делать фильтр по ключевым словам. Это работает плохо: в нишевых темах тот же термин может быть и главным триггером статьи, и просто вскользь упомянутым. Ключевое слово «X» в заголовке — это новость про X; ключевое слово «X» где-то в последнем абзаце пресс-релиза про Y — это шум.
Решение — AI-фильтр с промптом «интересно ли это нашей аудитории». В промпт подставляется описание аудитории портала, их прошлые «интересно / не интересно» (вручную размечали 200 первых кейсов), и текст новости. Модель отвечает yes/no с кратким обоснованием.
Метрика качества фильтра за первый месяц работы:
Precision (правда релевантно из отобранных) ████████████████████ 94%
Recall (нашли из реально релевантных) ███████████████████ 91%
False positives (попадают и идут на отсев далее) █ 6%
False negatives (проспали интересное) ██ 9%
Это означает: из 400 элементов в день фильтр оставляет ~55–70 реально релевантных, а из них после дедупа и модерации доходят до публикации 50+.
Дедупликация на уровне фактов, а не текста
Классическая ошибка новостных конвейеров — дедуплицировать по похожести текста. Один и тот же факт (например, «компания X купила компанию Y за $100 млн») публикуется через пресс-релиз X, пресс-релиз Y, новостную ленту, официальное сообщение регулятора — у всех разные тексты, но это один и тот же факт.
Если дедуп работает по тексту, вы публикуете четыре статьи про одно и то же. Читатель недоволен, Яндекс видит дубли в своей же выдаче, рейтинг сайта проседает.
Мы сделали дедупликацию по фактам:
- Из каждой входящей новости AI извлекает «кортеж фактов» — кто, что, кому, когда, сколько.
- Кортеж сравнивается с базой уже опубликованных кортежей за последние 7 дней.
- Если новая новость покрывает те же факты, что уже публиковались — она помечается как дубль и не идёт в генерацию.
- Исключение — если в новой новости появляются дополнительные факты (новые детали сделки, новые комментарии), запускается режим «обновление»: апдейт уже опубликованной статьи, а не новая публикация.
Этот модуль оказался сложнее всех остальных вместе взятых. Он же дал самый заметный эффект по качеству ленты.
Фактчек: отдельный шаг, отдельный промпт
В медиа больше, чем где бы то ни было, нельзя выпускать AI-драфт «как есть». Модель может перепутать цифру, год, имя, компанию. Поэтому перед генерацией текста мы запускаем фактчек-ассистент: отдельный промпт, который читает исходный текст новости и вытаскивает структурированный список фактов.
{
"who": "Компания X",
"what": "запустила продукт Y",
"when": "14 апреля 2026",
"where": "на выставке Z в Москве",
"quantities": ["инвестиции $15 млн", "команда 40 человек"],
"quotes": ["«Y решает проблему A», — заявил глава X, Иван Петров"],
"source_url": "https://..."
}
Этот факт-объект дальше уходит в генерацию как жёсткий контекст, который модель не имеет права менять. В промпт генерации прямо написано: «цифры и имена бери ТОЛЬКО из блока facts; если нужной информации там нет — НЕ выдумывай, либо сформулируй без неё, либо запроси дополнительное уточнение».
Ошибки на цифрах после этого — единичные, и они все ловятся финальным редактором. До — ошибка была в среднем каждой 15-й статье.
Генерация: TechSpec + SERP research
Раз мы уже вытащили факты и знаем тему, можно переиспользовать наш обычный контент-пайплайн: делаем research по теме (SERP ТОП-10), собираем TechSpec из реальной выдачи, генерируем черновик, прогоняем через AI-ревью, отдаём на человеческую модерацию.
Зачем нужен research на новостях — не все новости требуют SEO-оптимизации. Горящие апдейты пишутся быстро, минимальным объёмом, без research. А вот обзорные и аналитические материалы, которые живут на сайте неделями, получают полноценный SEO-блок: LSI, внутренние ссылки, техническая разметка NewsArticle.
Порог, когда включается research, определяется простым правилом: если новость про событие старше 24 часов или явно подана как обзор — идёт полный пайплайн. Если это горящий апдейт — генерация без research, редактор подхватывает и выпускает в течение 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. В этот момент к статье добавляется:
NewsArticleJSON-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-конвейер не заменяет редактора, а освобождает его от рутины «выбери-прочти-перепиши-опубликуй», оставляя время на то, чего у медиа обычно и не хватает: фактчек, тон, понимание контекста. В хорошем медиа именно это и есть ценность.



