---
title: Каталог пайплайнов
description: Пайплайны, производящие и публикующие контент — Collect, Generate и Localize — как они регистрируются, версионируются и диспатчатся из pipelines/catalog.yaml.
locale: ru
version: 0.2.0
canonical: https://enterium-developer-docs.pages.dev/developers/ru/pipelines/catalog/
---

> Documentation index: https://enterium-developer-docs.pages.dev/developers/llms.txt — every page of this portal has a Markdown twin at <route>.md; the frozen API contract is at https://enterium-developer-docs.pages.dev/developers/api/openapi.json.

Весь контент платформы производят **пайплайны** — многошаговые программы,
работающие с данными контракта. Файл каталога `pipelines/catalog.yaml` —
единственный источник истины для диспатча: какие пайплайны существуют,
какие у них варианты и какая версия — текущий дефолт.

## Пайплайны

| Пайплайн | Назначение | Работает над |
| --- | --- | --- |
| **Collect** (`link_ranker`) | Поиск источников: собирает статьи-кандидаты по нише контракта, ранжирует их по семантической близости к онтологии и квалифицирует лучшие для генерации. Линия v3 — векторная: кандидаты ранжируются по косинусу эмбеддингов, а не по ключевым словам. | контракт |
| **Generate** (`generate`) | Производство статей: берёт квалифицированный источник, заземляет его в исследовательском корпусе контракта (RAG), пишет статью через ступенчатый LLM-пайплайн с детерминированными гейтами качества, рендерит финальную вёрстку и публикует. | статью |
| **Localize** (`localize`) | Языковые версии: производит локализованные варианты статьи для мультиязычных инстансов. | контракт |

## Как устроен каталог

У каждого пайплайна — **варианты** (`prod`, `dev`) и список **версий** с
указателем `latest` на текущий дефолт:

```yaml
pipelines:
  generate:
    display_name: "Generate (контент-пайплайн)"
    entity: generated_articles
    variants:
      prod:
        latest: v3.1.x        # текущий дефолт
        versions:
          v3.0.0: { ... }     # каждая версия остаётся в списке — и остаётся запускаемой
          v3.1.x: { ... }
```

Из этой конструкции следуют три правила:

1. **Добавить версию — правка в одну строку** в каталоге плюс новая папка
   `pipelines/{id}/{variant}/{version}/`. Больше её нигде регистрировать
   не нужно.
2. **Старые версии остаются запускаемыми.** Прогон можно запинить на любую
   версию из списка; `latest` задаёт лишь дефолт для новых диспатчей.
3. **Манифест — это контракт.** Каждая папка версии несёт свой
   `manifest.yaml` с шагами, требуемым окружением и entrypoint'ами —
   диспетчер читает манифест и никогда не интроспектирует код, чтобы
   решить, как запускать.

## Откуда пайплайны запускаются

- **Ночной дейлиран** — прод-планировщик диспатчит
  Collect → Generate → publish по всему флоту контрактов по таймеру.
  Прогон виден как записи `pipeline_run` / `run_step` через API.
- **API** — отдельные прогоны запускаются на контракт или статью.
- **Пины версий** — дейлиран пинит версии пайплайнов явно, поэтому
  свежесмерженная версия не попадает на прод-трафик, пока пин не
  передвинут осознанно.
