Files
glpi-neural-brain/GENERATE-THEN-REVIEW.md
jbergner 440423c5b6
release-tag / release-image (push) Successful in 2m43s
RC-3
2026-08-09 11:29:13 +02:00

6.0 KiB

Research → Generate → Review

Die Artikelpipeline trennt Recherche, Autorenschaft und Qualitätskontrolle bewusst in drei Rollen. Webquellen werden nicht mehr vor der Texterzeugung so lange bewertet, bis eine abstrakte Wissensbasis als „vollständig“ gilt. Stattdessen sammelt das Brain belastbares Volltextmaterial, ein konfigurierbares Autor-Modell erstellt daraus einen vollständigen Artikel und ein getrenntes Reviewer-Modell prüft den sichtbaren Text anschließend Claim für Claim.

Ablauf

interne KB-Quellen
      +
offene SearXNG-Recherche
      ↓
Volltext-Materialpool
      ↓
BRAIN_ARTICLE_SYNTHESIS_MODEL
      ↓
vollständiger Artikelentwurf
      ↓
BRAIN_ARTICLE_REVIEW_MODEL
      ↓
Claim-by-Claim-Prüfung
      ├─ akzeptiert → Staging-KB
      └─ Lücken → gezielte Suchfragen → Nachrecherche → Revision → Review

Die Vorstrukturierung (KnowledgeBrief) dient nur noch dazu, sinnvolle Recherchefragen zu erzeugen und Material zu ordnen. ready_for_article und vorab erkannte critical_gaps sind keine harte Freigabesperre mehr. Ob ein Artikel geschrieben werden darf, entscheidet der Reviewer am tatsächlich erzeugten Text zusammen mit den deterministischen Strukturregeln.

1. Recherche als Materialsammlung

SearXNG arbeitet offen und ohne site:-Filter, ist aber im Cluster/Fast-Modus kein obligatorischer erster Schritt mehr. Bei BRAIN_ARTICLE_RESEARCH_STRATEGY=adaptive schreibt Gemma grundsätzlich aus kohärenten internen Quellen. Eine kleine Webrunde wird deterministisch vorgezogen, wenn Aktualität relevant ist, wenn der Planner für einen operationalen Artikel nur zwei kohärente interne Quellen findet oder wenn ein Entwurf weniger als drei konkrete Lösungsschritte bzw. keine Validierung enthält. Gemmas interne Routingfelder und Reviewer-Lücken können zusätzliche gezielte Evidenz anfordern. Details: ADAPTIVE-ARTICLE-WORKFLOW.md.

Frisch recherchiertes Artikelmaterial wird zunächst nur als Evidence-Datei mit pending_article_review persistiert. Es erzeugt noch keinen Graph-Node. Erst eine vom Reviewer tatsächlich für einen unterstützten Claim verwendete Quelle wird materialisiert und grounded.

Deutsch- und englischsprachige Quellen dürfen gemeinsam verwendet werden. Die sichtbare Artikelsprache wird separat durch BRAIN_ARTICLE_LANGUAGE festgelegt.

2. Eigenes Autor-Modell

BRAIN_ARTICLE_SYNTHESIS_MODEL=gemma3:12b
BRAIN_ARTICLE_LANGUAGE=de-DE

Das Autor-Modell erhält:

  • die ausgewählten internen KB-Volltexte;
  • den Artikeltyp und Pflegeauftrag;
  • die fachliche Vorstrukturierung;
  • den gesammelten Web-Volltext;
  • bei einem Reparaturdurchlauf ausschließlich das Feedback des Reviewers und neu gefundenes Material.

Der Autor bewertet keine Quellen in der sichtbaren Ausgabe. Er erzeugt ausschließlich den späteren KB-Inhalt.

Das Modell muss auf mindestens einem gesunden Ollama-Knoten im vorhandenen Pool installiert sein. /api/status zeigt unter article_model_status separat, ob Autor- und Reviewer-Modell verfügbar sind.

3. Unabhängiger Claim-Reviewer

BRAIN_ARTICLE_REVIEW_MODEL=qwen3:8b

