Files
BSN-Chatsystem/projektplan-chatbot.md
T

3.4 KiB

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)