diff --git a/patch_history/RETRIEX_PATCH_49_DIRECT_PRODUCT_COMPOUND_GUARD_README.md b/patch_history/RETRIEX_PATCH_49_DIRECT_PRODUCT_COMPOUND_GUARD_README.md new file mode 100644 index 0000000..eaaeac2 --- /dev/null +++ b/patch_history/RETRIEX_PATCH_49_DIRECT_PRODUCT_COMPOUND_GUARD_README.md @@ -0,0 +1,112 @@ +# RetrieX Patch p49 - Direct Product Compound Guard + +## Ziel + +Behebt einen Regressionsfall nach p45/p48 bei direkten Shop-Produktsuchen mit zusammengesetzten Produktnamen. + +Beispiel: + +```text +welche neomeris puffer gibt es für Kalibrierung von pH-Messgeräten +``` + +Die erzeugte Shopquery ist sinnvoll: + +```text +neomeris puffer kalibrierung ph messgeräten +``` + +Trotzdem konnte RetrieX nach der Shop-Suche `Shop-Treffer: 0` anzeigen, obwohl der Shop mit identischer Query passende Pufferprodukte liefert. + +## Ursache + +Der direkte p45-Produktguard filtert Shop-Ergebnisse nach angefragten Produkttypen. Bei `puffer` verlangt der Guard bisher einen exakten Token-Treffer im Produkttext. + +Shopware-Produkte heißen aber typischerweise z. B.: + +```text +Neomeris pH-Pufferlösung pH 7.00 +``` + +Nach Tokenisierung wird daraus u. a.: + +```text +pufferlösung +``` + +Das ist kein exakter Token `puffer`. Dadurch konnten fachlich passende Pufferprodukte nach erfolgreicher Shop-Suche vom Guard vollständig entfernt werden. + +## Änderung + +- Der direkte Produktguard behält seine exakte Tokenprüfung als Standard. +- Zusätzlich gibt es eine kleine, YAML-konfigurierte Compound-Prefix-Erlaubnis für ausgewählte Produkttypen. +- Aktuell erlaubt: + - `puffer` + - `kalibrierpuffer` +- Damit matcht `puffer` auch Produkt-Tokens wie `pufferlösung`, ohne eine breite PHP-Sonderlogik einzubauen. + +## Wichtig + +- Keine Änderung an der Shopquery-Erzeugung. +- Keine Änderung an Shopware-Kriterien. +- Keine Änderung am LLM-Prompting. +- Keine produkt- oder markenspezifische Sonderlogik. +- Der Guard bleibt defensiv und nur für explizit konfigurierte Compound-Prefix-Terme erweitert. + +## Geänderte Dateien + +```text +config/retriex/agent.yaml +src/Agent/AgentRunner.php +src/Config/AgentRunnerConfig.php +patch_history/RETRIEX_PATCH_49_DIRECT_PRODUCT_COMPOUND_GUARD_README.md +``` + +## Lokale Checks + +Ausgeführt: + +```bash +php -l src/Agent/AgentRunner.php +php -l src/Config/AgentRunnerConfig.php +python3 - <<'PY' +import yaml +with open('config/retriex/agent.yaml', 'r', encoding='utf-8') as fh: + yaml.safe_load(fh) +print('YAML ok') +PY +``` + +`bin/console` wurde lokal nicht ausgeführt, da im entpackten ZIP kein `vendor/` enthalten ist. + +## Nach dem Einspielen prüfen + +```bash +bin/console cache:clear +bin/console mto:agent:config:validate +bin/console mto:agent:regression:test +bin/console mto:agent:config:audit-source --details +bin/console mto:agent:config:audit-patterns --details +``` + +## Erwartete Regressionstests + +```text +welche neomeris puffer gibt es für Kalibrierung von pH-Messgeräten +``` + +Erwartung: +- Shopquery bleibt produktnah. +- Shop-Treffer werden nicht durch den direkten Produktguard auf 0 weggefiltert. +- Pufferlösung-/Kalibrierpuffer-Produkte dürfen als passende Treffer erscheinen. + +Weiterhin prüfen: + +```text +zeige mir Anschlusskabel für pH/Redox +zeige mir Anschlusskabel für pH/Redox . ordne die liste nach metern +zeige mir Anschlusskabel für pH/Redox ab 20m +``` + +Erwartung: +- p45/p46-Verhalten bleibt erhalten.