This commit is contained in:
team 1
2026-05-06 18:25:56 +02:00
parent 8a2f4f3c67
commit 02fd087323
6 changed files with 122 additions and 290 deletions

View File

@@ -184,48 +184,7 @@ parameters:
# Plain Shopware text search should contain product-relevant terms only.
# These terms are UI, instruction, presentation or sorting words and are
# removed after LLM query optimization. Keep this list simple and local.
terms:
- zeige
- zeig
- suche
- such
- finde
- find
- gib
- gebe
- nenne
- mir
- bitte
- ich
- wir
- im
- in
- shop
- für
- fuer
- nach
- mit
- ohne
- von
- zum
- zur
- der
- die
- das
- ein
- eine
- einen
- ordne
- sortiere
- sortiert
- sortierung
- liste
- tabelle
- übersicht
- uebersicht
- auflistung
- meter
- metern
terms: []
attribute_cleanup:
@@ -242,42 +201,19 @@ parameters:
vocabulary_views:
product_type_terms: search_repair.direct_product_type_terms
stop_terms: search_repair.direct_product_attribute_stop_terms
comparative_constraint_patterns:
- '/\b(?:länger|laenger|kürzer|kuerzer|größer|groesser|kleiner|über|ueber|unter|mindestens|maximal|maximum|minimum|ab|bis|mehr\s+als|weniger\s+als)\s+(?P<value>\d+(?:[,.]\d+)?\s*[\p{L}µ°%]*)\b/iu'
comparative_constraint_patterns: []
context_resolution:
context_usage:
referential_terms:
- der
- die
- das
- den
- dem
- dazu
- davon
- dafür
- dafuer
- dieser
- diese
- dieses
- obige
- obigen
- oben
- vorher
- zuvor
- gleiche
- gleichen
- selbe
- selben
referential_terms: []
history_anchor_enrichment:
enabled: true
max_query_terms: 2
template: '{anchor} {query}'
template: ''
vocabulary_views:
trigger_terms: agent.shop_runtime.context_resolution.history_anchor_enrichment.trigger_terms
anchor_patterns:
- '/\b(?:indikator(?:typ)?|indicator(?:\s+type)?|reagenz(?:satz|typ)?|reagent(?:\s+set|\s+type)?|typ|type)\s+[A-Za-zÄÖÜäöüß]{0,8}\s*\d{1,5}(?:\s*[A-ZÄÖÜ]{1,4})?(?:\s*%)?\b/iu'
anchor_patterns: []
meta_query_guard:
enabled: true
cleanup_profile: shop_context_fallback
@@ -289,29 +225,8 @@ parameters:
# Legacy/domain override list. Generic stopwords, user-instruction
# phrases and presentation terms are provided by profile
# `shop_context_fallback`. Keep shop/price/domain terms here.
context_fallback_filter_terms:
- preis
- preise
- preisen
- kosten
- kostet
- grenzwert
- grenzwerte
- grenzwerten
- welche
- gut
- geeignet
- messen
- gemessen
meta_only_terms:
- shop
- preis
- preise
- preisen
- kosten
- kostet
- shopsuche
- shop-suche
context_fallback_filter_terms: []
meta_only_terms: []
rag_anchor_enrichment:
enabled: true
# Enriches overly narrow numeric shop queries with a product anchor from
@@ -326,24 +241,10 @@ parameters:
exact_value_with_unit: 120
exact_value_only: 40
anchor_bonus: 50
numeric_focus_patterns:
- '/(?P<value>\d+(?:[,.]\d+)?)\s*(?P<unit>°?\s*d\s*h|dh|dH)/iu'
product_title_patterns:
- '/#\s*Produkt\s+Titel:\s*`(?P<title>[^`]+)`/iu'
- '/\*\*Produktname:\*\*\s*(?P<title>[^\r\n]+)/iu'
anchor_bonus_patterns:
- '/\b[\p{L}][\p{L}\p{N}®+._-]*(?:\s+|[-_])\d{2,5}\b/u'
subject_terms:
- resthärte
- resthaerte
- wasserhärte
- wasserhaerte
- gesamthärte
- gesamthaerte
- härte
- haerte
- grenzwert
- messung
numeric_focus_patterns: []
product_title_patterns: []
anchor_bonus_patterns: []
subject_terms: []
result_identity:
@@ -358,9 +259,7 @@ parameters:
# Some Shopware product names combine the requested product type with
# a noun suffix, for example "pH-Pufferlösung". Keep this list small
# and explicit so broad direct-result filtering remains safe.
terms:
- puffer
- kalibrierpuffer
terms: []
primary_identity_repair:
enabled: true
min_query_tokens_after_cleanup: 2
@@ -369,56 +268,29 @@ parameters:
# such as brand/pH/Redox, but remove target-device wording that can
# push Shopware ranking toward devices instead of the requested
# accessory/consumable.
stop_terms:
- messgerät
- messgeraet
- messgeräte
- messgeraete
- messgeräten
- messgeraeten
- gerät
- geraet
- geräte
- geraete
- geräten
- geraeten
- handmessgerät
- handmessgeraet
- handmessgeräte
- handmessgeraete
- messkoffer
- koffer
stop_terms: []
answer_constraints:
length_sort:
enabled: true
trigger_patterns:
- '/\b(?:ordne|sortiere|sortiert|sortierung)\b.{0,80}\b(?:meter|metern|m)\b/iu'
- '/\bnach\s+(?:meter|metern|m)\b/iu'
value_patterns:
- '/(?P<value>\d+(?:[,.]\d+)?)\s*(?:m|meter|metern)\b/iu'
trigger_patterns: []
value_patterns: []
length_filter:
enabled: true
min_patterns:
- '/\b(?:ab|mindestens|minimum|min\.?|>=|größer\s+gleich|groesser\s+gleich)\s*(?P<value>\d+(?:[,.]\d+)?)\s*(?:m|meter|metern)\b/iu'
- '/\b(?:länger|laenger|größer|groesser|mehr)\s+(?:als\s+)?(?P<value>\d+(?:[,.]\d+)?)\s*(?:m|meter|metern)\b/iu'
- '/(?P<value>\d+(?:[,.]\d+)?)\s*(?:m|meter|metern)\s*(?:oder\s+)?(?:länger|laenger|mehr)\b/iu'
max_patterns:
- '/\b(?:bis|maximal|maximum|max\.?|höchstens|hoechstens|<=|kleiner\s+gleich)\s*(?P<value>\d+(?:[,.]\d+)?)\s*(?:m|meter|metern)\b/iu'
- '/\b(?:kürzer|kuerzer|kleiner|weniger)\s+(?:als\s+)?(?P<value>\d+(?:[,.]\d+)?)\s*(?:m|meter|metern)\b/iu'
- '/(?P<value>\d+(?:[,.]\d+)?)\s*(?:m|meter|metern)\s*(?:oder\s+)?(?:kürzer|kuerzer|weniger)\b/iu'
min_patterns: []
max_patterns: []
direct_answer:
enabled: true
max_results: 10
intro: 'Aus den Shopdaten ergeben sich folgende passende Treffer:'
no_results: 'Ich finde in den Shopdaten keine passenden Treffer für die angefragte Produktsuche. Ich liste deshalb keine fachfremden Ersatzprodukte auf.'
sorted_by_length_note: 'Sortierung: aufsteigend nach erkannter Kabellänge.'
min_length_filter_note: 'Filter: nur Treffer ab {value} m.'
max_length_filter_note: 'Filter: nur Treffer bis {value} m.'
intro: ''
no_results: ''
sorted_by_length_note: ''
min_length_filter_note: ''
max_length_filter_note: ''
rag_evidence_guard: