Zurück zur Dokumentation
Guide 00

Synthese-Pipeline — Dokumente vereinen, Widersprüche aufdecken

Die Multi-Dokument-Synthese-Pipeline nimmt einen Satz Seiten/Dokumente aus einem Archiv und erzeugt vereinte Wiki-Seiten: jede Seite synthetisiert die Quellen, meldet, wo die Quellen nicht übereinstimmen (contradiction detection), respektiert die Budgets…

2 Min. Lesezeit

Die Multi-Dokument-Synthese-Pipeline nimmt einen Satz Seiten/Dokumente aus einem Archiv und erzeugt vereinte Wiki-Seiten: jede Seite synthetisiert die Quellen, meldet, wo die Quellen nicht übereinstimmen (contradiction detection), respektiert die Budgets für Token/Aufrufe/Seiten pro Lauf, und berührt das Dateisystem erst nach der selektiven Freigabe dessen, was man einbringen will.

Community-Funktion (die Pipeline läuft auf denselben Infrastrukturen des Chat-Orchestrators; die Budget-Limits pro Lauf). Quellen: docs/SERVICES.md (die Domäne Synthesis, synthesisPageWriter.ts), README.md:33. Provenienz-Zeilen: FACT-CENSUS.md F-SYNTH-1.

Wie die Pipeline läuft

Orchestriert von runSynthesisPipeline (Fassade synthesisService.ts; der Körper in synthesis/synthesisStages.ts — runPipelineStages, callSynthesisLLMStage, …):

SchrittWas geschieht
1. Entitäten-Extraktionaus dem gewählten Corpus (synthesisStages.ts:569)
2. Seite pro ArchivgeneratePageSummary pro Seite (:282)
3-4. Fond und Entscheidungdie Schlussblöcke mit dem System-Prompt (die Wiki-Block-Einspritzung: Pass 4 nur auf der Rolle SYSTEM, synthesisStages.ts:784-788)
WidersprüchesynthesisContradictionService.ts: das Kandidatenpaaren via Jaccard (Schwelle 0.15) + der LLM-Bewerter pro Paar (judgePairContradiction) + die Widerspruchsmarker auf den Seiten
Verwaiste und tote WikilinkssynthesisOrphanService.ts (detectOrphanPages, detectBrokenWikilinks)
SchreibensynthesisPageWriter.ts: applyApprovedChanges persistiert die freigegebenen Änderungen; das Quell-Frontmatter (buildSourceFrontmatter) zitiert die Provenienz

Budget-Tracking

BudgetTracker (synthesisBudgetService.ts) begrenzt Tokens / LLM-Aufrufe / Seiten pro Lauf (die Konfiguration via loadBudgetConfig): die Pipeline hält, wenn das Budget aufgebraucht ist — die bereits geschriebene Ausgabe bleibt gültig. Der Budget-Wachhund steht auf Augenhöhe mit dem des Chat-Orchestrators.

Die selektive Freigabe

Die von der Synthese vorgeschlagenen Änderungen landed nicht automatisch im Wiki: sie durchlaufen den Freigabe-Fluss (applyApprovedChanges persistiert nur das, was der freigebende Benutzer bestätigt hat). Die deterministische Vorschau (dieselbe Maschine von wikiWriteService) geht jeder Schreiboperation voraus; die Vorschlagsseiten tragen das Quell-Frontmatter.

Widerspruchs-Erkennung

Die Kandidatenpaare entstehen per Ähnlichkeit (Jaccard, Schwelle 0.15) und die verdächtigen Paare gehen an den LLM-Bewerter (judgePairContradiction): das Ergebnis = die Widerspruchsmarker auf den betroffenen Seiten (buildContradictionMarker) + die Aussage-Zusammenfassung (extractClaimSummary). Die Fidelity des Prozesses wird wöchentlich gestichprobt (runFidelitySample, sonntags 03:00 — synthesisFidelityService.ts).

Auslöser und Arbeits-Warteschlangen

  • Post-OCR: die Warteschlange synthesisTriggerService (onOcrJobCompleted) stellt die Synthese-Läufe nach dem OCR-Abschluss in die Warteschlange, mit Abklingzeit (isCooldownActive).
  • Reaper: der Scheduler synthesisReaperJob (alle 15 Minuten) schaltet verwaiste PROCESSING-Läufe auf FAILED.

Diese Anleitung behandelt die Betriebsoberfläche der Synthese-Pipeline; die technische Tiefe steckt im Zwillingsbeitrag:

Provenance

AbschnittQuelle
Fassade / Stufen / Budget / Widersprüchedocs/SERVICES.md (§ Synthesis + die synthesis*-Module) — F-SYNTH-1
Auslöser / Reaperdocs/SERVICES.md (§ Schedulers & jobs — synthesisTriggerService, synthesisReaperJob)
Die README-ZeileREADME.md:33 (die Synthese-Zeile) — F-SYNTH-1
Die Wiki-Einspritzung / Pass 4docs/WIKI_SCHEMA_LAYER.md (§ Injection seams — synthesisStages.ts:784-788)

---

Betreiber-Referenz — Simmetric Chat v0.28.1 (Dokumente aktualisiert am 2026-10-02, Census-SHA `aca5b8ff`).