Kritiker

KI-gestütztes Qualitätsprüfungs-System mit konfigurierbaren Kritikern.

Modulgenerate.py
Tabellecritics
Ergebnissecontent_critiques

Architektur

Content Version
      ↓
┌─────────────────┐
│  Critic 1       │ → Feedback + Rating
│  Critic 2       │ → Feedback + Rating
│  Critic N       │ → Feedback + Rating
└─────────────────┘
      ↓
all_passed? → validate : revision

Kritiker-Tabelle

FeldTypBeschreibung
idintPrimärschlüssel
namevarcharKritiker-Name (z.B. "Lektor")
fokusjsonPrüfungs-Schwerpunkte
prompt_idintFK zu prompts
is_activeboolAktiv-Status
sort_orderintReihenfolge

Fokus-Bereiche

Der fokus ist ein JSON-Array mit Prüfungsschwerpunkten:

["Grammatik", "Rechtschreibung", "Stil"]
["SEO", "Keywords", "Meta-Beschreibung"]
["Fakten", "Quellen", "Aktualität"]
["Struktur", "Lesbarkeit", "Absätze"]

Kritik-Ablauf

1. run_critique_round() - Zeile 398-470

  1. Version-Content laden
  2. Alle aktiven Kritiker aus DB laden
  3. Kritik-Runde inkrementieren
  4. Jeden Kritiker ausführen
  5. Feedback in content_critiques speichern
  6. Status basierend auf Ergebnis setzen

2. run_critic() - Zeile 335-395

def run_critic(content, critic_id, model="anthropic"):
    - Kritiker aus DB laden
    - Fokus-Bereiche extrahieren
    - Prompt aufbauen
    - LLM aufrufen
    - JSON-Feedback parsen

Feedback-Format

Kritiker liefern strukturiertes JSON:

{
  "rating": 8,
  "passed": true,
  "issues": ["Issue 1", "Issue 2"],
  "suggestions": ["Suggestion 1"],
  "summary": "Kurze Zusammenfassung"
}
FeldTypBeschreibung
ratingintBewertung 1-10
passedboolKriterien erfüllt?
issuesarrayGefundene Probleme
suggestionsarrayVerbesserungsvorschläge
summarystringZusammenfassung

Pass-Logik

all_passed = True
for critic in critics:
    feedback = run_critic(content, critic.id)
    if not feedback.passed:
        all_passed = False

if all_passed:
    status = "validate"  # → Freigabe möglich
else:
    status = "revision"  # → Überarbeitung nötig

Kritik-Speicherung

Tabellecontent_critiques
Felderversion_id, critic_id, round, feedback (JSON)

Revision nach Kritik

Die Funktion revise_content() (Zeile 473-560) lädt alle Kritiken der letzten Runde und erstellt einen Überarbeitungs-Prompt:

## Originaler Text:
{content}

## Feedback der Kritiker:
### Lektor:
- Bewertung: 6/10
- Probleme: Rechtschreibfehler, Satzstellung
- Vorschläge: Absätze kürzen

### SEO-Experte:
- Bewertung: 4/10
- Probleme: Keyword-Dichte zu gering
...

Beispiel-Kritiker

NameFokus
LektorGrammatik, Rechtschreibung, Stil
SEO-ExperteKeywords, Meta, Lesbarkeit
FaktenprüferQuellen, Aktualität, Genauigkeit
StrukturanalystGliederung, Absätze, Überschriften