This commit is contained in:
team 1
2026-05-07 17:13:55 +02:00
parent 9520807e65
commit 0977cec651
5 changed files with 61 additions and 15 deletions

View File

@@ -366,10 +366,6 @@ parameters:
separator: ' | ' separator: ' | '
unavailable_reason_template: '{message} Ursache: {reason}' unavailable_reason_template: '{message} Ursache: {reason}'
product_roles:
vocabulary_views:
main_device_request_keywords: agent.no_llm_fallback.product_roles.main_device_request_keywords
accessory_product_keywords: agent.no_llm_fallback.product_roles.accessory_product_keywords
production_ui: production_ui:

View File

@@ -14,6 +14,8 @@
# the value surface stays native and maintenance-focused. # the value surface stays native and maintenance-focused.
# p59F adds machine-readable review-group metadata so the remaining # p59F adds machine-readable review-group metadata so the remaining
# compatibility paths can be removed or kept deliberately by category. # compatibility paths can be removed or kept deliberately by category.
# p59G rewires the no-LLM product-role fallback directly to genre values
# and removes its obsolete legacy compatibility view declarations.
parameters: parameters:
retriex.genre.config: retriex.genre.config:
id: water_analysis id: water_analysis
@@ -30,15 +32,6 @@ parameters:
- configuration_values.product_roles.shop_views - configuration_values.product_roles.shop_views
- configuration_values.product_roles.prompt_views - configuration_values.product_roles.prompt_views
- configuration_values.product_roles.no_llm_fallback_terms - configuration_values.product_roles.no_llm_fallback_terms
review_path_groups:
frozen_compatibility_views:
description: Legacy no-LLM product-role vocabulary views. Keep frozen until the fallback reads only from genre.configuration_values.product_roles.
classification: legacy_compatibility_view
source_state: legacy_frozen_non_empty
cleanup_action: rewire_to_genre_value_and_remove_legacy_view
paths:
- agent.no_llm_fallback.product_roles.vocabulary_views.main_device_request_keywords
- agent.no_llm_fallback.product_roles.vocabulary_views.accessory_product_keywords
product_attributes: product_attributes:
description: Genre-specific attributes and constraints, for example measurement values now or size/color/material later. description: Genre-specific attributes and constraints, for example measurement values now or size/color/material later.
value_paths: value_paths:

View File

@@ -31,8 +31,6 @@ parameters:
agent.follow_up_context.commercial_table_follow_up.query_template_with_model: '5e4c77d6b9d13a753d14ca8eea3c942df3d9e8276bc2c208b4002e9464bee4e8' agent.follow_up_context.commercial_table_follow_up.query_template_with_model: '5e4c77d6b9d13a753d14ca8eea3c942df3d9e8276bc2c208b4002e9464bee4e8'
agent.follow_up_context.commercial_table_follow_up.query_template_without_model: '2b5a25507a162c3b2181001ec832022e3461da3c89229fd9dd9b06ce9d686eab' agent.follow_up_context.commercial_table_follow_up.query_template_without_model: '2b5a25507a162c3b2181001ec832022e3461da3c89229fd9dd9b06ce9d686eab'
agent.input_normalization.fuzzy_routing.vocabulary_views.terms: '430f9da9d2d8d20b1367c875000f941e0b7b56f74a23fbfc8cd29aa11cd59716' agent.input_normalization.fuzzy_routing.vocabulary_views.terms: '430f9da9d2d8d20b1367c875000f941e0b7b56f74a23fbfc8cd29aa11cd59716'
agent.no_llm_fallback.product_roles.vocabulary_views.accessory_product_keywords: '13623043e91858bf30831a28e0df23556bebe036d09eedc8fdca316d585a471f'
agent.no_llm_fallback.product_roles.vocabulary_views.main_device_request_keywords: 'ab49470c75a011355dd827381e881ed8553273cd87090fea162035eaae5f1c6e'
agent.shop_runtime.answer_constraints.length_filter: '66363cc7bf0dfe75c3991cefc70f1dfaf2f3150ab2f4f59f30f54b52d1c4d7af' agent.shop_runtime.answer_constraints.length_filter: '66363cc7bf0dfe75c3991cefc70f1dfaf2f3150ab2f4f59f30f54b52d1c4d7af'
agent.shop_runtime.answer_constraints.length_sort: '1207b32e691996ca643f5bfd9b31467b70a11289ce56af356bd7f4fe78826c75' agent.shop_runtime.answer_constraints.length_sort: '1207b32e691996ca643f5bfd9b31467b70a11289ce56af356bd7f4fe78826c75'
agent.shop_runtime.attribute_cleanup.vocabulary_views.product_type_terms: '76060cf458b95b104bf3755b9c20997b7ec9b356c30bae093cb504e07434c152' agent.shop_runtime.attribute_cleanup.vocabulary_views.product_type_terms: '76060cf458b95b104bf3755b9c20997b7ec9b356c30bae093cb504e07434c152'

