From faa0377697baa258d3b19e3a3aaf46fdd4d2a256 Mon Sep 17 00:00:00 2001 From: team 1 Date: Tue, 5 May 2026 17:34:21 +0200 Subject: [PATCH] p43G --- config/retriex/prompt.yaml | 72 --------------- ...REMENT_EVIDENCE_CONTEXT_FALLBACK_README.md | 89 +++++++++++++++++++ src/Config/PromptBuilderConfig.php | 10 ++- 3 files changed, 97 insertions(+), 74 deletions(-) create mode 100644 patch_history/RETRIEX_PATCH_43G_MEASUREMENT_EVIDENCE_CONTEXT_FALLBACK_README.md diff --git a/config/retriex/prompt.yaml b/config/retriex/prompt.yaml index f6c5d0f..1587958 100644 --- a/config/retriex/prompt.yaml +++ b/config/retriex/prompt.yaml @@ -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 diff --git a/patch_history/RETRIEX_PATCH_43G_MEASUREMENT_EVIDENCE_CONTEXT_FALLBACK_README.md b/patch_history/RETRIEX_PATCH_43G_MEASUREMENT_EVIDENCE_CONTEXT_FALLBACK_README.md new file mode 100644 index 0000000..c166a3a --- /dev/null +++ b/patch_history/RETRIEX_PATCH_43G_MEASUREMENT_EVIDENCE_CONTEXT_FALLBACK_README.md @@ -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 +``` diff --git a/src/Config/PromptBuilderConfig.php b/src/Config/PromptBuilderConfig.php index 7cf7736..8a6afb9 100644 --- a/src/Config/PromptBuilderConfig.php +++ b/src/Config/PromptBuilderConfig.php @@ -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'])