{
"tool_response": [
{
"type": "text",
"text": "{\n \"success\": true,\n \"doc\": {\n \"id\": 26,\n \"parent_id\": 16,\n \"slug\": \"ki-content\",\n \"path\": \"\/ki-system\/ki-content\",\n \"title\": \"Content\",\n \"description\": \"Strukturierte Content-Erstellung mit Autorenprofilen, Contracts und Kritikersystem.\",\n \"content\": \"<nav class=\\\"breadcrumb\\\">\\n <a href=\\\"\/docs\\\">Dokumentation<\/a> » <a href=\\\"\/docs\/content-studio\\\">Content Studio<\/a> » Architektur\\n<\/nav>\\n\\n<h1>Content-Studio Architektur<\/h1>\\n<p class=\\\"doc-meta\\\"><strong>Erstellt:<\/strong> 2025-12-20 | <strong>Aktualisiert:<\/strong> 2025-12-29<\/p>\\n\\n<p>Strukturierte Content-Erstellung mit Autorenprofilen, Contracts und Kritikersystem.<\/p>\\n\\n<table>\\n <tr><th>Tool<\/th><td><a href=\\\"\/content\\\">\/content<\/a><\/td><\/tr>\\n <tr><th>Dokumentation<\/th><td><a href=\\\"\/docs\/content-studio\\\">\/docs\/content-studio<\/a><\/td><\/tr>\\n <tr><th>API-Referenz<\/th><td><a href=\\\"\/docs\/api\/content\\\">\/docs\/api\/content<\/a><\/td><\/tr>\\n <tr><th>LLM<\/th><td>Claude Opus 4.5<\/td><\/tr>\\n <tr><th>Kritiker-Durchläufe<\/th><td>Max. 3<\/td><\/tr>\\n <tr><th>Datenbank<\/th><td>ki_content<\/td><\/tr>\\n<\/table>\\n\\n<h2>Web-UI (RESTful)<\/h2>\\n<table>\\n <tr><th>URL<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td><a href=\\\"\/content\\\">\/content<\/a><\/td><td>Auftrags-Liste<\/td><\/tr>\\n <tr><td><a href=\\\"\/content\/new\\\">\/content\/new<\/a><\/td><td>Neuer Auftrag<\/td><\/tr>\\n <tr><td>\/content\/{id}<\/td><td>Details anzeigen<\/td><\/tr>\\n <tr><td>\/content\/{id}\/edit<\/td><td>Bearbeiten<\/td><\/tr>\\n<\/table>\\n\\n<h2>Komponenten<\/h2>\\n<pre><code>Content-Erstellungsauftrag\\n├── Briefing (Was soll erstellt werden)\\n├── Autorenprofil (Wer\/Wie schreibt) → aus content_config\\n├── Contract (Qualitätsanforderungen) → aus content_config\\n├── Strukturdatei (Format\/Gliederung) → aus content_config\\n├── Quellen (RAG-Kontext)\\n└── Kritikersystem (Review-Prozess)<\/code><\/pre>\\n\\n<h2>Workflow<\/h2>\\n<pre><code>1. BRIEFING\\n - Thema eingeben\\n - Zielgruppe wählen\\n - Umfang definieren\\n\\n2. KONFIGURATION\\n - Autorenprofil wählen (aus content_config type=author_profile)\\n - Contract wählen (aus content_config type=contract)\\n - Struktur wählen (aus content_config type=structure)\\n - Quellen auswählen (RAG)\\n\\n3. GENERIERUNG\\n - Kapitel-für-Kapitel\\n - Fortschrittsanzeige\\n\\n4. CRITIQUE (max 3x)\\n - Kritiker analysieren sequenziell\\n - Automatische Revision\\n\\n5. VALIDATE\\n - Contract-Prüfung\\n\\n6. APPROVE\\n - Menschliches OK\\n\\n7. PUBLISH\\n - Export, Archivierung<\/code><\/pre>\\n\\n<h2>Autorenprofile<\/h2>\\n<p>Gespeichert in <code>content_config<\/code> mit <code>type='author_profile'<\/code>:<\/p>\\n<pre><code>{\\n \\\"name\\\": \\\"Akademischer Autor\\\",\\n \\\"stimme\\\": {\\n \\\"ton\\\": \\\"sachlich, präzise\\\",\\n \\\"perspektive\\\": \\\"dritte Person\\\"\\n },\\n \\\"stil\\\": {\\n \\\"fachsprache\\\": true,\\n \\\"zitate\\\": \\\"häufig, APA 7\\\"\\n },\\n \\\"tabus\\\": [\\n \\\"Umgangssprache\\\",\\n \\\"Unbelegte Behauptungen\\\"\\n ]\\n}<\/code><\/pre>\\n\\n<h3>Verfügbare Profile<\/h3>\\n<table>\\n <tr><th>Profil<\/th><th>Use-Case<\/th><\/tr>\\n <tr><td>Akademisch<\/td><td>Fachartikel, Studien<\/td><\/tr>\\n <tr><td>Didaktisch<\/td><td>Lernmaterialien<\/td><\/tr>\\n <tr><td>Journalistisch<\/td><td>Blog, News<\/td><\/tr>\\n <tr><td>Therapeutisch<\/td><td>Klientenmaterial<\/td><\/tr>\\n<\/table>\\n\\n<h2>Contracts<\/h2>\\n<p>Gespeichert in <code>content_config<\/code> mit <code>type='contract'<\/code>:<\/p>\\n<pre><code>{\\n \\\"name\\\": \\\"Fachartikel-Standard\\\",\\n \\\"anforderungen\\\": {\\n \\\"länge\\\": {\\\"min\\\": 1500, \\\"max\\\": 3000},\\n \\\"struktur\\\": [\\\"abstract\\\", \\\"einleitung\\\", \\\"hauptteil\\\", \\\"fazit\\\"],\\n \\\"quellenangaben\\\": 5\\n },\\n \\\"validierung\\\": {\\n \\\"automatisch\\\": [\\\"wortanzahl\\\", \\\"struktur_check\\\"],\\n \\\"manuell\\\": [\\\"inhaltliche_korrektheit\\\"]\\n }\\n}<\/code><\/pre>\\n\\n<h2>Kritikersystem<\/h2>\\n<table>\\n <tr><th>Kritiker<\/th><th>Fokus<\/th><\/tr>\\n <tr><td>Faktenprüfer<\/td><td>Quellen, Logik, Statistik<\/td><\/tr>\\n <tr><td>Stilist<\/td><td>Sprache, Lesbarkeit<\/td><\/tr>\\n <tr><td>Strukturanalyst<\/td><td>Roter Faden, Gliederung<\/td><\/tr>\\n<\/table>\\n\\n<h2>Export-Formate<\/h2>\\n<ul>\\n <li>Markdown (Technische Docs)<\/li>\\n <li>HTML (Web-Publishing)<\/li>\\n <li>DOCX (Word)<\/li>\\n <li>PDF (Finale Dokumente)<\/li>\\n<\/ul>\\n\\n<h2>Pipeline-Scripts<\/h2>\\n<p>Backend-Implementierung der Content-Generierung:<\/p>\\n<pre><code>\/var\/www\/scripts\/pipeline\/\\n├── generate.py → Content-Generierung Kernlogik\\n└── web_generate.py → Web-API Wrapper<\/code><\/pre>\\n\\n<h3>generate.py<\/h3>\\n<p>Hauptmodul für RAG-basierte Content-Generierung mit Kritikersystem.<\/p>\\n<table>\\n <tr><th>RAG-Context<\/th><td>Qdrant (documents Collection)<\/td><\/tr>\\n <tr><th>LLM Primary<\/th><td>Claude (Anthropic API)<\/td><\/tr>\\n <tr><th>LLM Fallback<\/th><td>Mistral (Ollama lokal)<\/td><\/tr>\\n <tr><th>Versionierung<\/th><td>content_versions Tabelle<\/td><\/tr>\\n<\/table>\\n\\n<h4>Hauptfunktionen<\/h4>\\n<table>\\n <tr><th>Funktion<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td><code>generate_content(order_id, model, collection, context_limit)<\/code><\/td><td>Generiert Content basierend auf Order<\/td><\/tr>\\n <tr><td><code>run_critique_round(version_id, model)<\/code><\/td><td>Führt alle aktiven Kritiker aus<\/td><\/tr>\\n <tr><td><code>revise_content(version_id, model)<\/code><\/td><td>Erstellt Revision basierend auf Feedback<\/td><\/tr>\\n <tr><td><code>run_critic(content, critic_id, model)<\/code><\/td><td>Einzelner Kritiker-Durchlauf<\/td><\/tr>\\n<\/table>\\n\\n<h4>Hilfsfunktionen<\/h4>\\n<table>\\n <tr><th>Funktion<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td><code>get_rag_context(briefing, collection, limit)<\/code><\/td><td>Holt relevanten Kontext aus Qdrant<\/td><\/tr>\\n <tr><td><code>get_author_profile(profile_id)<\/code><\/td><td>Lädt Autorenprofil aus content_config<\/td><\/tr>\\n <tr><td><code>get_contract(contract_id)<\/code><\/td><td>Lädt Content-Contract aus content_config<\/td><\/tr>\\n <tr><td><code>get_structure(structure_id)<\/code><\/td><td>Lädt Struktur-Template aus content_config<\/td><\/tr>\\n <tr><td><code>get_order(order_id)<\/code><\/td><td>Lädt Order mit allen verknüpften Daten<\/td><\/tr>\\n <tr><td><code>build_generation_prompt(...)<\/code><\/td><td>Baut den Generierungs-Prompt<\/td><\/tr>\\n <tr><td><code>save_version(order_id, content, version_number)<\/code><\/td><td>Speichert Content-Version<\/td><\/tr>\\n <tr><td><code>save_sources(order_id, context)<\/code><\/td><td>Speichert RAG-Quellen<\/td><\/tr>\\n<\/table>\\n\\n<h4>CLI-Verwendung<\/h4>\\n<pre><code># Content generieren\\npython \/var\/www\/scripts\/pipeline\/generate.py generate <order_id> [model]\\n\\n# Kritik-Runde starten\\npython \/var\/www\/scripts\/pipeline\/generate.py critique <version_id> [model]\\n\\n# Revision erstellen\\npython \/var\/www\/scripts\/pipeline\/generate.py revise <version_id> [model]\\n\\n# Beispiel mit Anthropic\\npython \/var\/www\/scripts\/pipeline\/generate.py generate 1 anthropic\\n\\n# Beispiel mit Ollama\\npython \/var\/www\/scripts\/pipeline\/generate.py generate 1 ollama<\/code><\/pre>\\n\\n<h4>Status-Workflow<\/h4>\\n<pre><code>draft → generating → critique → revision\/validate → approve → published\\n ↑ ↓\\n └────────────┘ (max 3 Runden)<\/code><\/pre>\\n\\n<h2>Datenbank-Tabellen (ki_content)<\/h2>\\n<table>\\n <tr><th>Tabelle<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td>content_orders<\/td><td>Aufträge mit Briefing, Status, Verknüpfungen<\/td><\/tr>\\n <tr><td>content_versions<\/td><td>Versionierte Content-Texte (JSON)<\/td><\/tr>\\n <tr><td>content_sources<\/td><td>RAG-Quellen pro Order<\/td><\/tr>\\n <tr><td>content_critiques<\/td><td>Kritiker-Feedback pro Version<\/td><\/tr>\\n <tr><td><strong>content_config<\/strong><\/td><td>Unified Config: Autorenprofile, Contracts, Strukturen (type-Feld)<\/td><\/tr>\\n <tr><td>content_config_history<\/td><td>Config-Änderungshistorie<\/td><\/tr>\\n <tr><td>critics<\/td><td>Kritiker-Definitionen<\/td><\/tr>\\n<\/table>\\n\\n<p><strong>Hinweis:<\/strong> Die früheren separaten Tabellen <code>author_profiles<\/code>, <code>content_contracts<\/code> und <code>content_structures<\/code> wurden in die einheitliche <code>content_config<\/code> Tabelle konsolidiert. Der Typ wird über das <code>type<\/code>-Feld unterschieden.<\/p>\",\n \"status\": \"published\",\n \"sort_order\": 10,\n \"depth\": 1,\n \"created_at\": \"2025-12-20T11:13:58\",\n \"updated_at\": \"2025-12-29T15:01:21\"\n }\n}"
}
]
}