Volver a la documentación
Guía 00

Pipeline de síntesis — reunir los documentos, descubrir las contradicciones

La pipeline de síntesis multi-documento toma un conjunto de páginas/documentos de un archivo y produce páginas wiki reunidas: cada página sintetiza las fuentes, señala dónde las fuentes no están de acuerdo (contradiction detection), respeta los presupues…

2 min de lectura

La pipeline de síntesis multi-documento toma un conjunto de páginas/documentos de un archivo y produce páginas wiki reunidas: cada página sintetiza las fuentes, señala dónde las fuentes no están de acuerdo (contradiction detection), respeta los presupuestos de tokens/llamadas/páginas por run, y toca el sistema de archivos solo tras la aprobación selectiva de aquello que se quiere insertar.

Función Community (la pipeline corre sobre las mismas infraestructuras del chat orchestrator; los límites de presupuesto por run). Fuentes: docs/SERVICES.md (el dominio Synthesis, synthesisPageWriter.ts), README.md:33. Filas de procedencia: FACT-CENSUS.md F-SYNTH-1.

Cómo corre la pipeline

La pipeline la orquesta runSynthesisPipeline (fachada synthesisService.ts; el cuerpo en synthesis/synthesisStages.ts — runPipelineStages, callSynthesisLLMStage, …):

PasoQué hace
1. Extracción de entidadesdel corpus seleccionado (synthesisStages.ts:569)
2. Página por archivogeneratePageSummary por página (:282)
3-4. El fondo y la decisiónlos bloques finales con el system prompt (la inyección del bloque wiki: Pass 4 solo en el rol SYSTEM, synthesisStages.ts:784-788)
ContradiccionessynthesisContradictionService.ts: el pareo de candidatas vía Jaccard (umbral 0.15) + el juez LLM por pareja (judgePairContradiction) + los marcadores de contradicción sobre las páginas
Huérfanas y wikilinks rotossynthesisOrphanService.ts (detectOrphanPages, detectBrokenWikilinks)
EscriturasynthesisPageWriter.ts: applyApprovedChanges persiste los cambios aprobados; el frontmatter de fuente (buildSourceFrontmatter) cita la procedencia

Seguimiento del presupuesto

BudgetTracker (synthesisBudgetService.ts) acota tokens / llamadas LLM / páginas por run (la configuración vía loadBudgetConfig): la pipeline se detiene cuando el presupuesto se agota — la salida ya escrita sigue válida. El watchdog del presupuesto va a la par con el del chat orchestrator.

La aprobación selectiva

Los cambios propuestos por la síntesis NO aterrizan automáticamente en la wiki: pasan por el flujo de aprobación (applyApprovedChanges persiste solo aquello que quien aprueba confirmó). La vista previa determinista (la misma máquina de wikiWriteService) precede a cada escritura; las páginas propuestas llevan el frontmatter de fuente.

Detección de contradicciones

Las parejas candidatas se forman por similitud (Jaccard, umbral 0.15) y las parejas sospechosas pasan al juez LLM (judgePairContradiction): el resultado = los marcadores de contradicción sobre las páginas implicadas (buildContradictionMarker) + el resumen de la afirmación (extractClaimSummary). La fidelidad del proceso se muestrea semanalmente (runFidelitySample, domingo 03:00 — synthesisFidelityService.ts).

Disparadores y colas de trabajo

  • Post-OCR: la cola synthesisTriggerService (onOcrJobCompleted) encola los run de síntesis tras completarse el OCR, con enfriamiento (isCooldownActive).
  • Reaper: el scheduler synthesisReaperJob (cada 15 minutos) gira los run PROCESSING huérfanos a FAILED.

Esta guía cubre la superficie operativa del pipeline de síntesis; la profundidad técnica vive en el post gemelo:

Provenance

SecciónFuente
Fachada / etapas / presupuesto / contradiccionesdocs/SERVICES.md (§ Synthesis + los módulos synthesis*) — F-SYNTH-1
Disparadores / reaperdocs/SERVICES.md (§ Schedulers & jobs — synthesisTriggerService, synthesisReaperJob)
La línea del READMEREADME.md:33 (la línea del synthesis) — F-SYNTH-1
La inyección wiki / Pass 4docs/WIKI_SCHEMA_LAYER.md (§ Injection seams — synthesisStages.ts:784-788)

---

Referencia operativa — Simmetric Chat v0.28.1 (documentos actualizados el 2026-10-02, SHA del censo `aca5b8ff`).