This commit is contained in:
team 1
2026-05-05 17:17:35 +02:00
parent 542b527261
commit ed11e6e9c8
4 changed files with 147 additions and 24 deletions

View File

@@ -19,31 +19,19 @@ parameters:
requested_accessory_code_fallback_query_templates: requested_accessory_code_fallback_query_templates:
- '{term} {code}' - '{term} {code}'
requested_accessory_code_fallback_terms: # Requested-accessory code terms are resolved from
- indikatortyp # config/retriex/vocabulary.yaml view search_repair.requested_accessory_code_terms.
- indikator # Local requested_accessory_code_fallback_terms and
- indicator # requested_accessory_code_context_prefix_terms lists may still be added here as
- reagenz # explicit project overrides.
- reagent
requested_accessory_code_context_prefix_terms:
- indikatortyp
- indikator
- indicator
- reagenz
- reagent
requested_accessory_code_proximity_window: 1600 requested_accessory_code_proximity_window: 1600
specific_model_candidate_patterns: specific_model_candidate_patterns:
- '/\b([A-Za-zÄÖÜäöüß][A-Za-zÄÖÜäöüß®\-]*(?:\s+[A-Za-zÄÖÜäöüß0-9][A-Za-zÄÖÜäöüß0-9®\-]*){0,3}\s+\d{2,5}(?:\s+[A-ZÄÖÜ]{1,8})?)\b/u' - '/\b([A-Za-zÄÖÜäöüß][A-Za-zÄÖÜäöüß®\-]*(?:\s+[A-Za-zÄÖÜäöüß0-9][A-Za-zÄÖÜäöüß0-9®\-]*){0,3}\s+\d{2,5}(?:\s+[A-ZÄÖÜ]{1,8})?)\b/u'
model_candidate_exclude_terms: # Model-candidate exclude terms are resolved from
- indikatortyp # config/retriex/vocabulary.yaml view search_repair.model_candidate_exclude_terms.
- indikator # A local model_candidate_exclude_terms list may still be added here as an
- indicator # explicit project override.
- reagenz
- reagent
- verfügbarkeit
- verfuegbarkeit
- shop
limits: limits:
top_product_log_limit: 3 top_product_log_limit: 3

View File

@@ -49,6 +49,16 @@ parameters:
- service set - service set
- serviceset - serviceset
- service-set - service-set
requested_accessory_code_terms:
- indikatortyp
- indikator
- indicator
- reagenz
- reagent
shop_meta_terms:
- verfügbarkeit
- verfuegbarkeit
- shop
direct_product_attribute_stop_terms: direct_product_attribute_stop_terms:
- zeige - zeige
- zeig - zeig
@@ -460,6 +470,13 @@ parameters:
direct_product_attribute_stop_terms: direct_product_attribute_stop_terms:
include: include:
- direct_product_attribute_stop_terms - direct_product_attribute_stop_terms
requested_accessory_code_terms:
include:
- requested_accessory_code_terms
model_candidate_exclude_terms:
include:
- requested_accessory_code_terms
- shop_meta_terms
accessory_candidate_terms: accessory_candidate_terms:
add: add:
- indikator - indikator

View File

