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", "○")
|
symbol = cell.get("symbol", "○")
|
||||||
matrix_dict[field] = {"rating": rating_normalized, "symbol": 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: numerische Scores + Begründungen + leere Zitat-Listen (Fix 2+3)
|
||||||
fraktions_scores = []
|
fraktions_scores = []
|
||||||
for wp in (wahlprogramm_scores or []):
|
for wp in (wahlprogramm_scores or []):
|
||||||
fraktion = wp.get("fraktion", "")
|
fraktion = wp.get("fraktion", "")
|
||||||
wp_src = wp.get("wahlprogramm") or {}
|
wp_src = wp.get("wahlprogramm") or {}
|
||||||
pp_src = wp.get("parteiprogramm") 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({
|
fraktions_scores.append({
|
||||||
"fraktion": fraktion,
|
"fraktion": fraktion,
|
||||||
"ist_antragsteller": wp.get("istAntragsteller", wp.get("ist_antragsteller")),
|
"ist_antragsteller": ist_antrag,
|
||||||
"ist_regierung": wp.get("istRegierung", wp.get("ist_regierung")),
|
"ist_regierung": ist_reg,
|
||||||
"wahlprogramm": {
|
"wahlprogramm": {
|
||||||
"score": wp_src.get("score", 0),
|
"score": wp_src.get("score", 0),
|
||||||
"begruendung": wp_src.get("begruendung", wp_src.get("begründung", "")),
|
"begruendung": wp_src.get("begruendung", wp_src.get("begründung", "")),
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user