fix: QC-Ratings aus 7 älteren Artikeln entfernt (CHECK 10)
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
# Projektplan: BSN Chatbot (Multi-Channel Intake + RAG-Chat)
|
||||
|
||||
**Stand:** 11. Juni 2026
|
||||
**Server:** 185.162.249.159 (4 Kerne, 7,8 GB RAM)
|
||||
|
||||
---
|
||||
|
||||
## Übersicht
|
||||
|
||||
Zwei Funktionen auf einem System:
|
||||
1. **Intake-System:** User schicken Meldungen per WhatsApp/Telegram — Hermes klassifiziert, speichert in DB
|
||||
2. **RAG-Chatbot auf brettspiel-news.de:** Besucher fragen, Bot antwortet nur aus den Inhalten der Website
|
||||
|
||||
---
|
||||
|
||||
## Phase 1: Prototyp Intake (sofort)
|
||||
|
||||
### 1.1 SQLite-Datenbank
|
||||
- **Tabelle `submissions`**: id, channel, sender_id, type (text/bild/audio/video), content, media_path, status, category, created_at, processed_at
|
||||
- **Tabelle `knowledge`**: id, key, question_pattern, answer, category, tags, valid_from, valid_until
|
||||
- **Tabelle `users`**: id, channel, phone, email, created_at (optional, nur für Kontaktformular)
|
||||
|
||||
### 1.2 WhatsApp Webhook-Receiver
|
||||
- Flask-Endpoint: `POST /whatsapp/webhook`
|
||||
- Meta-Webhook-Verifikation (GET mit verify_token)
|
||||
- Nachricht parsen: Text, Bild, Audio, Video
|
||||
- An Hermes-Verarbeitung weiterreichen
|
||||
|
||||
### 1.3 Simulierter Test
|
||||
- `curl`-Skript zum Testen ohne Meta-Account
|
||||
- Faked WhatsApp-Payload → DB-Eintrag → sichtbar im Dashboard
|
||||
|
||||
### 1.4 Admin-Dashboard (MVP)
|
||||
- Einfache HTML-Tabelle mit allen Submissions
|
||||
- Filter: Kanal, Status, Kategorie, Datum
|
||||
- Detailansicht pro Submission
|
||||
- Kein Login nötig (intern, Token-geschützt)
|
||||
|
||||
---
|
||||
|
||||
## Phase 2: WhatsApp Live (braucht Meta-Account)
|
||||
|
||||
### 2.1 Meta Business Setup
|
||||
- App anlegen (Typ: Business)
|
||||
- WhatsApp-Produkt hinzufügen
|
||||
- Test-Telefonnummer
|
||||
- Permanent Access Token
|
||||
- Webhook-URL eintragen (HTTPS!)
|
||||
|
||||
### 2.2 HTTPS / Let's Encrypt
|
||||
- Domain für 185.162.249.159
|
||||
- Certbot / Let's Encrypt
|
||||
- Nginx als Reverse Proxy
|
||||
|
||||
### 2.3 Produktionsumstellung
|
||||
- Flask → Gunicorn (4 Worker)
|
||||
- Nginx Static Files für Media-Uploads
|
||||
- Systemd-Service für Autostart
|
||||
|
||||
---
|
||||
|
||||
## Phase 3: RAG-Chatbot (brettspiel-news.de)
|
||||
|
||||
### 3.1 Content-API auf brettspiel-news.de
|
||||
- Joomla REST-Endpoint: `/api/articles?author=X&tag=Y&q=Z`
|
||||
- Liefert: Titel, Datum, Excerpt, Tags, URL, ggf. Volltext
|
||||
- Optional: `/api/games`, `/api/authors`, `/api/events`
|
||||
|
||||
### 3.2 RAG-Pipeline (Hermes-Seite)
|
||||
- User-Frage → embedding → Content-API-Suche → relevante Artikel
|
||||
- Hermes formuliert Antwort NUR aus diesen Daten
|
||||
- Quellen-Links in jeder Antwort
|
||||
|
||||
### 3.3 Chat-Widget für Website
|
||||
- JS-Snippet, einbindbar in Joomla
|
||||
- Text-Modus / Audio-Modus (Toggle)
|
||||
- Zeigt Quellen-Links an
|
||||
|
||||
---
|
||||
|
||||
## Phase 4: Spiel Essen (Zukunft)
|
||||
|
||||
### Datenquellen (alle in dieselbe DB)
|
||||
- Hallenplan (Verlage, Stände, Hallen)
|
||||
- Verlagsmeldungen (ausverkaufte Spiele)
|
||||
- Neuheiten-Liste
|
||||
- Live-Submissions während der Messe
|
||||
|
||||
### Täglicher Messe-Artikel
|
||||
- Hermes aggregiert Submissions → Redaktions-Rohfassung
|
||||
- Redaktion (Basti) finalisiert
|
||||
|
||||
---
|
||||
|
||||
## Infrastruktur (parallel zu allen Phasen)
|
||||
|
||||
| Komponente | Status |
|
||||
|-----------|--------|
|
||||
| Piper TTS (Thorsten) | ✅ Läuft |
|
||||
| DeepSeek v4 Flash API | ✅ Läuft |
|
||||
| Telegram-Bridge | ✅ Läuft |
|
||||
| SQLite | 🔜 Phase 1 |
|
||||
| Gunicorn | 🔜 Phase 2 |
|
||||
| HTTPS/Let's Encrypt | ⏳ Braucht Domain |
|
||||
| Meta WhatsApp API | ⏳ Wartet auf Zugangsdaten |
|
||||
| Joomla Content API | ⏳ Nach Joomla-6-Migration |
|
||||
|
||||
---
|
||||
|
||||
## Nächste Schritte
|
||||
|
||||
1. SQLite-Schema anlegen + Admin-Dashboard (jetzt)
|
||||
2. Webhook-Receiver bauen + simulierter Test (jetzt)
|
||||
3. Meta-Account-Zugangsdaten von Daniel (morgen)
|
||||
4. HTTPS einrichten (sobald Domain klar)
|
||||
5. Gunicorn umstellen (Phase 2)
|
||||
6. Content-API auf brettspiel-news.de (nach Joomla-Migration)
|
||||
Reference in New Issue
Block a user