@@ -0,0 +1,109 @@
# RetrieX Patch p43F - Search Repair Accessory Code Vocabulary View
## Ziel
p43F setzt auf dem gruen bestaetigten p43E-Stand auf und reduziert weitere doppelte SearchRepair-Begriffslisten ohne fachliche Runtime-Aenderung.
Der Patch zentralisiert die mehrfach gepflegten Zubehoercode-Begriffe fuer SearchRepair in `config/retriex/vocabulary.yaml` und laesst lokale Overrides in `config/retriex/search_repair.yaml` weiterhin zu.
## Geaenderte Dateien
- `config/retriex/vocabulary.yaml`
- `config/retriex/search_repair.yaml`
- `src/Config/SearchRepairConfig.php`
- `patch_history/RETRIEX_PATCH_43F_SEARCH_REPAIR_ACCESSORY_CODE_VOCABULARY_VIEW_README.md`
## Inhalt
### vocabulary.yaml
Neu zentral gepflegte Klassen:
- `requested_accessory_code_terms`
- `shop_meta_terms`
Neue SearchRepair-Views:
- `search_repair.requested_accessory_code_terms`
- `search_repair.model_candidate_exclude_terms`
Die View `search_repair.requested_accessory_code_terms` liefert die bisherigen Begriffe fuer:
- `requested_accessory_code_fallback_terms`
- `requested_accessory_code_context_prefix_terms`
Die View `search_repair.model_candidate_exclude_terms` liefert die bisherigen Modell-Exclude-Begriffe aus Zubehoercode-Begriffen plus Shop-/Verfuegbarkeits-Metabegriffen.
### search_repair.yaml
Lokale Listen wurden entfernt fuer:
- `requested_accessory_code_fallback_terms`
- `requested_accessory_code_context_prefix_terms`
- `model_candidate_exclude_terms`
Die YAML-Datei dokumentiert jetzt, dass diese Werte aus `vocabulary.yaml` kommen und lokale Listen weiterhin als explizite Projekt-Overrides wieder hinzugefuegt werden koennen.
### SearchRepairConfig.php
Die drei Accessoren nutzen nun den vorhandenen Mechanismus `configOrVocabularyStringList()`:
- `getRequestedAccessoryCodeFallbackTerms()`
- `getRequestedAccessoryCodeContextPrefixTerms()`
- `getModelCandidateExcludeTerms()`
Damit bleibt das bisherige Override-Verhalten erhalten: lokale YAML-Listen haben Vorrang, sonst wird die zentrale Vocabulary-View verwendet.
## Explizit nicht geaendert
- keine neue fachliche Runtime-Logik
- keine Scoring-Aenderung
- keine Retrieval-Aenderung
- keine Prompt-Regel-Aenderung
- keine Admin-UI
- keine neuen harten Listen im PHP-Core
- keine Aenderung an Pattern-Templates oder Regex-Semantik
## Effektive Listen vor/nach p43F
Verglichen wurde p43E-Basis gegen p43F-Arbeitsstand:
- `requested_accessory_code_fallback_terms`: 5 / 5, identisch
- `requested_accessory_code_context_prefix_terms`: 5 / 5, identisch
- `model_candidate_exclude_terms`: 8 / 8, identisch
- `direct_product_attribute_lookup.product_type_terms`: 12 / 12, identisch
- `direct_product_attribute_lookup.stop_terms`: 40 / 40, identisch
- `generic_candidate_tokens`: 13 / 13, identisch
- `accessory_candidate_terms`: 6 / 6, identisch
- `accessory_or_bundle_terms`: 14 / 14, identisch
- `specificity_boost_terms`: 7 / 7, identisch
## Lokal ausgefuehrte Checks
```bash
php -l src/Config/SearchRepairConfig.php
php -l src/Config/AgentRunnerConfig.php
python3 YAML parse check fuer geaenderte YAML-Dateien
python3 effektive SearchRepair-Listen p43E vs p43F vergleichen
```
Ergebnis: gruen.
## Nicht lokal ausfuehrbar
Die Symfony-Console-Checks konnten in der ChatGPT-Arbeitsumgebung nicht ausgefuehrt werden, weil der entpackte ZIP-Stand kein `vendor/` enthaelt und in dieser Umgebung kein `composer` verfuegbar ist.
Blockierender Fehler:
```text
Dependencies are missing. Try running "composer install".
```
Bitte nach dem Einspielen im Projekt ausfuehren:
```bash
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
```

View File

@@ -93,13 +93,19 @@ final class SearchRepairConfig
/** @return string[] */ /** @return string[] */
public function getRequestedAccessoryCodeFallbackTerms(): array public function getRequestedAccessoryCodeFallbackTerms(): array
{ {
return $this->requiredStringList('requested_accessory_code_fallback_terms'); return $this->configOrVocabularyStringList(
'requested_accessory_code_fallback_terms',
'search_repair.requested_accessory_code_terms'
);
} }
/** @return string[] */ /** @return string[] */
public function getRequestedAccessoryCodeContextPrefixTerms(): array public function getRequestedAccessoryCodeContextPrefixTerms(): array
{ {
return $this->requiredStringList('requested_accessory_code_context_prefix_terms'); return $this->configOrVocabularyStringList(
'requested_accessory_code_context_prefix_terms',
'search_repair.requested_accessory_code_terms'
);
} }
public function getRequestedAccessoryCodeProximityWindow(): int public function getRequestedAccessoryCodeProximityWindow(): int
@@ -116,7 +122,10 @@ final class SearchRepairConfig
/** @return string[] */ /** @return string[] */
public function getModelCandidateExcludeTerms(): array public function getModelCandidateExcludeTerms(): array
{ {
return $this->requiredStringList('model_candidate_exclude_terms'); return $this->configOrVocabularyStringList(
'model_candidate_exclude_terms',
'search_repair.model_candidate_exclude_terms'
);
} }
public function getTopProductLogLimit(): int public function getTopProductLogLimit(): int