Files
MtoRagSystem/config/retriex/agent.yaml
2026-04-27 16:11:25 +02:00

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, Pockettester, Redox, ORP, 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'