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:
@@ -743,6 +743,10 @@ class AgentOrchestrator:
|
||||
visibility = incident["visibility"] if "visibility" in incident.keys() else "public"
|
||||
created_by = incident["created_by"] if "created_by" in incident.keys() else None
|
||||
tenant_id = incident["tenant_id"] if "tenant_id" in incident.keys() else None
|
||||
# Org-Sprache fuer alle KI-Agenten (Lagebild, Faktencheck, Recherche)
|
||||
from services.org_settings import get_org_language, language_display
|
||||
output_language_iso = await get_org_language(db, tenant_id) if tenant_id else "de"
|
||||
output_language = language_display(output_language_iso)
|
||||
previous_summary = incident["summary"] or ""
|
||||
previous_sources_json = incident["sources_json"] if "sources_json" in incident.keys() else None
|
||||
previous_developments = incident["latest_developments"] if "latest_developments" in incident.keys() else None
|
||||
@@ -923,6 +927,8 @@ class AgentOrchestrator:
|
||||
international=international, user_id=user_id,
|
||||
existing_articles=existing_for_context,
|
||||
preferred_sources=preferred_sources,
|
||||
output_language=output_language,
|
||||
output_language_iso=output_language_iso,
|
||||
)
|
||||
logger.info(
|
||||
f"Claude-Recherche: {len(results)} Ergebnisse"
|
||||
@@ -1308,12 +1314,14 @@ class AgentOrchestrator:
|
||||
title, description, new_articles_for_analysis,
|
||||
previous_summary, previous_sources_json, incident_type,
|
||||
fact_context_block=fact_context_block,
|
||||
output_language=output_language,
|
||||
)
|
||||
else:
|
||||
logger.info("Erstanalyse: Alle Artikel werden analysiert")
|
||||
return await analyzer.analyze(
|
||||
title, description, all_articles_preloaded, incident_type,
|
||||
fact_context_block=fact_context_block,
|
||||
output_language=output_language,
|
||||
)
|
||||
|
||||
# --- Faktencheck-Task ---
|
||||
@@ -1327,6 +1335,7 @@ class AgentOrchestrator:
|
||||
)
|
||||
return await factchecker.check_incremental_twophase(
|
||||
title, new_articles_for_analysis, existing_facts, incident_type,
|
||||
output_language=output_language,
|
||||
)
|
||||
else:
|
||||
logger.info(
|
||||
@@ -1335,6 +1344,7 @@ class AgentOrchestrator:
|
||||
)
|
||||
return await factchecker.check_incremental(
|
||||
title, new_articles_for_analysis, existing_facts, incident_type,
|
||||
output_language=output_language,
|
||||
)
|
||||
else:
|
||||
# Alle Artikel laden falls nicht vorab geladen (Henne-Ei-Problem:
|
||||
@@ -1346,7 +1356,7 @@ class AgentOrchestrator:
|
||||
(incident_id,),
|
||||
)
|
||||
articles_for_check = [dict(row) for row in await cursor.fetchall()]
|
||||
return await factchecker.check(title, articles_for_check, incident_type)
|
||||
return await factchecker.check(title, articles_for_check, incident_type, output_language=output_language)
|
||||
|
||||
# Pipeline-Schritt 6: Faktencheck zuerst (sequenziell). Liefert den
|
||||
# Faktenkontext fuer das Lagebild, damit dieses auf geprueftem Stand
|
||||
@@ -1573,6 +1583,7 @@ class AgentOrchestrator:
|
||||
dev_analyzer = AnalyzerAgent()
|
||||
dev_text, dev_usage = await dev_analyzer.generate_latest_developments(
|
||||
title, description, dev_summary_source, dev_articles, previous_developments,
|
||||
output_language=output_language,
|
||||
)
|
||||
if dev_usage:
|
||||
usage_acc.add(dev_usage)
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren