124 lines
4.0 KiB
Markdown
124 lines
4.0 KiB
Markdown
# RetrieX Patch p38 - YAML Externalization Hardening
|
|
|
|
## Ziel
|
|
|
|
Dieser Patch schliesst die nach p37 verbliebenen sinnvollen YAML-Externalization-Luecken im PHP-Core. Fokus ist nicht technische Infrastruktur, sondern fachliche, sprachliche und UI-nahe Listen, Tokens, Vergleichswerte, Prompt-Regeln und Normalisierungsregeln.
|
|
|
|
Die Leitlinie bleibt:
|
|
|
|
- keine neuen Token-/Stringlisten im PHP-Core
|
|
- fachliche, sprachliche und UI-nahe Werte ueber YAML
|
|
- bestehende 1.5.3-Logik nicht fachlich veraendern
|
|
- keine neuen Spezialfaelle fuer konkrete Produkte
|
|
|
|
## Geaenderte Dateien
|
|
|
|
- `config/retriex/agent.yaml`
|
|
- `config/retriex/language.yaml`
|
|
- `config/retriex/prompt.yaml`
|
|
- `src/Config/AgentRunnerConfig.php`
|
|
- `src/Config/LanguageCleanupConfig.php`
|
|
- `src/Config/PromptBuilderConfig.php`
|
|
- `src/Agent/AgentRunner.php`
|
|
- `src/Agent/PromptBuilder.php`
|
|
- `src/Knowledge/Retrieval/QueryCleaner.php`
|
|
- `src/Knowledge/Retrieval/NdjsonLexicalIndexBuilder.php`
|
|
- `src/Knowledge/Retrieval/NdjsonKeywordRetriever.php`
|
|
- `src/Knowledge/Retrieval/NdjsonChunkLookup.php`
|
|
- `src/Knowledge/Retrieval/NdjsonHybridRetriever.php`
|
|
|
|
## Inhalt
|
|
|
|
### AgentRunner
|
|
|
|
Externalisiert wurden insbesondere:
|
|
|
|
- Placeholder-Ausgaben der Query-/Input-Normalisierung
|
|
- Shop-Repair-/Shop-Query-Heartbeat-Meldungen
|
|
- No-LLM-Produktfeldtexte und Produktzeilen-Templates
|
|
- Follow-up-Kontextlabels
|
|
- Production-UI-Stage-Labels
|
|
- Production-UI-Confidence-Labels
|
|
- Production-UI-Texte, Templates und Shop-Meta-Labels
|
|
- Follow-up-Action-Chips fuer Commerce und Knowledge
|
|
|
|
Zusaetzlich nutzt der Runner vorhandene Language-Cleanup-Konfiguration fuer ASCII-Transliteration, Separator-Normalisierung und Dash-Normalisierung.
|
|
|
|
### Language Cleanup
|
|
|
|
`language.yaml` enthaelt nun zusaetzlich zentrale Normalisierungsregeln fuer:
|
|
|
|
- Wortseparatoren (`-`, `/`, `_`)
|
|
- Unicode-Dash-Aequivalente
|
|
|
|
`LanguageCleanupConfig` stellt dafuer zentrale Methoden bereit:
|
|
|
|
- `replaceWordSeparatorsWithSpace()`
|
|
- `normalizeDashEquivalents()`
|
|
|
|
### PromptBuilder
|
|
|
|
Externalisiert wurden verbliebene Prompt-/Policy-Regeln rund um:
|
|
|
|
- Fallback-Escalation bei vorhandenen Shop-Ergebnissen
|
|
- Measurement-Evidence-Guard-Templates
|
|
- finale Measurement-Evidence-Regeln
|
|
- Parameter-Split-Pattern
|
|
- Parameter-Trim-Zeichen
|
|
|
|
Die Unicode-Dash-Normalisierung nutzt nun ebenfalls `LanguageCleanupConfig`.
|
|
|
|
### Retrieval-Normalisierung
|
|
|
|
Wiederholte Separatorlisten in Retrieval-Klassen wurden durch die zentrale Language-Cleanup-Methode ersetzt.
|
|
|
|
Betroffen:
|
|
|
|
- `QueryCleaner`
|
|
- `NdjsonLexicalIndexBuilder`
|
|
- `NdjsonKeywordRetriever`
|
|
- `NdjsonChunkLookup`
|
|
- `NdjsonHybridRetriever`
|
|
|
|
## Bewusst nicht externalisiert
|
|
|
|
Nicht Ziel dieses Patches waren rein technische Infrastrukturwerte, z. B.:
|
|
|
|
- Boolean-Parser-Werte wie `true`, `false`, `yes`, `no`, `on`, `off`
|
|
- technische Statuscodes und interne State-Keys
|
|
- DTO-/Array-Schluessel
|
|
- Log-/HTTP-/Encoding-Infrastruktur
|
|
- Zeilenumbruch-Normalisierung
|
|
|
|
Diese Werte sind keine fachlichen oder sprachlichen Matching-/Prompt-/UI-Listen.
|
|
|
|
## Lokale Validierung
|
|
|
|
Da im ZIP kein `vendor/` enthalten ist, konnten Symfony-Console-Checks nicht direkt ausgefuehrt werden.
|
|
|
|
Durchgefuehrt wurden:
|
|
|
|
- `php -l` fuer alle geaenderten PHP-Dateien: OK
|
|
- YAML-Parse fuer geaenderte YAML-Dateien: OK
|
|
- statische Greps auf die zuvor identifizierten Reststellen: OK
|
|
|
|
Gepruefte ehemalige Problemklassen:
|
|
|
|
- keine PHP-Funde mehr fuer `normalized user input` / `corrected user input`
|
|
- keine PHP-Funde mehr fuer die harten Measurement-Evidence-Regeltexte
|
|
- keine PHP-Funde mehr fuer die alten Separatorlisten `['-', '/', '_']`
|
|
- keine PHP-Funde mehr fuer die alten Unicode-Dash-Listen
|
|
- keine PHP-Funde mehr fuer die AgentRunner-UI-Labels wie `RetrieX-Status`, `Datenbasis`, `Folgeaktionen`, `Artikelnummer`, `Preis`, `Verfuegbarkeit`, `Relevanz`
|
|
|
|
## Empfohlene Checks nach Einspielen
|
|
|
|
Bitte im echten Projekt mit installiertem `vendor/` 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
|
|
```
|
|
|