UI BY: aktiv schalten + Wahlprogramme der WP19 indexieren #35

Closed
opened 2026-04-08 22:22:14 +02:00 by tobias · 2 comments
Owner

Hängt ab von #23 (Scraper-Adapter für Bayern).

Was zu tun ist

Sobald der Adapter aus #23 funktioniert und smoke-getestet ist:

  1. bundeslaender.py: aktiv=True im BUNDESLAENDER["BY"]-Eintrag setzen
  2. Wahlprogramme der laufenden 19. WP beschaffen — alle Fraktionen (siehe landtagsfraktionen in bundeslaender.py). Quellen pro Bundesland: meist abgeordnetenwatch.de, FES-Bibliothek, KAS-Archiv, Heinrich-Böll-Stiftung, Rosa-Luxemburg-Stiftung. Verifizieren via pdftotext gegen das im Programm genannte Wahldatum (Lehre aus #10 — abgeordnetenwatch tauscht alte Datei-Slugs manchmal gegen neue Programme aus).
  3. PDFs als <partei>-by-<jahr>.pdf in webapp/app/static/referenzen/
  4. Einträge in wahlprogramme.WAHLPROGRAMME["BY"] und embeddings.PROGRAMME ergänzen — siehe #10 als Vorlage
  5. Indexieren im prod-Container:
    ssh vserver 'docker exec gwoe-antragspruefer python -c "
    from app.embeddings import index_programm
    from pathlib import Path
    d = Path("/app/app/static/referenzen")
    for pid in [...]:
        index_programm(pid, d)
    "'
    
  6. Smoke-Test im Live-System: einen realen BY-Antrag analysieren, prüfen dass die Wahlprogramm-Treue-Bewertung Zitate aus den jeweiligen WP-Programmen liefert (kein NRW-Halluzinations-Fallback wie vor bc7f4a6).
  7. project_state.md Memory aktualisieren — neuer aktiver Bundesland-Code dazu.

Beachten

  • Wichtige Regel (Memory feedback_legislaturprogramme): die Wahlprogramme der laufenden Wahlperiode müssen rein, keine neueren Entwürfe. Falls vor der Wahl 2028-10-08 aktiviert wird → 2021er/2022er-Programme; nach der Wahl → die zur 2028-10-08-Wahl.
  • Container-Build kopiert Volume data/ und reports/ nicht — beim Indexieren immer im laufenden Container, nicht beim Build.

Akzeptanzkriterien

  • aktiv=True in bundeslaender.py
  • Alle Fraktionen mit indexiertem Wahlprogramm in der embeddings.db
  • Live-Smoke-Test: ein BY-Antrag wird analysiert, Zitate kommen aus den lokalen Programmen (nicht aus föderalen Grundsatzprogrammen)
  • Frontend-Bundesland-Wähler zeigt Bayern ohne (bald)-Marker
Hängt ab von #23 (Scraper-Adapter für Bayern). ## Was zu tun ist Sobald der Adapter aus #23 funktioniert und smoke-getestet ist: 1. **`bundeslaender.py`**: `aktiv=True` im `BUNDESLAENDER["BY"]`-Eintrag setzen 2. **Wahlprogramme der laufenden 19. WP** beschaffen — alle Fraktionen (siehe `landtagsfraktionen` in bundeslaender.py). Quellen pro Bundesland: meist `abgeordnetenwatch.de`, FES-Bibliothek, KAS-Archiv, Heinrich-Böll-Stiftung, Rosa-Luxemburg-Stiftung. Verifizieren via `pdftotext` gegen das im Programm genannte Wahldatum (Lehre aus #10 — abgeordnetenwatch tauscht alte Datei-Slugs manchmal gegen neue Programme aus). 3. PDFs als `<partei>-by-<jahr>.pdf` in `webapp/app/static/referenzen/` 4. Einträge in `wahlprogramme.WAHLPROGRAMME["BY"]` und `embeddings.PROGRAMME` ergänzen — siehe #10 als Vorlage 5. **Indexieren im prod-Container**: ```bash ssh vserver 'docker exec gwoe-antragspruefer python -c " from app.embeddings import index_programm from pathlib import Path d = Path("/app/app/static/referenzen") for pid in [...]: index_programm(pid, d) "' ``` 6. **Smoke-Test im Live-System**: einen realen BY-Antrag analysieren, prüfen dass die Wahlprogramm-Treue-Bewertung Zitate aus den jeweiligen WP-Programmen liefert (kein NRW-Halluzinations-Fallback wie vor `bc7f4a6`). 7. **`project_state.md` Memory aktualisieren** — neuer aktiver Bundesland-Code dazu. ## Beachten - **Wichtige Regel** (Memory `feedback_legislaturprogramme`): die Wahlprogramme der **laufenden** Wahlperiode müssen rein, keine neueren Entwürfe. Falls vor der Wahl 2028-10-08 aktiviert wird → 2021er/2022er-Programme; nach der Wahl → die zur 2028-10-08-Wahl. - Container-Build kopiert Volume `data/` und `reports/` nicht — beim Indexieren immer im laufenden Container, nicht beim Build. ## Akzeptanzkriterien - [ ] `aktiv=True` in `bundeslaender.py` - [ ] Alle Fraktionen mit indexiertem Wahlprogramm in der `embeddings.db` - [ ] Live-Smoke-Test: ein BY-Antrag wird analysiert, Zitate kommen aus den lokalen Programmen (nicht aus föderalen Grundsatzprogrammen) - [ ] Frontend-Bundesland-Wähler zeigt Bayern ohne `(bald)`-Marker
tobias added the
ui-aktivierung
label 2026-04-08 23:16:40 +02:00
Author
Owner

Status (2026-04-10) — Adapter ist live, fehlt nur noch Wahlprogramme

Mit 27ae82a (Issue #23) ist der BayernAdapter einsatzbereit:

  • ADAPTERS["BY"] instanziierbar, search/get_document/download_text getestet
  • 5 BY-Anträge der WP19 lokal smoke-getestet
  • Free-Voters-Disambiguation (FW-BAYERN) funktioniert über den #55 Mapper

Was fehlt für Activation:

  1. bundeslaender.py::BUNDESLAENDER["BY"].aktiv = True
  2. Wahlprogramme der Wahlperiode 19 (Wahl 2023-10-08) in webapp/app/static/referenzen/:
    • csu-by-2023.pdf (CSU)
    • gruene-by-2023.pdf (BÜNDNIS 90/DIE GRÜNEN)
    • afd-by-2023.pdf (AfD)
    • spd-by-2023.pdf (SPD)
    • fw-by-2023.pdf (FREIE WÄHLER Bayern)
    • fdp-by-2023.pdf (FDP) — falls überhaupt im LT vertreten, prüfen
  3. Eintrag der sechs Programme in embeddings.py::PROGRAMME (analog zu den anderen *-XX-2024-Einträgen aus den Phasen H/I/J)
  4. Indexierung im Container: docker exec gwoe-antragspruefer python -c "from app.embeddings import index_programm, init_embeddings_db; from app.config import settings; init_embeddings_db(); [index_programm(pid, settings.referenzen_dir) for pid in [...]]"

Warum ich das nicht autark fertig mache:

Memory-Notiz feedback_legislaturprogramme.md warnt vor "neueren Entwürfen als Ersatz" — das Risiko, beim autonomen Download das falsche Wahlprogramm-Jahr (z.B. 2018 statt 2023) oder einen Programm-Entwurf statt der finalen Version zu erwischen, ist nicht-trivial. Die PDFs sollten manuell von einem Menschen aus den jeweiligen Parteiarchiven gezogen werden, der die richtige Edition kennt.

Sobald die PDFs in webapp/app/static/referenzen/ liegen, ist die Aktivierung in <10 Minuten erledigt — Issue bleibt bis dahin offen.

## Status (2026-04-10) — Adapter ist live, fehlt nur noch Wahlprogramme Mit `27ae82a` (Issue #23) ist der `BayernAdapter` einsatzbereit: - `ADAPTERS["BY"]` instanziierbar, search/get_document/download_text getestet - 5 BY-Anträge der WP19 lokal smoke-getestet - Free-Voters-Disambiguation (`FW-BAYERN`) funktioniert über den #55 Mapper **Was fehlt für Activation:** 1. `bundeslaender.py::BUNDESLAENDER["BY"].aktiv = True` 2. Wahlprogramme der Wahlperiode 19 (Wahl 2023-10-08) in `webapp/app/static/referenzen/`: - `csu-by-2023.pdf` (CSU) - `gruene-by-2023.pdf` (BÜNDNIS 90/DIE GRÜNEN) - `afd-by-2023.pdf` (AfD) - `spd-by-2023.pdf` (SPD) - `fw-by-2023.pdf` (FREIE WÄHLER Bayern) - `fdp-by-2023.pdf` (FDP) — falls überhaupt im LT vertreten, **prüfen** 3. Eintrag der sechs Programme in `embeddings.py::PROGRAMME` (analog zu den anderen `*-XX-2024`-Einträgen aus den Phasen H/I/J) 4. Indexierung im Container: `docker exec gwoe-antragspruefer python -c "from app.embeddings import index_programm, init_embeddings_db; from app.config import settings; init_embeddings_db(); [index_programm(pid, settings.referenzen_dir) for pid in [...]]"` **Warum ich das nicht autark fertig mache:** Memory-Notiz `feedback_legislaturprogramme.md` warnt vor "neueren Entwürfen als Ersatz" — das Risiko, beim autonomen Download das falsche Wahlprogramm-Jahr (z.B. 2018 statt 2023) oder einen Programm-Entwurf statt der finalen Version zu erwischen, ist nicht-trivial. Die PDFs sollten manuell von einem Menschen aus den jeweiligen Parteiarchiven gezogen werden, der die richtige Edition kennt. Sobald die PDFs in `webapp/app/static/referenzen/` liegen, ist die Aktivierung in <10 Minuten erledigt — Issue bleibt bis dahin offen.
Author
Owner

aktiv=True in b6160cc. BY-Adapter (TYPO3-Solr) live. Wahlprogramme noch nicht indexiert.

aktiv=True in b6160cc. BY-Adapter (TYPO3-Solr) live. Wahlprogramme noch nicht indexiert.
Sign in to join this conversation.
No description provided.