Der Reviewer sieht erst den fertigen Artikel. Er prüft jede wesentliche Behauptung, jeden technischen Schritt, jedes Entscheidungskriterium und jede sicherheitsrelevante Empfehlung gegen die beigefügten internen Quellen und Web-Volltexte.

Jeder Claim erhält einen der Zustände:

  • supported
  • partially_supported
  • unsupported
  • contradicted

Zusätzlich nennt der Reviewer konkrete source_refs. Interne Quellen werden über ihre SOURCE_NODE_ID, Webquellen über R<n> oder ihre URL referenziert.

Ein Artikel wird nur akzeptiert, wenn keine unsupported- oder contradicted-Claims verbleiben und keine Meta-/Prozesssprache im sichtbaren Artikel enthalten ist.

4. Gezielter Reparaturzyklus

BRAIN_ARTICLE_REVIEW_REPAIR_ROUNDS=1

Findet der Reviewer eine nicht belegte Aussage, liefert er missing_evidence_queries und rewrite_instructions. Nur diese konkreten Aussagen lösen weitere SearXNG-Recherche aus. Das Autor-Modell überarbeitet anschließend den Artikel, danach prüft der Reviewer erneut.

Damit wird die zweite Recherchephase durch Probleme im realen Artikel gesteuert und nicht durch immer neue abstrakte Vorab-Gates.

Der Wert kann zwischen 0 und 3 liegen. Für einen einzelnen GPU-/Ollama-Knoten ist 1 ein sinnvoller Startwert.

5. Provenienz

Die Staging-KB-Datei enthält weiterhin nur den sichtbaren KB-Inhalt. Das Audit-Sidecar unter

BRAIN_DATA_DIR/article-metadata/<artikel-id>.json

speichert zusätzlich:

  • research_material: sämtliches Material, das dem Autor zur Verfügung stand;
  • article_review: die vollständige Claim-by-Claim-Bewertung;
  • grounded_research_evidence: nur Webquellen, die der Reviewer für einen supported oder partially_supported Claim tatsächlich referenziert hat;
  • review_repair_attempts;
  • Autor- und Reviewer-Modell.

Im Graphen erhält der Artikel grounded_by-Edges ebenfalls nur zu diesen tatsächlich verwendeten Research-Quellen. Recherchebeifang bleibt als Research-Material erhalten, wird aber nicht als Beleg des Artikels ausgegeben.

6. Gemeinsame Queue

Recherche, Web-Fetch und Ollama-Verarbeitung verwenden weiterhin die gemeinsame begrenzte Work-Queue:

BRAIN_RESEARCH_OLLAMA_MAX_INFLIGHT=2
BRAIN_RESEARCH_OLLAMA_QUEUE_SIZE=64

Zusätzlich gelten die normalen Ollama-Poolgrenzen. Ein separates Autor-Modell erzeugt daher keinen zweiten unkontrollierten GPU-Pool.

Empfohlene Konfiguration

BRAIN_RESEARCH_ENABLED=true
SEARXNG_URL=http://searxng:8080

BRAIN_ARTICLE_SYNTHESIS_ENABLED=true
BRAIN_ARTICLE_LANGUAGE=de-DE
BRAIN_ARTICLE_SYNTHESIS_MODEL=gemma3:12b
BRAIN_ARTICLE_REVIEW_MODEL=qwen3:8b
BRAIN_ARTICLE_REVIEW_REPAIR_ROUNDS=1

BRAIN_ARTICLE_RESEARCH_RESULTS=12
BRAIN_ARTICLE_RESEARCH_FETCH_RESULTS=6
BRAIN_ARTICLE_MAX_RESEARCH_QUERIES=6

BRAIN_RESEARCH_OLLAMA_MAX_INFLIGHT=2
BRAIN_RESEARCH_OLLAMA_QUEUE_SIZE=64

gemma3:12b ist nur ein Beispiel. Jeder auf dem Ollama-Pool vorhandene Chat-Modelname kann als Autor oder Reviewer verwendet werden.