homelab-brain/redax-wp/PLAN_CHAT_FREIE_PROMPTS.md
2026-03-03 16:19:53 +07:00

148 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Plan: Chat-Fenster mit freier Promptwahl
**Stand:** 02.03.2026
**Status:****Umgesetzt**
**Ziel:** Schnelle, direkte KI-Interaktion ohne Umweg über feste Prompts
---
## 1. Übersicht
| Element | Beschreibung |
|--------|--------------|
| **Chatfenster** | Unter dem Editor, freie Texteingabe an die KI |
| **Kontext** | Aktueller Artikel (Titel, Inhalt, SEO) wird automatisch mitgegeben |
| **Prompts** | Feste Prompts bleiben optional (für "KI generieren" aus Quelle) |
| **Priorität** | Chat = Hauptweg, feste Prompts = Nebenweg |
---
## 2. Layout
```
┌─────────────────────────────────────────────────────────────┐
│ Nav, Status, Publish-Ziele │
├──────────────────────────────┬──────────────────────────────┤
│ Inhalt (Editor) │ Vorschau │
│ │ │
├──────────────────────────────┴──────────────────────────────┤
│ 💬 KI-Chat (freie Eingabe) │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Nachrichtenverlauf (User/KI) │ │
│ ├───────────────────────────────────────────────────────┤ │
│ │ [Eingabefeld] [Senden] │ │
│ └─────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ SEO, Medien, Buttons │
├─────────────────────────────────────────────────────────────┤
│ Redaktionsplan (nach Scrollen) │
└─────────────────────────────────────────────────────────────┘
```
- Chat direkt unter Editor + Vorschau
- **Standard: offen** (schnelle Interaktion), einklappbar mit Chevron „▸ KI-Chat“
- Eingabefeld groß genug für längere Anweisungen
---
## 3. API
### Endpoint: `POST /api/chat`
**Request:**
```json
{
"message": "Mach den ersten Absatz knackiger",
"history": [
{"role": "user", "content": "..."},
{"role": "assistant", "content": "..."}
],
"context": {
"title": "Aktueller Titel",
"content": "Aktueller Inhalt...",
"seo_title": "...",
"seo_description": "...",
"focus_keyword": "..."
}
}
```
**Response:**
```json
{
"reply": "Antwort der KI...",
"suggested_content": "Optional: überarbeiteter Text zum Übernehmen"
}
```
- Backend: OpenRouter wie bei `/api/polish`, aber mit Chat-System-Prompt
- System-Prompt: „Du bist ein Redakteurs-Assistent. Der User arbeitet an einem Artikel. Kontext: [Titel, Inhalt, SEO]. Antworte kurz und handlungsorientiert. Wenn der User Änderungen will, gib den überarbeiteten Text als `suggested_content` zurück.“
---
## 4. Chat-UI (Frontend)
| Element | Beschreibung |
|---------|--------------|
| Nachrichtenliste | User-Nachrichten rechts/unterschiedlich, KI links/anders |
| Eingabefeld | Textarea oder input, Enter zum Senden |
| Senden-Button | Expliziter Klick |
| Spinner | Während die KI antwortet |
| Übernehmen-Button | Bei Antworten mit `suggested_content` übernimmt in Editor/SEO |
| History | Nur Session (im Speicher), max. 6 Nachrichtenpaare, kein DB-Persistenz (v1) |
---
## 5. Ablauf
1. User tippt im Chat: „Kürze den zweiten Absatz“
2. Frontend sendet: message + context (aktueller Artikel) + history (falls vorhanden)
3. Backend ruft OpenRouter auf, KI antwortet
4. Antwort erscheint im Chat
5. Optional: KI liefert `suggested_content` → Button „In Editor übernehmen“
---
## 6. Feste Prompts (Anpassung)
| Änderung | Beschreibung |
|----------|--------------|
| Quelle + Ton + Prompt | Bleiben für „KI generieren“ (Artikel aus URL/Text erzeugen) |
| Position | Können kompakter werden (z.B. eine Zeile), Chat ist prominenter |
| Optional | Wenn User nur chatten will: Quelle/Prompt ignorierbar |
---
## 7. Aufwand (grobe Schätzung)
| Teil | Zeilen / Aufwand |
|------|------------------|
| `POST /api/chat` in app.py | ~40 Zeilen |
| Chat-UI in index.html | ~80 Zeilen HTML/JS |
| Integration Kontext (getArticleData) | ~5 Zeilen |
| **Gesamt** | ~23 Stunden |
---
## 8. Entscheidungen (festgelegt)
| Punkt | Entscheidung |
|-------|--------------|
| **Chat Standard** | Offen (schnelle Interaktion), einklappbar optional |
| **History persistieren** | Nein nur Session, bei Artikel-Wechsel/Reload neu |
| **Übernehmen-Button** | Zeigen, wenn `suggested_content` vorhanden |
| **Max. History** | 6 Nachrichtenpaare (12 Nachrichten) |
---
## 9. Reihenfolge (bei Umsetzung)
1. API-Endpoint `/api/chat`
2. Chat-UI (Eingabe + Senden + Anzeige)
3. Kontext-Anbindung (Artikel mitschicken)
4. Übernehmen-Button (optional)
5. Feinschliff (Spinner, Fehlerbehandlung, Einklappbar)
---
*Plan erstellt für Redax-WP. Umsetzung nur nach explizitem OK.*