This commit is contained in:
team 1
2026-05-06 09:22:10 +02:00
parent 773e93856b
commit dcaadc27a0
5 changed files with 147 additions and 31 deletions

View File

@@ -93,6 +93,8 @@ parameters:
vocabulary_views: vocabulary_views:
accessory_lookup_guard_terms: prompt.measurement_evidence_guard.accessory_lookup_guard_terms accessory_lookup_guard_terms: prompt.measurement_evidence_guard.accessory_lookup_guard_terms
accessory_lookup_passthrough_terms: prompt.measurement_evidence_guard.accessory_lookup_passthrough_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: vocabulary_maps:
request_terms: prompt.measurement_evidence_guard.request_terms request_terms: prompt.measurement_evidence_guard.request_terms
positive_terms: prompt.measurement_evidence_guard.positive_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+(?<parameter>[^?.!,;\n]{2,80})/iu' - '/\b(?:mit|für|fuer|zur|zum)\s+(?:dem\s+)?(?:messparameter|parameter|messwert|messgröße|messgroesse)\s+(?<parameter>[^?.!,;\n]{2,80})/iu'
- '/\b(?:messparameter|parameter|messwert|messgröße|messgroesse)\s*(?:für|fuer|von|zur|zum|:)\s*(?<parameter>[^?.!,;\n]{2,80})/iu' - '/\b(?:messparameter|parameter|messwert|messgröße|messgroesse)\s*(?:für|fuer|von|zur|zum|:)\s*(?<parameter>[^?.!,;\n]{2,80})/iu'
- '/\b(?:messung|messen|überwachung|ueberwachung|bestimmung|analyse)\s+(?:von|der|des|für|fuer|zur|zum)\s+(?<parameter>[^?.!,;\n]{2,80})/iu' - '/\b(?:messung|messen|überwachung|ueberwachung|bestimmung|analyse)\s+(?:von|der|des|für|fuer|zur|zum)\s+(?<parameter>[^?.!,;\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_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}. 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: rule_templates:

View File

@@ -670,6 +670,34 @@ parameters:
- kalibrierpuffer - kalibrierpuffer
- kalibrierlösung - kalibrierlösung
- kalibrierloesung - 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: technical_product_keywords:
add: add:
- technisch - technisch

View File

@@ -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.

View File

@@ -19,13 +19,15 @@
<div class="container"> <div class="container">
<div class="header"> <div class="header">
<div> <div>
<div class="d-flex"> <div class="d-flex">
<img src="/assets/img/logo.png" style="max-width: 100px;"> <img src="/assets/img/logo.png" style="max-height: 20px;">
</div> </div>
<div class="text-info fw-bold">KI-Agent</div> <div class="text-info fw-bold" style="font-size: 12px">KI-Agent</div>
</div> </div>
<img src="/assets/img/logo.svg" style="max-width: 100px;"> <img src="/assets/img/logo.svg" style="max-height: 25px;">
<div class="spacer"></div> <div class="spacer"></div>
<button id="clear" class="btn btn-trans">Diesen Chat löschen</button> <button id="clear" class="btn btn-trans">Diesen Chat löschen</button>

View File

@@ -752,7 +752,10 @@ final class PromptBuilderConfig
*/ */
public function getMeasurementEvidenceGenericPositiveContextTerms(): array 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 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 public function getMeasurementEvidenceGenericSafeNoEvidenceAnswerTemplate(): string