diff --git a/config/retriex/prompt.yaml b/config/retriex/prompt.yaml index 2b883c3..502b8f6 100644 --- a/config/retriex/prompt.yaml +++ b/config/retriex/prompt.yaml @@ -93,6 +93,8 @@ parameters: vocabulary_views: accessory_lookup_guard_terms: prompt.measurement_evidence_guard.accessory_lookup_guard_terms accessory_lookup_passthrough_terms: prompt.measurement_evidence_guard.accessory_lookup_passthrough_terms + generic_positive_context_terms: prompt.measurement_evidence_guard.generic_positive_context_terms + generic_negative_context_terms: prompt.measurement_evidence_guard.generic_negative_context_terms vocabulary_maps: request_terms: prompt.measurement_evidence_guard.request_terms positive_terms: prompt.measurement_evidence_guard.positive_terms @@ -113,32 +115,6 @@ parameters: - '/\b(?:mit|für|fuer|zur|zum)\s+(?:dem\s+)?(?:messparameter|parameter|messwert|messgröße|messgroesse)\s+(?[^?.!,;\n]{2,80})/iu' - '/\b(?:messparameter|parameter|messwert|messgröße|messgroesse)\s*(?:für|fuer|von|zur|zum|:)\s*(?[^?.!,;\n]{2,80})/iu' - '/\b(?:messung|messen|überwachung|ueberwachung|bestimmung|analyse)\s+(?:von|der|des|für|fuer|zur|zum)\s+(?[^?.!,;\n]{2,80})/iu' - generic_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 - generic_negative_context_terms: - - Betriebsbereich - - Betriebsumgebung - - Einsatzbedingungen - - störungsfrei - - stoerungsfrei generic_safe_no_evidence_answer_template_de: Ich finde in den bereitgestellten Quellen keinen sicher belegten Treffer für die Messung von {label}. generic_safe_no_accessory_evidence_answer_template_de: Ich finde in den bereitgestellten Quellen keinen sicher belegten Indikator oder ein Reagenz für die Messung von {label}. rule_templates: diff --git a/config/retriex/vocabulary.yaml b/config/retriex/vocabulary.yaml index e63f2d3..287ffe9 100644 --- a/config/retriex/vocabulary.yaml +++ b/config/retriex/vocabulary.yaml @@ -670,6 +670,34 @@ parameters: - kalibrierpuffer - kalibrierlösung - kalibrierloesung + generic_positive_context_terms: + add: + - 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 + generic_negative_context_terms: + add: + - Betriebsbereich + - Betriebsumgebung + - Einsatzbedingungen + - störungsfrei + - stoerungsfrei technical_product_keywords: add: - technisch diff --git a/patch_history/RETRIEX_PATCH_43R_PROMPT_MEASUREMENT_CONTEXT_VOCABULARY_VIEWS_README.md b/patch_history/RETRIEX_PATCH_43R_PROMPT_MEASUREMENT_CONTEXT_VOCABULARY_VIEWS_README.md new file mode 100644 index 0000000..5ba5519 --- /dev/null +++ b/patch_history/RETRIEX_PATCH_43R_PROMPT_MEASUREMENT_CONTEXT_VOCABULARY_VIEWS_README.md @@ -0,0 +1,104 @@ +# RetrieX Patch 43R - Prompt Measurement Context Vocabulary Views + +## Ziel + +p43R konsolidiert weitere Measurement-Evidence-Termlisten aus `prompt.yaml` in zentrale Vocabulary-Views, ohne fachliche Runtime-Logik, Scoring, Retrieval oder Prompt-Regeln zu ändern. + +Der Patch setzt auf dem grün bestätigten p43Q-Stand auf. + +## Änderungen + +### `config/retriex/prompt.yaml` + +Die lokalen Listen wurden aus `measurement_evidence_guard` entfernt und durch Vocabulary-View-Referenzen ersetzt: + +- `generic_positive_context_terms` +- `generic_negative_context_terms` + +Neu referenziert über: + +```yaml +measurement_evidence_guard: + vocabulary_views: + generic_positive_context_terms: prompt.measurement_evidence_guard.generic_positive_context_terms + generic_negative_context_terms: prompt.measurement_evidence_guard.generic_negative_context_terms +``` + +Lokale Overrides bleiben weiterhin möglich: Wenn die Listen direkt im `prompt.yaml` gesetzt werden, werden diese lokalen Werte bevorzugt. + +### `config/retriex/vocabulary.yaml` + +Neue zentrale Views: + +- `views.prompt.measurement_evidence_guard.generic_positive_context_terms` +- `views.prompt.measurement_evidence_guard.generic_negative_context_terms` + +Die Werte wurden aus dem p43Q-Stand 1:1 übernommen. + +### `src/Config/PromptBuilderConfig.php` + +Die Accessor-Methoden nutzen nun die vorhandene Fallback-Logik: + +- `getMeasurementEvidenceGenericPositiveContextTerms()` +- `getMeasurementEvidenceGenericNegativeContextTerms()` + +Beide Methoden lösen jetzt auf: + +1. lokale Liste im `prompt.yaml`, falls vorhanden +2. sonst zentrale Vocabulary-View + +## Bewusst nicht geändert + +Die pH-spezifischen `negative_context_terms` bleiben lokal im jeweiligen Parameterblock. Grund: Diese Liste enthält bewusst mehrere Schreib-/Case-Varianten für Prompt-/Matching-Kontext. Würde sie in `vocabulary.yaml` verschoben, könnte die zentrale Config-Validation sie als Duplicate-Warnung melden. Deshalb wird sie nicht im Rahmen dieses reinen Warning-freien Konsolidierungspatches verschoben. + +## Effektive Werte + +Die effektiven Measurement-Evidence-Kontextlisten bleiben gegenüber p43Q identisch: + +- `generic_positive_context_terms`: 19 / identisch +- `generic_negative_context_terms`: 5 / identisch +- `ph.positive_context_terms`: 19 / identisch +- `ph.negative_context_terms`: 15 / identisch +- `redox.positive_context_terms`: 19 / identisch +- `redox.negative_context_terms`: 5 / identisch +- `free_chlorine.positive_context_terms`: 19 / identisch +- `free_chlorine.negative_context_terms`: 5 / identisch + +## Nicht geändert + +- keine fachliche Runtime-Logik +- keine Scoringänderung +- keine Retrievaländerung +- keine Prompt-Regeländerung +- keine Admin-UI +- keine neuen harten fachlichen Listen im PHP-Core + +## Lokale Prüfungen + +Ausgeführt: + +```bash +php -l src/Config/PromptBuilderConfig.php +php -l src/Config/DomainVocabularyConfig.php +php -l src/Config/AgentRunnerConfig.php +php -l src/Config/SearchRepairConfig.php +php -l src/Config/GovernanceConfig.php +php -l src/Config/LanguageCleanupConfig.php +python3 YAML parse check for config/retriex/*.yaml +python3 effective p43Q-vs-p43R measurement evidence context comparison +python3 duplicate check for new vocabulary views +zip -T retriex_p43r_prompt_measurement_context_vocabulary_views_patch_only.zip +``` + +Alle lokalen Prüfungen waren 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 lokal mit fehlenden Dependencies ab. diff --git a/public/index.html b/public/index.html index c9267f1..46ce4b4 100644 --- a/public/index.html +++ b/public/index.html @@ -19,13 +19,15 @@
+
+
- +
-
KI-Agent
+
KI-Agent
- +
diff --git a/src/Config/PromptBuilderConfig.php b/src/Config/PromptBuilderConfig.php index 66014c8..0fe6146 100644 --- a/src/Config/PromptBuilderConfig.php +++ b/src/Config/PromptBuilderConfig.php @@ -752,7 +752,10 @@ final class PromptBuilderConfig */ public function getMeasurementEvidenceGenericPositiveContextTerms(): array { - return $this->getRequiredStringList('measurement_evidence_guard.generic_positive_context_terms'); + return $this->getConfiguredStringListOrVocabularyView( + 'measurement_evidence_guard.generic_positive_context_terms', + 'measurement_evidence_guard.vocabulary_views.generic_positive_context_terms' + ); } /** @@ -760,7 +763,10 @@ final class PromptBuilderConfig */ public function getMeasurementEvidenceGenericNegativeContextTerms(): array { - return $this->getRequiredStringList('measurement_evidence_guard.generic_negative_context_terms'); + return $this->getConfiguredStringListOrVocabularyView( + 'measurement_evidence_guard.generic_negative_context_terms', + 'measurement_evidence_guard.vocabulary_views.generic_negative_context_terms' + ); } public function getMeasurementEvidenceGenericSafeNoEvidenceAnswerTemplate(): string