From cbfb6084719ef2ffa451c4eb9dcdf16eaf3f2611 Mon Sep 17 00:00:00 2001 From: Claude Code Date: Sun, 3 May 2026 20:43:39 +0000 Subject: [PATCH] feat(translator): Feature-Flag TRANSLATOR_ENABLED zum Abschalten Ueber die ENV-Variable TRANSLATOR_ENABLED (default true) kann der Translator-Agent komplett deaktiviert werden. Wenn false: - translate_articles steigt mit return [] aus, ohne Claude-Calls - Fremdsprachige Artikel bleiben unuebersetzt (headline_de/content_de NULL) Hintergrund: Bei Lage 6 Irankonflikt sind 10.210 Artikel ohne DE-Uebersetzung aufgelaufen. Pro Refresh werden 2042 Batches sequentiell gestreamt (~25s/Batch -> 13.5h Gesamtdauer pro Refresh), was den Pipeline-Step factcheck blockiert und die Queue lahmlegt. Bis das Performance-Thema geloest ist (Parallelisierung, Relevanz-Filter, Hard-Cap), wird der Agent live deaktiviert. Zustand spaeter ueber .env wieder aktivierbar. Live-.env wurde mit TRANSLATOR_ENABLED=false ergaenzt. --- src/agents/translator.py | 9 ++++++++- src/config.py | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/agents/translator.py b/src/agents/translator.py index 511e523..6225d87 100644 --- a/src/agents/translator.py +++ b/src/agents/translator.py @@ -12,7 +12,7 @@ import logging import re from agents.claude_client import call_claude, ClaudeUsage, UsageAccumulator -from config import CLAUDE_MODEL_FAST +from config import CLAUDE_MODEL_FAST, TRANSLATOR_ENABLED logger = logging.getLogger("osint.translator") @@ -230,6 +230,13 @@ async def translate_articles( if not articles: return [] + if not TRANSLATOR_ENABLED: + logger.info( + "Translator deaktiviert (TRANSLATOR_ENABLED=false), %d Artikel uebersprungen", + len(articles), + ) + return [] + all_translations = [] for i in range(0, len(articles), batch_size): batch = articles[i : i + batch_size] diff --git a/src/config.py b/src/config.py index 6dfaa61..21a48f2 100644 --- a/src/config.py +++ b/src/config.py @@ -41,6 +41,10 @@ OUTPUT_LANGUAGE = "Deutsch" # In Kundenversion auf False setzen oder Env-Variable entfernen DEV_MODE = os.environ.get("DEV_MODE", "true").lower() == "true" +# Feature-Flag: Translator-Agent (Haiku) komplett deaktivieren. +# False = keine Uebersetzungen mehr, fremdsprachige Artikel bleiben unuebersetzt. +TRANSLATOR_ENABLED = os.environ.get("TRANSLATOR_ENABLED", "true").lower() == "true" + # RSS-Feeds (Fallback, primär aus DB geladen) RSS_FEEDS = { "deutsch": [