Как работает поиск контента
Проблема: всё, что ниже по течению — генерация, качество, деньги, — ограничено тем, что найдёт Collect. Скорми ему шум — и лучший в мире пишущий пайплайн выдаст отполированный шум. Поэтому поиск оптимизирует плотность квалификации, а не сырой объём харвеста.
Слой 1 — три класса источников, намеренно неравных
Заголовок раздела «Слой 1 — три класса источников, намеренно неравных»- Кураторские фиды — ранжированный, отобранный вручную список на контракт: высокая точность, низкая полнота; доверенный костяк.
- Поисковый харвест — рабочая лошадь: поисковый API опрашивается и по evergreen-, и по новостной поверхности, управляясь авторскими запросами куратора из онтологии контракта. Это не слепой скрапинг: набор запросов — сам по себе редакционный инструмент.
- Legacy news API — старший, менее точный харвестер, оставленный рядом с новым как фолбэк.
Собственные страницы сайта контракта кандидатами намеренно не становятся — они кормят построение онтологии (о чём ниша), но никогда не очередь статей.
Слой 2 — воронка независимых гейтов
Заголовок раздела «Слой 2 — воронка независимых гейтов»Единого поля «причина отсева» нет; отбраковка распределена по гейтам, каждый из которых владеет ровно одной заботой:
Два гейта заслуживают внимания:
- Тематический дедуп откладывает, а не удаляет. Кандидат, слишком похожий на уже закоммиченные темы (или на соседа в том же прогоне), помечается отложенным — единственный обратимый вердикт воронки: тематическое пространство освобождается по мере старения контента.
- Экспорт-гейт держит жёсткий суточный бюджет генерации. У каждого
контракта — бюджет статей/сутки: флотовый дефолт 5, per-contract
override (0 — легальный полный стоп). Остаток считается по дневному
окну в БД, поэтому перезапущенный прогон не может потратить лимит
дважды. Внутри бюджета кандидаты ранжируются по ожидаемому
импакту:
(rank_deep / 100) × yield_ratio(темы), гдеyield_ratio— измеренная отдача темы (показы/статью) относительно медианы контракта (clamp 0.25–4.0), из петли обратной связи по темам. Тема без данных получает нейтральный вес — без SEO-сигнала ранжирование деградирует к чистому порядку по рангу, но кап держится всегда (оси отказов независимы). Пол эксплорации резервирует часть бюджета под новые темы; кандидаты, до которых бюджет не дошёл, остаются в пуле и конкурируют следующей ночью. Ниже пола по рангу кандидат просто никогда не становится статьёй; отсутствие и есть запись об отказе.
Исторические асимметрии закрыты: полоса авто-прохода больше не обходит кап, а легаси приоритетный путь (операторский овверайд мимо пола по рангу) бюджет-отбором игнорируется — его флаг больше никто в платформе не пишет, поле ждёт удаления.
Слой 3 — каскад, честно
Заголовок раздела «Слой 3 — каскад, честно»Экономическая идея — дешёвое раньше дорогого: убивать кандидатов до того, как они начнут стоить настоящих LLM-денег. Сегодняшний прод-каскад достигает этого дешёвым LLM-скринером перед глубоким анализатором — каждый выживший кандидат стоит минимум один маленький LLM-вызов. Векторный префильтр (эмбеддинг кандидатов и recall-ранжирование по косинусу до того, как их увидит любой LLM) существует как измеренное следующее поколение: на живом прогоне он срезал нагрузку скрининга в ~5.7× (харвест 714 → recall-пул 646 → 38 прошло скрининг → 55 отобрано). Он owner-gated и пока не прод-дефолт — пиннинг версий каталога ровно то, что позволяет двум поколениям сосуществовать.
Слой 4 — поиск кормит и корпус
Заголовок раздела «Слой 4 — поиск кормит и корпус»Collect работает вдвойне: квалифицированные страницы-источники размалываются в исследовательские факты через тот же приёмный пайплайн, которым пользуется генерация (дедуп по контент-хэшу → гейты происхождения и релевантности → арбитраж конфликтов). Так поиск — это приёмник RAG-маховика, а не только очередь статей.
Трейд-оффы, честно
Заголовок раздела «Трейд-оффы, честно»Кураторские запросы и фиды означают, что полнота зависит от качества курирования — устаревший набор запросов тихо морит воронку голодом, поэтому новизна харвеста мониторится как сигнал. А фильтрация конкурентов здесь намеренно не живёт: brand defense работает ниже по течению (генерация и публикация), где есть контекст судить о намерении — URL сам по себе не доказательство продвижения.
Пощупать за две минуты
Заголовок раздела «Пощупать за две минуты»Воронка контракта видна в записях его прогонов: harvested → screened → ranked → deferred → seeded, шаг за шагом, для каждого ночного прогона.
Спеки: SPEC-077/082 (архитектура Collect + онтология), SPEC-080 (векторный recall — измерен, под гейтом), SPEC-118 (тематический дедуп на стороне Collect), SPEC-101 (приём в корпус).