fix: ist_antragsteller/ist_regierung Fallback aus Drucksachen-Metadaten
LLM-Output setzt diese Flags nicht zuverlaessig (alle Werte heute None in NRW/18/18246-Beispiel). _row_to_detail leitet sie jetzt im Fallback aus den Drucksachen-Meta ab: - ist_antragsteller := Fraktion in row.fraktionen (Antragsteller-Liste) - ist_regierung := Fraktion in BUNDESLAENDER[bl].regierungsfraktionen Damit erscheinen die 'Antragsteller:in' / 'Regierungsfraktion'-Pills auch bei alten Assessments ohne explizite LLM-Flags. LLM-Wert (falls gesetzt) hat weiterhin Vorrang.
This commit is contained in:
parent
481a791934
commit
045461492f
26
app/main.py
26
app/main.py
@ -436,16 +436,38 @@ def _row_to_detail(row):
|
||||
symbol = cell.get("symbol", "○")
|
||||
matrix_dict[field] = {"rating": rating_normalized, "symbol": symbol}
|
||||
|
||||
# Fallback fuer ist_antragsteller / ist_regierung wenn LLM-Output sie
|
||||
# nicht gesetzt hat: aus den Drucksachen-Metadaten ableiten.
|
||||
# - antragsteller: aus row.fraktionen (das ist die Antragsteller-Liste)
|
||||
# - regierung: aus BUNDESLAENDER[bl].regierungsfraktionen
|
||||
bl_code = (row.get("bundesland") or "").strip().upper()
|
||||
antragsteller_set = set(fraktionen or [])
|
||||
try:
|
||||
from .bundeslaender import BUNDESLAENDER
|
||||
regierung_set = set(
|
||||
BUNDESLAENDER.get(bl_code).regierungsfraktionen
|
||||
if bl_code in BUNDESLAENDER else []
|
||||
)
|
||||
except Exception:
|
||||
regierung_set = set()
|
||||
|
||||
# fraktions_scores: numerische Scores + Begründungen + leere Zitat-Listen (Fix 2+3)
|
||||
fraktions_scores = []
|
||||
for wp in (wahlprogramm_scores or []):
|
||||
fraktion = wp.get("fraktion", "")
|
||||
wp_src = wp.get("wahlprogramm") or {}
|
||||
pp_src = wp.get("parteiprogramm") or {}
|
||||
# LLM-Wert hat Vorrang, sonst Fallback aus Drucksachen-Meta.
|
||||
ist_antrag = wp.get("istAntragsteller", wp.get("ist_antragsteller"))
|
||||
if ist_antrag is None:
|
||||
ist_antrag = fraktion in antragsteller_set
|
||||
ist_reg = wp.get("istRegierung", wp.get("ist_regierung"))
|
||||
if ist_reg is None:
|
||||
ist_reg = fraktion in regierung_set
|
||||
fraktions_scores.append({
|
||||
"fraktion": fraktion,
|
||||
"ist_antragsteller": wp.get("istAntragsteller", wp.get("ist_antragsteller")),
|
||||
"ist_regierung": wp.get("istRegierung", wp.get("ist_regierung")),
|
||||
"ist_antragsteller": ist_antrag,
|
||||
"ist_regierung": ist_reg,
|
||||
"wahlprogramm": {
|
||||
"score": wp_src.get("score", 0),
|
||||
"begruendung": wp_src.get("begruendung", wp_src.get("begründung", "")),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user