diff --git a/app/templates/v2/screens/methodik.html b/app/templates/v2/screens/methodik.html index 1210814..a6bc84d 100644 --- a/app/templates/v2/screens/methodik.html +++ b/app/templates/v2/screens/methodik.html @@ -371,17 +371,52 @@
Volle Transparenz: hier liegen die exakten Anweisungen, mit denen das
- Sprachmodell ({{ model_name }}) jeden Antrag bewertet. Der
- System-Prompt ist statisch und enthält die GWÖ-Matrix
- plus Ausgabe-Schema. Der User-Prompt wird pro Antrag
- dynamisch gefüllt — die Platzhalter {kontext},
- {wahlprogramm_zitate}, {antrag} und
- {pflicht_fraktionen} sind unten als
- {...} markiert.
+ Sprachmodell ({{ model_name }}) jeden Antrag bewertet.
+ Beide Prompts werden in einem einzigen API-Call + gesendet — nicht getrennt ausgeführt. Sie fließen gemeinsam ins + Modell-Kontextfenster und werden zusammen bewertet. +
+| System-Prompt (statisch, ~5 KB) | +User-Prompt (dynamisch, pro Antrag) | +
|---|---|
| Wer und wie bewertet wird: GWÖ-Matrix-Definition, 25 Felder, Bewertungs-Skala, Empfehlungs-Kategorien, Ausgabe-JSON-Schema, strenge Regeln (max. 3 Verbesserungsvorschläge, wörtliche Zitate, …). | +Was bewertet wird: BL-Spezifika, semantisch gefundene Wahlprogramm-Chunks, der Antragstext selbst, Pflicht-Fraktionen-Liste. | +
+ Das Modell wendet die Matrix-Definition aus dem System-Prompt auf + den Antragstext aus dem User-Prompt an. Ohne System-Prompt wüsste + es nicht wonach es bewerten soll; ohne User-Prompt + hätte es nichts zu bewerten. +
++ Warum die Trennung? +
+
Quelle: app/analyzer.py
- (get_system_prompt() und get_user_prompt_template()).
+ (get_system_prompt() und get_user_prompt_template());
+ API-Aufruf in app/adapters/qwen_bewerter.py
+ (Zeilen 83–85, messages=[{"role":"system",…}, {"role":"user",…}]).
+
+ Der User-Prompt unten ist als Template abgebildet — die
+ Platzhalter {kontext}, {wahlprogramm_zitate},
+ {antrag} und {pflicht_fraktionen} werden
+ pro Antrag mit den konkreten Inhalten gefüllt.