p77+78+79
This commit is contained in:
@@ -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`
|
||||
@@ -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
|
||||
```
|
||||
Reference in New Issue
Block a user