This commit is contained in:
team 1
2026-05-05 17:34:21 +02:00
parent ed11e6e9c8
commit faa0377697
3 changed files with 97 additions and 74 deletions

View File

@@ -189,26 +189,6 @@ parameters:
- pH-Wert
- ph-wert
- ph wert
positive_context_terms:
- Messung
- messen
- misst
- Messbereich
- Messparameter
- Messgröße
- Messgroesse
- Bestimmung
- bestimmen
- Analyse
- analysiert
- überwachen
- ueberwachen
- Indikator für
- Indikator fuer
- Reagenz für
- Reagenz fuer
- Sensor
- Elektrode
negative_context_terms:
- Betriebsbereich
- Betriebsumgebung
@@ -247,32 +227,6 @@ parameters:
- ORP
- Oxidations-Reduktionspotential
- Oxidations Reduktionspotential
positive_context_terms:
- Messung
- messen
- misst
- Messbereich
- Messparameter
- Messgröße
- Messgroesse
- Bestimmung
- bestimmen
- Analyse
- analysiert
- überwachen
- ueberwachen
- Indikator für
- Indikator fuer
- Reagenz für
- Reagenz fuer
- Sensor
- Elektrode
negative_context_terms:
- Betriebsbereich
- Betriebsumgebung
- Einsatzbedingungen
- störungsfrei
- stoerungsfrei
non_equivalent_terms: []
safe_no_evidence_answer_de: Ich finde in den bereitgestellten Quellen keinen sicher belegten Treffer für Redox-/ORP-Messung.
safe_no_accessory_evidence_answer_de: Ich finde in den bereitgestellten Quellen keinen sicher belegten Redox-/ORP-Indikator oder ein Redox-/ORP-Reagenz für Messgeräte.
@@ -288,32 +242,6 @@ parameters:
- freiem Chlor
- freien Chlor
- free chlorine
positive_context_terms:
- Messung
- messen
- misst
- Messbereich
- Messparameter
- Messgröße
- Messgroesse
- Bestimmung
- bestimmen
- Analyse
- analysiert
- überwachen
- ueberwachen
- Indikator für
- Indikator fuer
- Reagenz für
- Reagenz fuer
- Sensor
- Elektrode
negative_context_terms:
- Betriebsbereich
- Betriebsumgebung
- Einsatzbedingungen
- störungsfrei
- stoerungsfrei
non_equivalent_terms:
- Chlor gesamt
- Gesamtchlor

View File

@@ -0,0 +1,89 @@
# RetrieX Patch p43G - Measurement Evidence Context Fallback Consolidation
## Ziel
p43G setzt die p43-Reihe zur Config-/Logik-Reduktion fort. Der Patch entfernt doppelte Measurement-Evidence-Kontextlisten aus einzelnen Prompt-Parameterdefinitionen und nutzt stattdessen die bereits vorhandenen generischen Kontextlisten als Fallback im `PromptBuilderConfig`-Accessor.
Der Patch ist bewusst klein gehalten:
- keine neue fachliche Runtime-Logik
- keine Scoringänderung
- keine Retrievaländerung
- keine Prompt-Regeländerung
- keine Admin-UI
- keine neuen harten Listen im PHP-Core
## Änderungen
### `config/retriex/prompt.yaml`
Aus `measurement_evidence_guard.parameters` wurden redundante Listen entfernt:
- `positive_context_terms` bei `ph`
- `positive_context_terms` bei `redox`
- `positive_context_terms` bei `free_chlorine`
- `negative_context_terms` bei `redox`
- `negative_context_terms` bei `free_chlorine`
Diese Listen waren 1:1 identisch mit:
- `measurement_evidence_guard.generic_positive_context_terms`
- `measurement_evidence_guard.generic_negative_context_terms`
Die pH-spezifischen `negative_context_terms` bleiben lokal erhalten, weil sie zusätzliche pH-spezifische Ausschlusskontexte enthalten.
### `src/Config/PromptBuilderConfig.php`
`getMeasurementEvidenceParameters()` ergänzt nun fehlende parameterlokale Kontextlisten über die generischen Listen:
- fehlende `positive_context_terms` -> `getMeasurementEvidenceGenericPositiveContextTerms()`
- fehlende `negative_context_terms` -> `getMeasurementEvidenceGenericNegativeContextTerms()`
Lokale Overrides bleiben weiterhin möglich. Wenn ein Parameter eine eigene Liste setzt, wird diese unverändert verwendet.
## Effektive Listen
Die effektiven Measurement-Evidence-Parameterlisten sind gegenüber p43F identisch geblieben:
- `generic_positive_context_terms`: identisch
- `generic_negative_context_terms`: identisch
- effektive `measurement_evidence_guard.parameters`: identisch
Reduktion expliziter Parameterlisten:
- explizite `positive_context_terms`: 3 -> 0
- explizite `negative_context_terms`: 3 -> 1
## Lokale Prüfungen
Ausgeführt:
```bash
php -l src/Config/PromptBuilderConfig.php
php -l src/Config/SearchRepairConfig.php
php -l src/Config/AgentRunnerConfig.php
python3 YAML parse check for config/retriex/*.yaml
python3 effective p43F-vs-p43G measurement evidence comparison
```
Ergebnis: grün.
Nicht lokal ausführbar:
```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
```
Grund: Der ZIP-Stand enthält kein `vendor/`; `bin/console` bricht mit `Dependencies are missing. Try running "composer install".` ab.
## Erwartete Pflichtchecks beim Anwender
```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

@@ -781,6 +781,8 @@ final class PromptBuilderConfig
}
$out = [];
$genericPositiveContextTerms = $this->getMeasurementEvidenceGenericPositiveContextTerms();
$genericNegativeContextTerms = $this->getMeasurementEvidenceGenericNegativeContextTerms();
foreach ($value as $item) {
if (!is_array($item)) {
@@ -799,8 +801,12 @@ final class PromptBuilderConfig
'label' => $label,
'request_terms' => $this->normalizeMixedStringList($item['request_terms'] ?? []),
'positive_terms' => $this->normalizeMixedStringList($item['positive_terms'] ?? []),
'positive_context_terms' => $this->normalizeMixedStringList($item['positive_context_terms'] ?? []),
'negative_context_terms' => $this->normalizeMixedStringList($item['negative_context_terms'] ?? []),
'positive_context_terms' => array_key_exists('positive_context_terms', $item)
? $this->normalizeMixedStringList($item['positive_context_terms'])
: $genericPositiveContextTerms,
'negative_context_terms' => array_key_exists('negative_context_terms', $item)
? $this->normalizeMixedStringList($item['negative_context_terms'])
: $genericNegativeContextTerms,
'non_equivalent_terms' => $this->normalizeMixedStringList($item['non_equivalent_terms'] ?? []),
'safe_no_evidence_answer_de' => isset($item['safe_no_evidence_answer_de']) && is_scalar($item['safe_no_evidence_answer_de'])
? trim((string) $item['safe_no_evidence_answer_de'])