Die Pipeline liess GPT Artikel umschreiben und legte sie direkt als geplanten WordPress-Beitrag an - ohne dass ein Mensch sie gesehen hat. Der KI-Hinweis auf dem Blog sagt aber redaktionelle Pruefung zu, und genau daran haengt die Ausnahme in Art. 50 Abs. 4 KI-VO. Neuer Status `pending_review` zwischen Rewrite und Publish: Die Pipeline endet beim Rewrite, ohne WordPress-Beitrag und ohne Publish-Slot. Erst die Freigabe im Portal stempelt Pruefer und Systemzeit, reserviert den Slot und legt den Beitrag an. - Migration: editorial_review_at/_by/_note, Status-CHECK erweitert - Spalten-Migration laeuft nach den Tabellen-Neubauten erneut, sonst verwirft der aeltere no_image-Rebuild die frisch angelegten Spalten - Jeder Weg nach `approved` stempelt (Button, Statuswechsel, API) - Jeder maschinelle Rewrite loescht einen alten Stempel - Telegram: Info mit Portal-Link statt Draft-Meldung, kein Freigabe-Button - Altbestand bleibt unberuehrt und veroeffentlicht weiter - EDITORIAL_REVIEW_REQUIRED=false stellt den alten Ablauf wieder her - 14 neue Tests, docs/KI-VO.md Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
59 lines
3.3 KiB
Text
59 lines
3.3 KiB
Text
# ─── App ────────────────────────────────────────────────────────────────────
|
|
APP_ENV=development
|
|
APP_NAME=rss-news-backend
|
|
APP_SECRET_KEY=replace-with-a-long-random-secret
|
|
APP_DB_PATH=backend/data/rss_news.db
|
|
|
|
APP_ADMIN_USERNAME=admin
|
|
APP_ADMIN_PASSWORD=change-me
|
|
|
|
SESSION_COOKIE_NAME=rss_news_session
|
|
SESSION_MAX_AGE_SECONDS=28800
|
|
|
|
# ─── WordPress ──────────────────────────────────────────────────────────────
|
|
WP_BASE_URL=https://your-site.tld
|
|
WP_USERNAME=your-wp-username
|
|
WP_PASSWORD=your-wp-app-password
|
|
# Status für neue Beiträge: draft | future | publish
|
|
WORDPRESS_DEFAULT_STATUS=draft
|
|
|
|
# ─── OpenAI ─────────────────────────────────────────────────────────────────
|
|
OPENAI_API_KEY=sk-...
|
|
# gpt-4o-mini empfohlen (Kosten/Qualität)
|
|
OPENAI_MODEL=gpt-4o-mini
|
|
|
|
# ─── Telegram Bot ────────────────────────────────────────────────────────────
|
|
# Bot-Token von @BotFather
|
|
TELEGRAM_BOT_TOKEN=123456789:ABC...
|
|
# Chat-ID deines persönlichen Chats oder einer Gruppe
|
|
TELEGRAM_CHAT_ID=123456789
|
|
# Zufälliger Secret-Token zur Webhook-Absicherung (mindestens 20 Zeichen)
|
|
TELEGRAM_WEBHOOK_SECRET=replace-with-random-secret-min-20-chars
|
|
|
|
# ─── N8N API-Key ─────────────────────────────────────────────────────────────
|
|
# Wird von N8N im Header X-API-Key mitgeschickt
|
|
N8N_API_KEY=replace-with-strong-random-key
|
|
|
|
# ─── Pipeline-Einstellungen ──────────────────────────────────────────────────
|
|
# Relevanz-Score >= dieser Wert: automatisch verarbeiten (0-100)
|
|
PIPELINE_RELEVANCE_AUTO=80
|
|
# Relevanz-Score >= dieser Wert, aber < AUTO: Telegram-Warnung senden
|
|
PIPELINE_RELEVANCE_WARN=60
|
|
# Maximale Veröffentlichungen pro Tag innerhalb des Fensters unten
|
|
PIPELINE_MAX_DRAFTS_PER_DAY=4
|
|
# Bevorzugte Veröffentlichungszeiten (Stunden, kommagetrennt, Europe/Berlin)
|
|
PIPELINE_PUBLISH_HOURS=9,12,15,18
|
|
# Frühester/spätester Slot sowie Mindestabstand für zusätzliche Slots
|
|
PIPELINE_PUBLISH_START_HOUR=9
|
|
PIPELINE_PUBLISH_END_HOUR=19
|
|
PIPELINE_PUBLISH_MIN_GAP_HOURS=3
|
|
|
|
# ─── Redaktionelle Freigabe (Art. 50 Abs. 4 KI-VO) ───────────────────────────
|
|
# true: Die Pipeline stoppt nach dem Rewrite. Der Artikel wartet im Portal auf
|
|
# die Freigabe durch einen Menschen; erst danach entstehen WordPress-
|
|
# Beitrag und Veröffentlichungs-Slot.
|
|
# false: alter, vollautomatischer Ablauf (dann trägt der KI-Hinweis auf dem Blog
|
|
# die Aussage "redaktionell geprüft" zu Unrecht).
|
|
EDITORIAL_REVIEW_REQUIRED=true
|
|
# Basis-URL des Portals für die Deep-Links in den Telegram-Meldungen
|
|
PORTAL_BASE_URL=https://news.vanityontour.de
|