135 lines
5.1 KiB
Markdown
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.
|