Stimmverhalten: Auto-Verknüpfung Plenum-Vote ↔ Bewertung #172
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Das Stimmverhalten-Feature aus #165 zeigt aktuell wenig Daten. Stand 2026-05-03 auf dev:
Ursache
Bewertung und Vote-Ingest sind heute orthogonal:
assessments(manuell ausgelöst, oder via Cron-Bewerter)plenum_vote_results(täglich aus Plenarprotokollen, app/protokoll_parsers/)app/auswertungen.py:_load_assessments_with_votes()joint sie passiv beim LesenEs gibt keinen Punkt im System, der beim Eingang einer neuen Drucksache prüft "ist die andere Seite auch schon da?".
Vorschläge
A) Bei jedem neuen Vote-Ingest: Auto-Bewertung anstoßen?
Wenn Vote-Ingest eine Drucksache findet, die noch keine Bewertung hat → automatisch eine Bewertung anstoßen. Aber: 7234 Votes × LLM-Call à ~2 Cent = ~145 € für Backfill. Das ist die teure Option.
B) Hinweis-System ohne Auto-Trigger
Auswertungs-Dashboard zeigt Banner: "X Drucksachen mit Plenum-Vote haben keine Bewertung — willst du Top-N davon bewerten lassen?". User entscheidet pro Charge (z.B. 10 Anträge à 20 Cent).
C) Bewertungs-Pipeline schaut nach Vote-Result
Beim Bewerten einer neuen Drucksache (manuell via UI oder Cron) wird im Hintergrund nachgeschaut, ob Plenum-Vote existiert. Wenn nein: Notiz "noch nicht abgestimmt" im Assessment. Wenn ja: kein extra Action — der Vote ist schon da. Das ist günstig (kein extra LLM), aber löst die Sparse-Daten-Lücke nicht.
D) Cron-Bewerter erweitern: "alle Anträge mit Vote priorisiert bewerten"
app/cron_bewerter.py(oder ähnliches) bekommt einen neuen Modus: "Bewerte primär Drucksachen, die einen Plenum-Vote haben aber keine Bewertung". Pro Tag z.B. Top-20 nach Datum-Aktualität → ~40 Cent/Tag. In 6 Monaten wäre der Backlog abgearbeitet.Empfehlung
B + D kombinieren:
Out of Scope
Aufwand
Implementiert in commit
8136a1a(Variante B aus dem Issue + zusätzlich D).Variante B (Banner) live: Stimmverhalten-Tab zeigt jetzt einen orange-getönten Banner mit:
Variante D (gezielte Auto-Bewertung) live: Endpoint
POST /api/auswertungen/vote-orphans/auto-rate(Admin-only, rate-limited 3/min, Default-Limit 10, Max 50). Iteriert über Top-N Vote-Orphans nach parsed_at desc, lädt Antragstext per Adapter, enqueued einen Bewertungs-Job pro Drucksache. Skipped-Reasons (no_adapter, empty_text, queue_full) sind in der Response sichtbar.Variante A (Auto-Trigger bei Vote-Ingest) bewusst nicht umgesetzt — wäre bei 7281 Votes × ~2 Cent ein 145 €-Backfill auf einmal. Stattdessen kontrollierter Pull-Modus über den Banner-Button.
Variante C (Bewertung schaut nach Vote) ebenfalls nicht — würde nichts ändern, weil Vote-Lücke auf der Bewertungs-Seite klar sichtbar ist (Banner zeigt's).
Endpoint zum Inspizieren:
GET /api/auswertungen/vote-orphans?bundesland=NRW&limit=200Closing.