fix p55
This commit is contained in:
148
RETRIEX_PATCH_55_SINGLE_GENRE_CONFIG_VALUES_README.md
Normal file
148
RETRIEX_PATCH_55_SINGLE_GENRE_CONFIG_VALUES_README.md
Normal file
@@ -0,0 +1,148 @@
|
||||
# RetrieX Patch p55 - Single-Genre Config Values
|
||||
|
||||
## Ziel
|
||||
|
||||
Dieser Patch ist der erste Schritt nach p54, um RetrieX fuer eine **eine Installation = ein Genre**-Konfiguration vorzubereiten.
|
||||
|
||||
p54 war die Landkarte (`adaptation_surface`). p55 fuegt nun in `config/retriex/genre.yaml` eine erste zentrale Werteflaeche hinzu:
|
||||
|
||||
```yaml
|
||||
retriex.genre.config:
|
||||
configuration_values:
|
||||
product_roles:
|
||||
product_attributes:
|
||||
brands_and_canonical_terms:
|
||||
intent_and_routing:
|
||||
context_resolution:
|
||||
shop_query_runtime:
|
||||
result_identity_and_answer_policy:
|
||||
search_repair:
|
||||
retrieval_and_language:
|
||||
shop_data_mapping:
|
||||
governance_and_regression:
|
||||
```
|
||||
|
||||
Die Werte sind aus dem aktuellen stabilen Wasseranalyse-/Messgeraete-Genre uebernommen. Dadurch ist erstmals an einer zentralen Stelle sichtbar, welche konkreten fachlichen Werte bei einer spaeteren Umwidmung, z. B. auf Fashion, Moebel, Ersatzteile oder Elektronik, ersetzt werden muessten.
|
||||
|
||||
## Bewusste Nicht-Ziele
|
||||
|
||||
- Keine Multi-Genre-Loesung
|
||||
- Keine Tenant-Logik
|
||||
- Keine Runtime-Umschaltung pro Request
|
||||
- Keine SaaS-/Host-/API-Key-Auswahl
|
||||
- Keine fachliche Logikaenderung
|
||||
- Keine neuen fachlichen Tokenlisten im PHP-Core
|
||||
- Keine Ranking-, Retrieval- oder Shopware-Kriterienaenderung
|
||||
- Keine LLM-Verhaltensaenderung
|
||||
- Keine Entfernung alter Config-Pfade
|
||||
- Kein p56-Wiring
|
||||
|
||||
Die Runtime liest nach diesem Patch weiterhin die bisherigen Config-Dateien und Pfade. `configuration_values` ist die neue zentrale Pflege-/Migrationsflaeche, aber noch nicht die fuehrende Runtime-Quelle.
|
||||
|
||||
## Geaenderte Dateien
|
||||
|
||||
```text
|
||||
config/retriex/genre.yaml
|
||||
src/Config/GenreConfig.php
|
||||
src/Config/RetriexEffectiveConfigProvider.php
|
||||
RETRIEX_PATCH_55_SINGLE_GENRE_CONFIG_VALUES_README.md
|
||||
```
|
||||
|
||||
## Wichtigste Aenderungen
|
||||
|
||||
### `config/retriex/genre.yaml`
|
||||
|
||||
Neu ist der Block:
|
||||
|
||||
```yaml
|
||||
configuration_values:
|
||||
...
|
||||
```
|
||||
|
||||
Er enthaelt die aktuellen genreabhaengigen Werte gruppiert nach denselben Bereichen wie `adaptation_surface`:
|
||||
|
||||
- Produktrollen und Shop-/Prompt-Views
|
||||
- Produktattribute und numerische Constraints
|
||||
- Marken, Canonical Terms und Query-Enrichment
|
||||
- Intent- und Routing-Signale
|
||||
- Follow-up-/Kontextanker
|
||||
- Shopquery-Runtime
|
||||
- Result-Identity und Antwort-/Grounding-Regeln
|
||||
- Search Repair
|
||||
- Retrieval-/Language-Begriffe
|
||||
- Shopdaten-Mapping
|
||||
- Governance-/Regression-Guardrails
|
||||
|
||||
Jeder Unterbereich enthaelt `source_paths`, damit nachvollziehbar bleibt, aus welchen bestehenden Runtime-Pfaden die Werte stammen.
|
||||
|
||||
### `GenreConfig`
|
||||
|
||||
Neue Zugriffsmethoden:
|
||||
|
||||
```php
|
||||
getConfigurationValues(): array
|
||||
getConfigurationValueGroup(string $group): array
|
||||
```
|
||||
|
||||
Diese Methoden stellen die neue Werteflaeche bereit, ohne die Runtime bereits darauf umzustellen.
|
||||
|
||||
### `RetriexEffectiveConfigProvider`
|
||||
|
||||
Die Config-Validierung prueft nun zusaetzlich:
|
||||
|
||||
- `genre.configuration_values` ist eine nicht-leere Map
|
||||
- jede Werte-Gruppe ist eine nicht-leere Map
|
||||
- fuer jede `adaptation_surface`-Gruppe existiert eine passende `configuration_values`-Gruppe
|
||||
|
||||
Fehlende Value-Gruppen wuerden als Warnung sichtbar; strukturell falsche Value-Gruppen als Fehler.
|
||||
|
||||
## Warum p55 noch kein Wiring macht
|
||||
|
||||
p55 soll bewusst risikoarm bleiben. Die alten Pfade bleiben fuehrend, damit bestehende Regressionen und Shop-/RAG-Verhalten unveraendert bleiben.
|
||||
|
||||
Der naechste Schritt waere ein separater Patch:
|
||||
|
||||
```text
|
||||
p56 Single-Genre Config Wiring
|
||||
```
|
||||
|
||||
Dort koennen ausgewaehlte Getter oder ein zentraler Effective-Provider bevorzugt aus `genre.configuration_values` lesen und bei fehlenden Werten auf die alten Pfade zurueckfallen.
|
||||
|
||||
## Lokale Pruefungen
|
||||
|
||||
Ausgefuehrt im entpackten Patch-Arbeitsstand:
|
||||
|
||||
```bash
|
||||
php -l src/Config/GenreConfig.php
|
||||
php -l src/Config/RetriexEffectiveConfigProvider.php
|
||||
```
|
||||
|
||||
Ergebnis: beide PHP-Lints gruen.
|
||||
|
||||
Zusaetzlich wurden alle YAML-Dateien unter `config/retriex/*.yaml` per Python/YAML-Parser geprueft.
|
||||
|
||||
Ergebnis: YAML-Parsing gruen.
|
||||
|
||||
Zusaetzlich wurde geprueft:
|
||||
|
||||
- `adaptation_surface` hat 11 Gruppen
|
||||
- `configuration_values` hat dieselben 11 Gruppen
|
||||
- keine `adaptation_surface`-Gruppe ohne entsprechende Werte-Gruppe
|
||||
|
||||
## Nicht lokal ausfuehrbar
|
||||
|
||||
`bin/console` konnte lokal nicht ausgefuehrt werden, weil im ZIP kein `vendor/` enthalten ist:
|
||||
|
||||
```text
|
||||
Dependencies are missing. Try running "composer install".
|
||||
```
|
||||
|
||||
## Empfohlene Projektchecks nach dem Einspielen
|
||||
|
||||
```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
|
||||
```
|
||||
Reference in New Issue
Block a user