К документации
Руководство 00

Синтез-конвейер — объединять документы, вскрывать противоречия

Синтез-конвейер мульти-документа берёт набор страниц/документов архива и производит объединённые вики-страницы: каждая страница синтезирует источники, сигналит, где источники не согласны (contradiction detection), соблюдает бюджеты токенов/вызовов/страни…

1 мин чтения

Синтез-конвейер мульти-документа берёт набор страниц/документов архива и производит объединённые вики-страницы: каждая страница синтезирует источники, сигналит, где источники не согласны (contradiction detection), соблюдает бюджеты токенов/вызовов/страниц на запуск, и трогает файловую систему только после выборочного одобрения того, что хотят внести.

Функция Community (конвейер работает на тех же инфраструктурах chat orchestrator; бюджетные лимиты на запуск). Источники: docs/SERVICES.md (домен Synthesis, synthesisPageWriter.ts), README.md:33. Строоки происхождения: FACT-CENSUS.md F-SYNTH-1.

Как работает конвейер

Конвейер оркестрируется runSynthesisPipeline (фасад synthesisService.ts; тело в synthesis/synthesisStages.ts — runPipelineStages, callSynthesisLLMStage, …):

ШагЧто делает
1. Извлечение сущностейиз выбранного корпуса (synthesisStages.ts:569)
2. Страница на архивgeneratePageSummary на страницу (:282)
3-4. Фонетика и решениефинальные блоки с system prompt (внедрение wiki-блока: Pass 4 только на роли SYSTEM, synthesisStages.ts:784-788)
ПротиворечияsynthesisContradictionService.ts: спаривание кандидатов через Jaccard (порог 0.15) + LLM-судья на пару (judgePairContradiction) + маркеры противоречий на страницах
Сироты и битые викиссылкиsynthesisOrphanService.ts (detectOrphanPages, detectBrokenWikilinks)
ЗаписьsynthesisPageWriter.ts: applyApprovedChanges persistирует одобренные правки; frontmatter источника (buildSourceFrontmatter) цитирует происхождение

Трекинг бюджета

BudgetTracker (synthesisBudgetService.ts) ограничивает токены / LLM-вызовы / страницы на запуск (конфигурация через loadBudgetConfig): конвейер останавливается, когда бюджет исчерпан — уже записанный вывод остаётся действительным. Бюджетный watchdog наравне с chat orchestrator-ским.

Выборочное одобрение

Правки, предложенные синтезом, НЕ приземляются автоматически в вики: они проходят через поток одобрения (applyApprovedChanges сохраняет только то, что утверждающий подтвердил). Детерминированное превью (та же машина wikiWriteService) предшествует каждой записи; страницы-предложения несут frontmatter источника.

Обнаружение противоречий

Пары-кандидаты образуются по похожести (Jaccard, порог 0.15), подозрительные пары идут к LLM-судье (judgePairContradiction): результат = маркеры противоречий на замешанных страницах (buildContradictionMarker) + резюме утверждения (extractClaimSummary). Плотность процесса сэмплируется еженедельно (runFidelitySample, воскресенье 03:00 — synthesisFidelityService.ts).

Триггеры и рабочие очереди

  • Пост-OCR: очередь synthesisTriggerService (onOcrJobCompleted) ставит в очередь синтез-запуски после OCR-завершения, с выдержкой (isCooldownActive).
  • Reaper: планировщик synthesisReaperJob (каждые 15 минут) переключает осиротевшие PROCESSING-запуски в FAILED.

Это руководство описывает операционную поверхность синтез-конвейера; техническая глубина живёт в статье-близнеце:

Provenance

РазделИсточник
Фасад / этапы / бюджет / противоречияdocs/SERVICES.md (§ Synthesis + модули synthesis*) — F-SYNTH-1
Триггеры / reaperdocs/SERVICES.md (§ Schedulers & jobs — synthesisTriggerService, synthesisReaperJob)
Строка READMEREADME.md:33 (строка синтеза) — F-SYNTH-1
Внедрение вики / Pass 4docs/WIKI_SCHEMA_LAYER.md (§ Injection seams — synthesisStages.ts:784-788)

---

Справочник оператора — Simmetric Chat v0.28.1 (документы обновлены 2026-10-02, SHA переписи `aca5b8ff`).