Files
MtoRagSystem/RETRIEX_PATCH_59_COMPLETE_GENRE_WIRING_README.md
2026-05-07 07:52:52 +02:00

135 lines
5.1 KiB
Markdown

# RetrieX Patch p59 - Complete Genre Wiring
## Ziel
Dieser Patch schliesst die Genre-Verdrahtung weiter ab: noch nicht oder nur indirekt verdrahtete fachliche Parameter lesen nun bevorzugt aus `config/retriex/genre.yaml`.
Wichtig: p59 loescht keine Werte aus Legacy-YAMLs. Die alten Pfade bleiben als Fallback aktiv. Damit ist der Patch bewusst ein reiner Wiring-Schritt und bereitet p60 vor.
## Warum dieser Schritt
p55 bis p58 haben die zentrale Single-Genre-Pflegeflaeche aufgebaut, erste Runtime-Flows an `genre.yaml` angeschlossen und bereits verdrahtete Legacy-Werte kontrolliert reduziert.
p59 erweitert diese bevorzugte Genre-Leselogik auf die verbliebenen fachlichen Oberflaechen, insbesondere:
- `vocabulary.yaml` Include-/View-/Map-Ketten
- `prompt.yaml` fachliche Antwort-, Format- und Grounding-Regeln
- `search_repair.yaml` fachliche Suchreparatur-Patterns und Candidate-Terms
- `retrieval.yaml` Exact-Selection- und fachliche Retrieval-Begriffe
- `language.yaml` `protected_terms`
- `governance.yaml` fachliche Regression-/Guardrail-Erwartungen
- fachliche Intent-/Routing-Restwerte fuer Commerce/Sales
- Commercial-Table-Follow-up-Anker in `agent.yaml`
## Was geaendert wurde
### Genre-Konfiguration
`config/retriex/genre.yaml` wurde um fehlende, bereits bestehende fachliche Werte ergaenzt. Die Werte wurden aus den bisherigen Legacy-Pfaden uebernommen, nicht neu erfunden.
Ergaenzt wurden insbesondere:
- Shop-Semantic-Search-Tokens aus `vocabulary.views.shop.semantic_search_tokens`
- technische Prompt-Keywords aus `vocabulary.views.prompt.technical_product_keywords`
- Measurement-Evidence-Maps aus `vocabulary.maps.prompt.measurement_evidence_guard`
- Safety-Doc-/Safety-Word-Retrieval-Views aus `vocabulary.views.retrieval.*`
### Runtime-/Config-Facades
Folgende Config-Klassen lesen neue fachliche Werte bevorzugt aus `GenreConfig` und fallen sonst auf die bestehenden Legacy-Pfade zurueck:
- `DomainVocabularyConfig`
- `PromptBuilderConfig`
- `SearchRepairConfig`
- `NdjsonHybridRetrieverConfig`
- `LanguageCleanupConfig`
- `GovernanceConfig`
- `SalesIntentConfig`
- `CommerceIntentConfig`
- `AgentRunnerConfig`
### Dependency Injection
`config/services.yaml` injiziert `GenreConfig` nun auch in die neu verdrahteten Config-Facades.
## Nicht geaendert
- Keine Legacy-Wertloeschung.
- Keine Reduktion von `vocabulary.yaml`, `prompt.yaml`, `search_repair.yaml`, `retrieval.yaml`, `language.yaml` oder `governance.yaml`.
- Keine neuen fachlichen Defaults im PHP-Core.
- Keine neuen harten Token-/Stringlisten im PHP-Core.
- Keine Multi-Genre-/Tenant-Umschaltung.
- Keine Aenderung an `model.yaml`, `vector.yaml`, `index.yaml`, `runtime.yaml`, Cache-/Pfad-Konfiguration, LLM-Timeouts, Embedding-Modellen, Chunk-Groessen, technischen Stream Guards oder allgemeinem `final_answer_guard`.
- Keine Shopware-Kriterien-, Ranking-, Retrieval-Scoring- oder LLM-Logik-Aenderung.
## Erwartetes Verhalten
Das fachliche Antwortverhalten soll unveraendert bleiben. Fuer die verdrahteten Werte gilt nun:
1. `genre.yaml` ist bevorzugte Quelle.
2. Die bisherigen Legacy-Pfade bleiben Fallback.
3. p60 kann danach die verbleibenden doppelten Legacy-Werte sicher reduzieren.
Damit bleibt das Zielbild sauber getrennt:
- `genre.yaml` sagt, was fachlich relevant ist.
- Agent/Commerce/Prompt/Retrieval/Search-Repair/Language/Governance sagen, wie diese Werte verarbeitet, validiert oder auditiert werden.
## Lokale Pruefung
Durchgefuehrt:
```bash
php -l src/Config/DomainVocabularyConfig.php
php -l src/Config/PromptBuilderConfig.php
php -l src/Config/SearchRepairConfig.php
php -l src/Config/NdjsonHybridRetrieverConfig.php
php -l src/Config/LanguageCleanupConfig.php
php -l src/Config/GovernanceConfig.php
php -l src/Config/SalesIntentConfig.php
php -l src/Config/CommerceIntentConfig.php
php -l src/Config/AgentRunnerConfig.php
```
Alle PHP-Syntaxchecks waren gruen.
```bash
python3 - <<'PY'
# YAML-Parsing fuer alle Dateien unter config/retriex/*.yaml
PY
```
Alle `config/retriex/*.yaml` Dateien konnten geparst werden.
Zusaetzlich wurde skriptbasiert geprueft, dass die neu verdrahteten Genre-Werte den bisherigen Legacy-Werten entsprechen. Geprueft wurden unter anderem:
- Vocabulary-Views und Vocabulary-Maps
- Prompt-Regeln und technische Keywords
- Search-Repair-Patterns und Candidate-Terms
- Retrieval-Safety-Views und Language-Protected-Terms
- Governance-/Regression-Guardrail-Werte
- Sales-/Commerce-Intent-Restwerte
- Commercial-Table-Follow-up-Anker
Ergebnis: `RESULT PASS`.
`bin/console` konnte lokal nicht ausgefuehrt werden, weil im ZIP kein `vendor/` enthalten ist:
```text
Dependencies are missing. Try running "composer install".
```
## 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
```
## Naechster Schritt
Wenn p59 gruen ist, kann p60 folgen: `Legacy Value Reduction Final`. Erst dort werden die verbleibenden doppelten fachlichen Werte aus den Legacy-YAMLs entfernt oder auf leere Fallback-Platzhalter reduziert.