View File

@@ -0,0 +1,49 @@
# RetrieX Patch p59G - Genre no-LLM role fallback rewire
## Ziel
p59G ist der erste kleine echte Rewire-Schritt nach der p59A-p59F Metadatenbereinigung. Der no-LLM Produktrollen-Fallback liest die Rollenbegriffe jetzt direkt aus `genre.yaml`, statt über die alte Agent-`vocabulary_views`-Kompatibilitätsschicht zu gehen.
## Änderungen
- `AgentRunnerConfig::getNoLlmMainDeviceRequestRoleKeywords()` liest bevorzugt aus `genre.configuration_values.product_roles.no_llm_fallback_terms.main_device_request_keywords`.
- `AgentRunnerConfig::getNoLlmAccessoryProductRoleKeywords()` liest bevorzugt aus `genre.configuration_values.product_roles.no_llm_fallback_terms.accessory_product_keywords`.
- Die alten Agent-View-Pfade unter `agent.no_llm_fallback.product_roles.vocabulary_views.*` wurden aus `agent.yaml` entfernt.
- Die Review-Gruppe `adaptation_surface.product_roles.review_path_groups.frozen_compatibility_views` wurde aus `genre.yaml` entfernt.
- Die zugehörigen frozen Hashes wurden aus `governance.genre_source_of_truth.frozen_non_empty_legacy_source_hashes` entfernt.
## Nicht geändert
- Keine Prompt-, Retrieval-, Shop-, Query-, SearchRepair-, Intent- oder Scoring-Logik wurde geändert.
- Die fachlichen no-LLM Rollenwerte bleiben unverändert in `genre.yaml`.
- Die Fallback-Methoden behalten den technischen Legacy-Fallback im Code, falls in einem alten Setup keine GenreConfig verfügbar ist; im aktuellen Single-Genre-Setup greift aber der Genre-Wert.
## Erwartete Audit-Auswirkung
- `genre_review_path_groups_with_source_paths`: 14 -> 13
- `genre_declared_source_paths`: 39 -> 37
- `genre_source_of_truth_frozen_non_empty`: 37 -> 35
- `genre_source_of_truth_violations`: bleibt 0
## Lokale Prüfung ohne vendor/
- YAML parsebar für `genre.yaml`, `agent.yaml`, `governance.yaml`, `vocabulary.yaml`
- PHP-Lint grün für `src/Config/AgentRunnerConfig.php`
- Lokale Source-of-Truth-Simulation:
- 13 Review-Gruppen
- 37 deklarierte Review-Source-Pfade
- 35 frozen non-empty Pfade
- 2 runtime-resolved Pfade
- 0 leere Legacy-Fallbacks
- 0 fehlende Pfade
- 0 undeclared frozen hashes
- 0 Hash-Mismatches
## Projektchecks nach Einspielen
```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

@@ -962,6 +962,11 @@ final class AgentRunnerConfig
*/ */
public function getNoLlmMainDeviceRequestRoleKeywords(): array public function getNoLlmMainDeviceRequestRoleKeywords(): array
{ {
$terms = $this->genreStringList('product_roles.no_llm_fallback_terms.main_device_request_keywords');
if ($terms !== []) {
return $terms;
}
return $this->getConfiguredStringListOrVocabularyView( return $this->getConfiguredStringListOrVocabularyView(
'no_llm_fallback.product_roles.main_device_request_keywords', 'no_llm_fallback.product_roles.main_device_request_keywords',
'no_llm_fallback.product_roles.vocabulary_views.main_device_request_keywords' 'no_llm_fallback.product_roles.vocabulary_views.main_device_request_keywords'
@@ -973,6 +978,11 @@ final class AgentRunnerConfig
*/ */
public function getNoLlmAccessoryProductRoleKeywords(): array public function getNoLlmAccessoryProductRoleKeywords(): array
{ {
$terms = $this->genreStringList('product_roles.no_llm_fallback_terms.accessory_product_keywords');
if ($terms !== []) {
return $terms;
}
return $this->getConfiguredStringListOrVocabularyView( return $this->getConfiguredStringListOrVocabularyView(
'no_llm_fallback.product_roles.accessory_product_keywords', 'no_llm_fallback.product_roles.accessory_product_keywords',
'no_llm_fallback.product_roles.vocabulary_views.accessory_product_keywords' 'no_llm_fallback.product_roles.vocabulary_views.accessory_product_keywords'