Content-Studio Architektur

Strukturierte Content-Erstellung mit Autorenprofilen, Contracts und Kritikersystem.

Tool/content
Dokumentation/docs/content-studio
API-Referenz/docs/api/content
LLMClaude Opus 4.5
Kritiker-DurchläufeMax. 3

Web-UI (RESTful)

URLBeschreibung
/contentAuftrags-Liste
/content/newNeuer Auftrag
/content/{id}Details anzeigen
/content/{id}/editBearbeiten

Komponenten

Content-Erstellungsauftrag
├── Briefing (Was soll erstellt werden)
├── Autorenprofil (Wer/Wie schreibt)
├── Contract (Qualitätsanforderungen)
├── Strukturdatei (Format/Gliederung)
├── Quellen (RAG-Kontext)
└── Kritikersystem (Review-Prozess)

Workflow

1. BRIEFING
   - Thema eingeben
   - Zielgruppe wählen
   - Umfang definieren

2. KONFIGURATION
   - Autorenprofil wählen
   - Contract wählen
   - Struktur wählen
   - Quellen auswählen (RAG)

3. GENERIERUNG
   - Kapitel-für-Kapitel
   - Fortschrittsanzeige

4. CRITIQUE (max 3x)
   - Kritiker analysieren sequenziell
   - Automatische Revision

5. VALIDATE
   - Contract-Prüfung

6. APPROVE
   - Menschliches OK

7. PUBLISH
   - Export, Archivierung

Autorenprofile

Versioniert in Datenbank gespeichert:

{
  "name": "Akademischer Autor",
  "stimme": {
    "ton": "sachlich, präzise",
    "perspektive": "dritte Person"
  },
  "stil": {
    "fachsprache": true,
    "zitate": "häufig, APA 7"
  },
  "tabus": [
    "Umgangssprache",
    "Unbelegte Behauptungen"
  ]
}

Verfügbare Profile

ProfilUse-Case
AkademischFachartikel, Studien
DidaktischLernmaterialien
JournalistischBlog, News
TherapeutischKlientenmaterial

Contracts

Qualitätsverträge mit Vererbung:

{
  "name": "Fachartikel-Standard",
  "anforderungen": {
    "länge": {"min": 1500, "max": 3000},
    "struktur": ["abstract", "einleitung", "hauptteil", "fazit"],
    "quellenangaben": 5
  },
  "validierung": {
    "automatisch": ["wortanzahl", "struktur_check"],
    "manuell": ["inhaltliche_korrektheit"]
  }
}

Kritikersystem

KritikerFokus
FaktenprüferQuellen, Logik, Statistik
StilistSprache, Lesbarkeit
StrukturanalystRoter Faden, Gliederung

Export-Formate

Pipeline-Scripts

Backend-Implementierung der Content-Generierung:

/opt/scripts/pipeline/
├── generate.py       → Content-Generierung Kernlogik
└── web_generate.py   → Web-API Wrapper

generate.py

Hauptmodul für RAG-basierte Content-Generierung mit Kritikersystem.

RAG-ContextQdrant (documents Collection)
LLM PrimaryClaude (Anthropic API)
LLM FallbackMistral (Ollama lokal)
Versionierungcontent_versions Tabelle

Hauptfunktionen

FunktionBeschreibung
generate_content(order_id, model, collection, context_limit)Generiert Content basierend auf Order
run_critique_round(version_id, model)Führt alle aktiven Kritiker aus
revise_content(version_id, model)Erstellt Revision basierend auf Feedback
run_critic(content, critic_id, model)Einzelner Kritiker-Durchlauf

Hilfsfunktionen

FunktionBeschreibung
get_rag_context(briefing, collection, limit)Holt relevanten Kontext aus Qdrant
get_author_profile(profile_id)Lädt Autorenprofil aus DB
get_contract(contract_id)Lädt Content-Contract aus DB
get_structure(structure_id)Lädt Struktur-Template aus DB
get_order(order_id)Lädt Order mit allen verknüpften Daten
build_generation_prompt(...)Baut den Generierungs-Prompt
save_version(order_id, content, version_number)Speichert Content-Version
save_sources(order_id, context)Speichert RAG-Quellen

CLI-Verwendung

# Content generieren
python /opt/scripts/pipeline/generate.py generate <order_id> [model]

# Kritik-Runde starten
python /opt/scripts/pipeline/generate.py critique <version_id> [model]

# Revision erstellen
python /opt/scripts/pipeline/generate.py revise <version_id> [model]

# Beispiel mit Anthropic
python /opt/scripts/pipeline/generate.py generate 1 anthropic

# Beispiel mit Ollama
python /opt/scripts/pipeline/generate.py generate 1 ollama

Status-Workflow

draft → generating → critique → revision/validate → approve → published
                         ↑            ↓
                         └────────────┘ (max 3 Runden)

Rückgabe generate_content

{
  "success": true,
  "order_id": 1,
  "version_id": 5,
  "version_number": 1,
  "content": "Generierter Text...",
  "sources": [
    {"source": "dokument.pdf", "score": 0.89}
  ]
}

Rückgabe run_critique_round

{
  "success": true,
  "round": 1,
  "critiques": [
    {
      "critic_name": "Faktenprüfer",
      "rating": 8,
      "passed": true,
      "issues": [],
      "suggestions": ["Mehr Quellenangaben"],
      "summary": "Inhaltlich korrekt"
    }
  ],
  "all_passed": true
}

web_generate.py

Web-Interface Wrapper für PHP-Integration.

# Content generieren
python /opt/scripts/pipeline/web_generate.py generate <order_id> [model] [collection] [limit]

# Kritik-Runde
python /opt/scripts/pipeline/web_generate.py critique <version_id> [model]

# Revision
python /opt/scripts/pipeline/web_generate.py revise <version_id> [model]

Parameter

ParameterDefaultBeschreibung
modelanthropicLLM-Backend (anthropic/ollama)
collectiondocumentsQdrant Collection für RAG
limit5Anzahl Context-Chunks

Datenbank-Tabellen

TabelleBeschreibung
content_ordersAufträge mit Briefing, Status, Verknüpfungen
content_versionsVersionierte Content-Texte (JSON)
content_sourcesRAG-Quellen pro Order
content_critiquesKritiker-Feedback pro Version
author_profilesAutorenprofile (JSON-Config)
content_contractsQualitätsverträge (JSON-Config)
content_structuresStruktur-Templates (JSON-Config)
criticsKritiker-Definitionen