feat(pipeline): output_language pro Org durch die Pipeline reichen
- OUTPUT_LANGUAGE Konstante aus config.py entfernt (jetzt pro Org in organization_settings). - Orchestrator laedt output_language einmal pro Refresh aus der Org-Sprache. - researcher.search(), analyzer.analyze/.analyze_incremental/.generate_latest_developments, factchecker.check/.check_incremental/.check_incremental_twophase bekommen output_language als Parameter (Default Deutsch). - LANG_INTERNATIONAL / LANG_GERMAN_ONLY (+ Deep-Varianten) sind Funktionen, die je nach output_language die Sprachanweisung erzeugen (Deutsch | English | Fallback). - Sprachfilter in researcher.search ist org-relativ: bei nicht-international werden Artikel mit Sprache != output_language_iso gefiltert. Phase 2 von 8 (eng_demo / Org-Sprache). Bestandsorgs unveraendert, weil Default-Setting weiterhin de (siehe Phase-1-Migration).
Dieser Commit ist enthalten in:
@@ -396,14 +396,13 @@ class AnalyzerAgent:
|
||||
articles_text += f"Inhalt: {content[:800]}\n"
|
||||
return articles_text
|
||||
|
||||
async def analyze(self, title: str, description: str, articles: list[dict], incident_type: str = "adhoc", fact_context_block: str = "") -> tuple[dict | None, ClaudeUsage | None]:
|
||||
async def analyze(self, title: str, description: str, articles: list[dict], incident_type: str = "adhoc", fact_context_block: str = "", output_language: str = "Deutsch") -> tuple[dict | None, ClaudeUsage | None]:
|
||||
"""Erstanalyse: Analysiert alle Meldungen zu einem Vorfall (erster Refresh)."""
|
||||
if not articles:
|
||||
return None, None
|
||||
|
||||
articles_text = self._format_articles_text(articles)
|
||||
|
||||
from config import OUTPUT_LANGUAGE
|
||||
today = datetime.now(TIMEZONE).strftime("%d.%m.%Y")
|
||||
template = BRIEFING_PROMPT_TEMPLATE if incident_type == "research" else ANALYSIS_PROMPT_TEMPLATE
|
||||
prompt = template.format(
|
||||
@@ -411,7 +410,7 @@ class AnalyzerAgent:
|
||||
description=description or "Keine weiteren Details",
|
||||
articles_text=articles_text,
|
||||
today=today,
|
||||
output_language=OUTPUT_LANGUAGE,
|
||||
output_language=output_language,
|
||||
fact_context_block=fact_context_block,
|
||||
)
|
||||
|
||||
@@ -435,6 +434,7 @@ class AnalyzerAgent:
|
||||
previous_sources_json: str | None,
|
||||
incident_type: str = "adhoc",
|
||||
fact_context_block: str = "",
|
||||
output_language: str = "Deutsch",
|
||||
) -> tuple[dict | None, ClaudeUsage | None]:
|
||||
"""Inkrementelle Analyse: Aktualisiert das Lagebild mit nur den neuen Artikeln.
|
||||
|
||||
@@ -465,7 +465,6 @@ class AnalyzerAgent:
|
||||
except (json.JSONDecodeError, TypeError):
|
||||
previous_sources_text = "Fehler beim Laden der bisherigen Quellen"
|
||||
|
||||
from config import OUTPUT_LANGUAGE
|
||||
today = datetime.now(TIMEZONE).strftime("%d.%m.%Y")
|
||||
|
||||
template = INCREMENTAL_BRIEFING_PROMPT_TEMPLATE if incident_type == "research" else INCREMENTAL_ANALYSIS_PROMPT_TEMPLATE
|
||||
@@ -476,7 +475,7 @@ class AnalyzerAgent:
|
||||
previous_sources_text=previous_sources_text,
|
||||
new_articles_text=new_articles_text,
|
||||
today=today,
|
||||
output_language=OUTPUT_LANGUAGE,
|
||||
output_language=output_language,
|
||||
fact_context_block=fact_context_block,
|
||||
)
|
||||
|
||||
@@ -580,6 +579,7 @@ class AnalyzerAgent:
|
||||
summary: str,
|
||||
recent_articles: list[dict],
|
||||
previous_developments: str | None = None,
|
||||
output_language: str = "Deutsch",
|
||||
) -> tuple[str | None, ClaudeUsage | None]:
|
||||
"""Generiert die Kachel 'Neueste Entwicklungen' aus dem Lagebild.
|
||||
|
||||
@@ -598,7 +598,7 @@ class AnalyzerAgent:
|
||||
if not recent_articles:
|
||||
return prev, None
|
||||
|
||||
from config import OUTPUT_LANGUAGE, CLAUDE_MODEL_FAST
|
||||
from config import CLAUDE_MODEL_FAST
|
||||
today = datetime.now(TIMEZONE).strftime("%d.%m.%Y")
|
||||
|
||||
# Kompakter Artikel-Block: nur die für Zeitstempel/Quellen nötigen Felder.
|
||||
@@ -629,7 +629,7 @@ class AnalyzerAgent:
|
||||
summary=summary.strip(),
|
||||
articles_text=articles_text,
|
||||
today=today,
|
||||
output_language=OUTPUT_LANGUAGE,
|
||||
output_language=output_language,
|
||||
)
|
||||
|
||||
try:
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren