# RetrieX Patch 5: CommerceQueryParser YAML-only Basis: aktualisierte `rag-inprogress.zip` nach Patch 4. ## Ziel `CommerceQueryParserConfig` darf keine fachlichen PHP-Defaults mehr enthalten. Alle Commerce-Query-Parser-Werte liegen jetzt in YAML unter: ```yaml retriex.commerce_query.config ``` ## Geaenderte Dateien - `config/retriex/commerce.yaml` - `config/retriex/vocabulary.yaml` - `config/services.yaml` - `src/Config/CommerceQueryParserConfig.php` - `src/Config/RetriexEffectiveConfigProvider.php` ## Inhalt Nach YAML verschoben wurden: - bekannte Marken - zu entfernende Commerce-Phrasen - Filter-/Stop-Tokens fuer Shop-Suchtexte - Suchtoken-Korrekturen - Canonical Maps - semantische Shop-Suchtokens - Normalisierung fuer `€` -> ` euro ` - Trim-Zeichen fuer Query-Texte - Limits fuer Tokenlaengen und Suchtextaufbau - Regexe fuer History-Kontext, Preise, Modell-/Zubehoer-Erkennung, Messwerte - Regex-Templates fuer exakte Token-Entfernung und Brand/Model-Erkennung ## Wichtig - `CommerceQueryParserConfig` enthaelt keine `private const` Defaults mehr. - Fehlende Pflichtwerte fallen nicht mehr still auf PHP zurueck, sondern erzeugen einen `InvalidArgumentException`. - Die alten `commerce_query`-Vocabulary-Views/Maps wurden aus `vocabulary.yaml` entfernt, damit nicht zwei YAML-Stellen scheinbar denselben Parser steuern. - `config/services.yaml` injiziert nur noch `%retriex.commerce_query.config%`; die alte Vocabulary-Abhaengigkeit im Parser-Config-Service ist entfernt. ## Nicht geaendert - Retrieval-Scoring - PromptBuilder - AgentRunner - Shop-Matching - SSE/Job-Logik - CommerceIntentConfig ## Lokale Pruefung nach Einspielen ```bash php bin/console cache:clear php bin/console mto:agent:config:validate php bin/console mto:agent:config:audit-source --details php bin/console mto:agent:regression:test ``` Besonders pruefen: - Testomat 808 / 0,02 Grad dH - Folgefrage Indikatortyp 300 - Preisfrage zum Indikator - `welcher pockettester ist fuer Redox messung gut` -> `suche im shop` - `mit welchem testomat kann ich freies chlor messen` ## Hinweis Im ZIP-Arbeitsverzeichnis konnte ich Symfony-Kommandos nicht ausfuehren, weil `vendor/` nicht enthalten ist. PHP-Syntax der geaenderten PHP-Dateien wurde mit `php -l` geprueft.