p77+78+79

This commit is contained in:
team 1
2026-05-10 09:09:51 +02:00
parent 96375668b2
commit 374c0c1f7f
8 changed files with 329 additions and 88 deletions

View File

@@ -0,0 +1,36 @@
# RETRIEX PATCH 78 - Follow-up Price Target Anchor
## Ziel
`Preis anzeigen` darf bei einer bereits sichtbaren konkreten Produktempfehlung nicht wieder auf die ursprüngliche breite Shopquery zurückfallen.
Beispiel:
- Antwort empfiehlt sichtbar `Testomat 2000 THCL®` mit Produktnummer `100276`.
- Die Follow-up-Action darf nicht `Zeige mir die Preise zu gesamtchlor messgerät.` senden.
- Sie sendet nun fokussiert auf das sichtbare Produkt, z. B. `Zeige mir die Preise zu Testomat 2000 THCL® 100276.`
## Hintergrund
Die Action-Prompts nutzten bisher nur `{shop_query}`. Bei beratenden Fragen ist diese Query oft bewusst breit (`gesamtchlor messgerät`). Nach einer konkreten Antwort führt das bei Preis-Follow-ups zu generischen Shop-/RAG-Antworten und kann die zuvor korrekte Zielvariante wieder verlieren.
## Umsetzung
- `buildFollowUpActionContext()` erzeugt zusätzlich `shop_price_query`.
- `shop_price_query` wird bevorzugt aus sichtbaren Shop-Produkten in der Antwort gebildet.
- Bei genau einem sichtbaren Hauptgerät wird Produktname + Produktnummer verwendet.
- Bei genau einem sichtbaren Produkt allgemein wird ebenfalls Produktname + Produktnummer verwendet.
- Fallback bleibt der vorhandene Antwortanker bzw. die ursprüngliche Shopquery.
- `chat-messages.yaml` nutzt für die Preis-Action `{shop_price_query}` statt `{shop_query}`.
## Nicht geändert
- Kein Retrieval-/Ranking-Eingriff.
- Keine Shop-Matching-Änderung.
- Keine Testomat-/THCL-/Gesamtchlor-Sonderlogik im PHP-Core.
- Rollenfilter-Actions bleiben unverändert und profitieren nur indirekt von fokussierteren Preis-Follow-ups.
## Lokale Checks
- `php -l src/Agent/AgentRunner.php`
- YAML parse von `config/retriex/chat-messages.yaml`

View File

@@ -0,0 +1,55 @@
# RetrieX Patch p79 - Model Variant Positive Filter Guard
## Ziel
Der positive Shopquery-Filter durfte numerische Modell-/Artikelcodes behalten, hat aber reine Modellvariantensuffixe wie `THCL` aus fokussierten Folgefragen entfernt. Dadurch wurde aus einem konkreten Preis-Follow-up wie `Testomat 2000 THCL 100276` die zu breite Shopquery `testomat 2000 100276`.
p79 erhält solche Variantentokens generisch, wenn sie in unmittelbarem numerischem Modellkontext stehen.
## Änderungen
- `AgentRunner::filterShopQueryToPositiveTokens()` bewahrt jetzt konfigurierte benachbarte Variantentokens, wenn sie:
- entweder in der YAML-gepflegten Liste `adjacent_variant_terms` stehen oder gegen `adjacent_variant_patterns` matchen,
- direkt neben einem numerischen Modell-/Artikelkontext stehen,
- und in der Umgebung bereits mindestens zwei positive Kontexttokens erhalten bleiben.
- Neue YAML-Konfiguration:
- `shop_query_runtime.positive_token_filter.adjacent_variant_terms`
- `shop_query_runtime.positive_token_filter.adjacent_variant_patterns`
- Legacy-Fallbacks unter `agent.shop_runtime.query_cleanup.positive_token_filter.*`
- Die Water-Analysis-Genre-Konfiguration ergänzt bekannte Modell-/Variantensuffixe wie `thcl`, `clf`, `clt`, `cl`, `cal` als zentrale Liste. Die generische Pattern-Erkennung bleibt zusätzlich aktiv für neue Varianten.
- `Preis anzeigen` wird über YAML ausgeblendet, wenn die Antwort bereits eine fehlende/nicht verfügbare Preisinformation formuliert.
- `Technische Details anzeigen` wird über YAML defensiver ausgeblendet, wenn die Antwort bereits Produktnummer, Verfügbarkeit, Messparameter oder technische Eignung enthält.
## Nicht geändert
- Kein Eingriff in Retrieval, Ranking, Shop-Matching oder PromptBuilder.
- Keine Testomat-/THCL-/Gesamtchlor-Sonderlogik im PHP-Core.
- Keine neue harte Variantentokenliste im PHP-Core; bekannte Suffixe liegen in YAML.
## Beispiel
Vorher:
```text
Zeige mir die Preise zu Testomat 2000 THCL® 100276.
=> testomat 2000 100276
```
Nachher:
```text
Zeige mir die Preise zu Testomat 2000 THCL® 100276.
=> testomat 2000 thcl 100276
```
## Lokale Checks
```bash
php -l src/Agent/AgentRunner.php
php -l src/Config/AgentRunnerConfig.php
php -l src/Config/ChatMessagesConfig.php
python3 YAML parse OK
PCRE patterns OK
variant preservation smoke OK
adjacent variant term list smoke OK
```