195 lines
7.6 KiB
YAML
195 lines
7.6 KiB
YAML
# Agent orchestration limits, user-visible status/source labels and Shopware query prompt wording.
|
|
# Values mirror the current stable defaults; PHP fallbacks remain in AgentRunnerConfig.
|
|
parameters:
|
|
retriex.agent.config:
|
|
commerce_history_budget_chars: 1000
|
|
product_search_knowledge_chunk_limit: 6
|
|
advisory_product_search_knowledge_chunk_limit: 9
|
|
optimized_shop_query_prefix_pattern: '/^(?:keywords?|suchquery|search\s*query|query)\s*:\s*/iu'
|
|
|
|
messages:
|
|
empty_prompt: '❌ Empty prompt.'
|
|
analyze_request: 'Ich analysiere deine Anfrage...'
|
|
check_internet_sources: 'Ich prüfe auf Internetquellen...'
|
|
retrieve_knowledge: 'Ich hole relevante Daten aus meinem RAG-Wissen...'
|
|
optimize_search: 'Ich optimiere die Recherche...'
|
|
no_concrete_shop_query: 'Ich habe keine konkrete Shop-Suchanfrage erkannt. Bitte nenne das Produkt, Zubehör oder die Artikelnummer.'
|
|
fetch_search_data_template: 'Ich rufe Recherchedaten ab (type: %s)'
|
|
analyze_all_information: 'Ich analysiere alle Informationen...'
|
|
thinking_while_streaming: 'Denke nach...'
|
|
no_llm_data_received: '❌ Es wurden keine Daten vom LLM empfangen.'
|
|
generic_internal_error: '❌ Bei der Verarbeitung der Anfrage ist ein interner Fehler aufgetreten.'
|
|
debug_internal_error_prefix: '❌ Interner Fehler: '
|
|
|
|
source_labels:
|
|
external_url: 'Externe URL'
|
|
rag_knowledge: 'RAG Wissen'
|
|
conversation_history: 'Chatverlauf'
|
|
shop_system: 'Shopsystem'
|
|
extended_shop_search: 'Erweiterte Shopsuche'
|
|
used_sources_prefix: 'Genutzte Quellen: '
|
|
sources_prefix: 'Quellen: '
|
|
|
|
html:
|
|
source_badge_template: '<span class="badge bg-info text-black">%s</span>'
|
|
error_template: |
|
|
<div class="retriex-alert retriex-alert--error"><div class="retriex-alert__icon">❌</div><div class="retriex-alert__content"><div class="retriex-alert__title">Hinweis</div><div class="retriex-alert__text">%s</div></div></div>
|
|
think_template: |
|
|
<span class="text-info think">%s</span>
|
|
info_template: "\n\n<span class=\"text-info fw-bolder\">%s</span>\n"
|
|
debug_template: "\n\nDEBUG: <code>%s</code>\n"
|
|
|
|
shop_prompt:
|
|
intro: 'Generate a short search query for Shopware 6 from the following user input text.'
|
|
output_format_block: |-
|
|
Output format:
|
|
Keyword1 Keyword2 Keyword3
|
|
recent_conversation_context_label: 'RECENT CONVERSATION CONTEXT'
|
|
current_user_input_label: 'CURRENT USER INPUT'
|
|
rules:
|
|
- '- Output only the final search query.'
|
|
- '- Always convert relevant search terms to their singular form.'
|
|
- '- No introduction, no explanation, no quotation marks.'
|
|
- '- Use only shop-relevant search terms from the user input for a shop search.'
|
|
- '- Maximum 6 search terms, preferably fewer.'
|
|
- '- Remove filler words, polite phrases, and irrelevant words.'
|
|
- '- Preserve product names, brands, model numbers, and compound terms exactly if they are relevant.'
|
|
- '- Preserve the language of the CURRENT USER INPUT for generic product/search terms; do not translate German search terms into English.'
|
|
- '- For German user input, output German shop terms, for example "freies Chlor Messung" instead of "free chlorine measurement".'
|
|
- '- Preserve domain terms from the current user input or resolved context in their original language.'
|
|
- '- Numbers that belong to a product name or model must be preserved (e.g. Indikator 300, Testomat 808, Testomat 2000).'
|
|
- '- Separate terms using spaces only.'
|
|
- '- If a relevant product name is present, it must be placed at the beginning of the final search query.'
|
|
- '- Try to always identify all products mentioned in the user input text, even in long prompts.'
|
|
- '- Look for terms such as Testomat, Horiba, Tritromat, or words like indicator/Indikator.'
|
|
- '- If the current user input is vague or referential, use the recent conversation context only as support.'
|
|
- '- Do not output words that only describe conversation flow, such as "same", "again", "also", or "like above".'
|
|
conversation_context_rules:
|
|
- '- The current user input has highest priority.'
|
|
- '- Use the recent conversation context only to resolve omitted references.'
|
|
- '- Use it only for product carry-over, brand carry-over, model carry-over, or variant follow-ups.'
|
|
- '- Do not revive older products unless the current user input clearly refers to them.'
|
|
- '- If the current input starts a new topic, ignore older product context.'
|
|
- '- Prefer the most recent product reference over older ones.'
|
|
context_anchor_enrichment:
|
|
enabled: true
|
|
max_query_terms: 2
|
|
template: '{anchor} {query}'
|
|
trigger_terms:
|
|
- indikator
|
|
- indikatortyp
|
|
- indicator
|
|
- reagenz
|
|
- reagenzsatz
|
|
- reagent
|
|
- zubehör
|
|
- zubehor
|
|
- accessory
|
|
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'
|
|
meta_query_guard:
|
|
enabled: true
|
|
context_fallback_enabled: true
|
|
context_fallback_question_limit: 12
|
|
context_fallback_history_budget_chars: 20000
|
|
context_fallback_use_full_history: true
|
|
context_fallback_max_terms: 6
|
|
context_fallback_filter_terms:
|
|
- mit
|
|
- welche
|
|
- welcher
|
|
- welches
|
|
- welchem
|
|
- welchen
|
|
- ist
|
|
- sind
|
|
- gut
|
|
- geeignet
|
|
- was
|
|
- wie
|
|
- wo
|
|
- kann
|
|
- koennen
|
|
- können
|
|
- konnte
|
|
- könnte
|
|
- ich
|
|
- wir
|
|
- man
|
|
- nutzen
|
|
- benutzen
|
|
- verwenden
|
|
- verwende
|
|
- nehmen
|
|
- zur
|
|
- zum
|
|
- für
|
|
- fuer
|
|
- messen
|
|
- gemessen
|
|
meta_only_terms:
|
|
- shop
|
|
- shopsuche
|
|
- shop-suche
|
|
- suche
|
|
- suchen
|
|
- such
|
|
- finde
|
|
- find
|
|
- zeige
|
|
- zeig
|
|
- bitte
|
|
- mal
|
|
- im
|
|
- in
|
|
- nach
|
|
- den
|
|
- die
|
|
- das
|
|
- der
|
|
- dem
|
|
language_preservation:
|
|
enabled: true
|
|
language_markers:
|
|
de:
|
|
- ' ä '
|
|
- ' ö '
|
|
- ' ü '
|
|
- ' ß '
|
|
- ' der '
|
|
- ' die '
|
|
- ' das '
|
|
- ' ein '
|
|
- ' eine '
|
|
- ' einer '
|
|
- ' einen '
|
|
- ' welchem '
|
|
- ' welchen '
|
|
- ' welche '
|
|
- ' welcher '
|
|
- ' kann '
|
|
- ' nutzen '
|
|
- ' zur '
|
|
- ' für '
|
|
- ' fuer '
|
|
- ' messung '
|
|
- ' indikator '
|
|
- ' reagenz '
|
|
- ' chlor '
|
|
translation_replacements:
|
|
de:
|
|
free chlorine: 'freies chlor'
|
|
free chlor: 'freies chlor'
|
|
total chlorine: 'gesamtchlor'
|
|
chlorine measurement: 'chlor messung'
|
|
water hardness: 'wasserhärte'
|
|
measurement: 'messung'
|
|
measuring: 'messung'
|
|
chlorine: 'chlor'
|
|
indicator: 'indikator'
|
|
indicators: 'indikatoren'
|
|
reagent: 'reagenz'
|
|
reagents: 'reagenzien'
|
|
accessory: 'zubehör'
|
|
accessories: 'zubehör'
|