Files
MtoRagSystem/CONFIG_PARAMS.md
team 1 e072a8e15e p98
2026-05-12 07:53:49 +02:00

603 lines
34 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CONFIG_PARAMS.md
# RetrieX v1.6.0 Konfigurationsparameter und Tuning-Leitfaden
Diese Datei beschreibt die wichtigsten Konfigurationsflächen des aktuellen Systems. Fachliche Listen, Promptregeln, Intent-Signale, Sprachbereinigung, Shopquery-Logik und UI-Texte sollen weiterhin bevorzugt in YAML gepflegt werden, nicht als neue Domain-Sonderlogik im PHP-Core.
## Grundregel
- `config/retriex/*.yaml` ist die zentrale Source of Truth für fachlich konfigurierbares Verhalten.
- `config/packages/security.yaml` ist die zentrale Source of Truth für Firewalls, Rollen und Access-Control.
- PHP-Code soll Konfiguration lesen, validieren und ausführen, aber keine neuen fachlichen Tokenlisten oder Business-Regeln verstecken.
---
# 1. YAML-Dateien im Überblick
| Datei | Zweck |
| --- | --- |
| `config/retriex/agent.yaml` | AgentRunner-Orchestrierung, Follow-up-Kontext, Shopruntime, Guards, No-LLM-Fallback, UI-Produktionsdaten |
| `config/retriex/chat-messages.yaml` | User-sichtbare Chat-, SSE-, Frontend-, Agent-, Status-, Follow-up- und Fehlermeldungen |
| `config/retriex/commerce.yaml` | Shopware-Anbindung, Commerce-Query-Parsing, Reference Resolver, Shop-Matching und Produkt-Ranking |
| `config/retriex/genre.yaml` | Genre-native Source of Truth für fachliche Adaption, Product Roles, Query Runtime, Context Resolution, Search Repair |
| `config/retriex/governance.yaml` | Regression-Baselines, Source-of-Truth-Guards, Pflichtprofile, Core-Pattern-Audit |
| `config/retriex/index.yaml` | Chunking-, Embedding-, Indexformat- und Vector-Backend-Metadaten |
| `config/retriex/intent.yaml` | Commerce-, Katalog-, Light-, Sales- und technische Intent-Erkennung |
| `config/retriex/language.yaml` | Stopwords, Protected Terms, Normalisierung, Cleanup-Profile und Sprachrauschen |
| `config/retriex/model.yaml` | Default-Modellparameter, Kontextfenster, Retrieval-Limits und LLM-Timeouts |
| `config/retriex/prompt.yaml` | Promptbudget, Promptsektionen, Shop-Ergebnisformat, Fact-Grounding, Output-Regeln |
| `config/retriex/query_enrichment.yaml` | Query-Erweiterungen und Synonymregeln für Retrieval |
| `config/retriex/retrieval.yaml` | Retrieval-Schwellen, RRF, Dokumentbegrenzung, exakte Auswahlpfade, Inventar |
| `config/retriex/runtime.yaml` | Pfade, Knowledge-Dateien, Locks und Gesprächskontext-Limits |
| `config/retriex/search_repair.yaml` | Repair-Queries, exakte Zubehörcodes, direkte Attributsuchen, Repair-Ranking |
| `config/retriex/vector.yaml` | Python-/Vector-Service-Pfade, Host/Port, HTTP-Timeouts, Tag-Routing-Limits |
| `config/retriex/vocabulary.yaml` | Zentrales Vocabulary für Geräte, Zubehör, Agent, Prompt, Search Repair, Retrieval und Shop |
---
# 2. `config/retriex/agent.yaml`
| Parameter / Bereich | Bewirkt |
| --- | --- |
| `commerce_history_budget_chars` | Begrenzt, wie viel Chatverlauf für Commerce-/Shop-Kontext genutzt wird. |
| `product_search_knowledge_chunk_limit` | Begrenzt RAG-Chunks bei normalen Produkt-/Shopfragen. |
| `advisory_product_search_knowledge_chunk_limit` | Begrenzt RAG-Chunks bei beratenden Produktauswahlfragen. |
| `optimized_shop_query_prefix_pattern` | Entfernt LLM-Präfixe wie `query:` aus optimierten Shopqueries. |
| `optimized_shop_query_trim_characters` | Trimmt unerwünschte Randzeichen optimierter Shopqueries. |
| `input_normalization.*` | LLM-basierte Vor-Normalisierung, Länge, Skip-Patterns, Prompt und Fuzzy-Routing. |
| `follow_up_context.strong_reference_patterns` | Erkennt referenzielle Folgefragen wie „mit welchem Indikator“, „dieser Wert“. |
| `follow_up_context.explicit_commercial_signal_terms` | Erkennt Preis-, Shop-, Kauf- und Artikelnummer-Folgefragen. |
| `follow_up_context.commercial_table_follow_up.*` | Erkennt Folgefragen nach Preis-/Shop-Tabellen und baut Kontextqueries. |
| `follow_up_context.history_*_pattern` | Extrahiert relevante Vorfragen aus dem Chatverlauf. |
| `follow_up_context.reference_anchor.*` | Extrahiert technische Anker wie Testomat-Modell, Messwert oder Produktbezug. |
| `final_answer_guard.*` | Begrenzt wiederholte oder zu lange finale Antworten. |
| `shop_runtime.query_cleanup.current_input_preservation.*` | Erhält wichtige Tokens aus der aktuellen Nutzereingabe in der Shopquery. |
| `shop_runtime.query_cleanup.stopword_cleanup.*` | Entfernt Sprach-, Bedien- und Relationsrauschen aus Shopqueries. |
| `shop_runtime.query_cleanup.positive_token_filter.*` | Erlaubt positives Filtern auf produktnahe Tokens, Code-Patterns und Varianten-Tokens. |
| `shop_runtime.attribute_cleanup.*` | Bereinigt direkte Attribut-/Zubehörsuchen, z. B. Kabel-/Puffer-/Sensorfragen. |
| `shop_runtime.context_resolution.history_anchor_enrichment.*` | Reichert kurze referenzielle Shopqueries mit Verlaufankern an. |
| `shop_runtime.context_resolution.meta_query_guard.*` | Verhindert Meta-Queries wie „suche im Shop“ ohne konkreten Produktanker. |
| `shop_runtime.context_resolution.rag_anchor_enrichment.*` | Ergänzt Shopqueries aus RAG-Ankern, z. B. bei exakten Messwerten. |
| `shop_runtime.result_identity.*` | Prüft primäre Produktidentität und verhindert zu breite Direct-Product-Ergebnisse. |
| `shop_runtime.answer_constraints.*` | Steuert direkte Antwortfilter, z. B. nach Längenangaben. |
| `rag_evidence_guard.*` | Prüft, ob RAG-Treffer und Antwort ausreichende fachliche Evidenz liefern. |
| `no_llm_fallback.*` | Fallback-Verhalten, wenn kein LLM verfügbar ist oder keine sichere Synthese möglich ist. |
| `production_ui.shop_results.max_cards` | Anzahl sichtbarer Shopkarten. |
| `shop_prompt.*` | LLM-Regeln zur Erzeugung kurzer Shopware-Suchqueries. |
---
# 3. `config/retriex/chat-messages.yaml`
| Parameter / Bereich | Bewirkt |
| --- | --- |
| `sse.empty_prompt` | Meldung bei leerem Prompt. |
| `sse.job_*` | Meldungen für Job-Anlage, fehlende Jobs, stale Jobs und Jobfehler. |
| `sse.claim.*` | Meldungen für abgelaufene, gesperrte, laufende oder abgeschlossene Stream-Jobs. |
| `sse.storage.*` | Fehlermeldungen für Stream-Job-Dateispeicher. |
| `frontend.document.title` | Browser-/Dokumenttitel. |
| `frontend.ui.*` | Header, Footer, Buttons, Optionen und Eingabeplatzhalter im Chat. |
| `frontend.assistant.*` | Loader-, Abbruch- und History-Meldungen im Frontend. |
| `frontend.source_chips.*` | Labels für sichtbare Quellenchips. |
| `frontend.run_meta.*` | Status-/Meta-Texte für abgeschlossene oder unterbrochene Antworten. |
| `frontend.stream.*` | Frontend-Meldungen bei Streamunterbrechung oder Retry-Fällen. |
| `frontend.guards.*` | Frontend-Guards gegen unkonkrete Shopantworten. |
| `agent.messages.*` | Statusmeldungen während Analyse, Retrieval, Shop-Suche und Antwortgenerierung. |
| `agent.final_answer_guard.*` | Nutzerhinweise bei gekürzten Antworten. |
| `agent.no_llm_fallback.messages.*` | Vorgefertigte No-LLM-/No-Data-/Shop-Unavailable-Antworten. |
| `agent.production_ui.stage_labels.*` | Statusphasen wie „Shop wird durchsucht“ oder „Antwort wird generiert“. |
| `agent.production_ui.confidence_labels.*` | Beleglage-/Confidence-Labels im UI. |
| `agent.production_ui.text.*` | UI-Texte für Statuskarten, Shop-Meta, Shop-Ergebnisse und Hinweise. |
| `agent.production_ui.templates.*` | Templates für Trefferzahlen, Relevanz und History-Hinweise. |
| `agent.production_ui.follow_up_actions.*` | Folgeaktionen wie „Im Shop suchen“, „Preis anzeigen“, „Nur Zubehör anzeigen“. |
| `agent.source_labels.*` | Labels für RAG, Chatverlauf, Shop, externe URL und erweiterte Shopsuche. |
| `agent.html.*` | HTML-Templates für Badges, Fehler, Think- und Info-Ausgaben. |
Wichtig für v1.6.0: Follow-up-Actions können über Felder wie `material_query_template`, `hide_when_material_query_matches_current`, `hide_when_answer_matches_any`, `target_role` oder `requires_answer_anchor` kontextsensitiv versteckt werden.
---
# 4. `config/retriex/commerce.yaml`
| Parameter / Bereich | Bewirkt |
| --- | --- |
| `retriex.commerce.enabled` | Schaltet Shop-/Commerce-Anbindung grundsätzlich ein/aus. |
| `retriex.commerce.max_shop_results` | Maximale Shopware-Trefferzahl. |
| `retriex.commerce.shop_timeout` | Timeout für Shopware-Anfragen. |
| `store_api_base_url` | Store-API-Basis-URL. |
| `sales_channel_access_key` | Store-API-Zugriffsschlüssel. |
| `retriex.commerce.search_repair.*` | Globale Steuerung, wann Repair-Suchqueries nachgeschoben werden. |
| `retriex.commerce_query.config.cleanup_profile` | Sprachbereinigung für Commerce-Queries. |
| `known_brands` | Markenbegriffe, die beim Query Parsing erhalten bleiben. |
| `phrases_to_remove` | Entfernt Bedienphrasen aus Shopqueries. |
| `filter_search_tokens` | Entfernt irrelevante Tokens aus Shopqueries. |
| `search_control_tokens` | Tokens zur Steuerung von Suchabsicht, nicht als Produktinhalt. |
| `search_token_corrections` | Korrigiert bekannte Tippfehler, z. B. Pool-/Schwimmbad-Kontext. |
| `search_token_canonical_map` | Vereinheitlicht Varianten, Plural/Singular oder Sprachvarianten. |
| `vocabulary_views.semantic_shop_search_tokens` | Bindet semantische Shop-Suchbegriffe aus `vocabulary.yaml` an. |
| `normalization.*` | Regex-Normalisierung für Commerce-Query-Text. |
| `limits.*` | Tokenlängen, Kontextfenster und maximale Shop-Suchtoken. |
| `patterns.*` | Regex-Logik für Preise, Modelle, Zubehör, History-Kontext, Messwerte. |
| `commerce_reference_resolver.conversation_product_patterns` | Findet Produkte/Modelle im Chatverlauf. |
| `commerce_reference_resolver.focus_term_patterns` | Erkennt Fokusbegriffe wie Indikator, Reagenz, Zubehör, Filter. |
| `shop_matching.vocabulary_views.*` | Bindet Geräte-/Zubehörrollen aus `vocabulary.yaml` an Shop-Matching. |
| `shop_matching.role_guard.*` | Steuert Geräte-/Zubehörfilterung bei Device- und Accessory-Queries. |
| `shop_matching.scores.*` | Gewichtung für Produktnummer, Name, Hersteller, Token-Overlap, Verfügbarkeit und Rollenbonus/-Penalty. |
| `shop_matching.patterns.*` | Normalisierung und Tokenisierung für Shop-Matching. |
| `shop_matching.price.*` | Preisformatierung und Preisnormalisierung. |
| `shop_matching.custom_fields.*` | Mapped Shopware-Custom-Fields auf Produktmetadaten. |
| `shop_matching.description.*` | Beschreibungscleanup und Längenlimit. |
| `shop_matching.highlight.*` | Highlighttexte für Verfügbarkeit und Produktnummer. |
| `shop_matching.deduplication.separator` | Key-Separator für Shop-Deduplizierung. |
---
# 5. `config/retriex/genre.yaml`
| Parameter / Bereich | Bewirkt |
| --- | --- |
| `id`, `label`, `mode`, `description` | Beschreiben das aktive Fachgenre bzw. die Domänenadaption. |
| `adaptation_surface.*` | Dokumentiert und strukturiert die fachlichen Anpassungsflächen. |
| `configuration_values.product_roles.*` | Geräte-/Zubehörrollen und Rollenvokabular. |
| `configuration_values.product_attributes.*` | Produktattribute, Messparameter und relevante fachliche Terme. |
| `configuration_values.brands_and_canonical_terms.*` | Marken, Kanonisierung und produktnahe Standardterme. |
| `configuration_values.intent_and_routing.*` | Intent-/Routing-nahe Genrewerte. |
| `configuration_values.context_resolution.*` | History-, Referenz- und Produktlistenanker. |
| `configuration_values.shop_query_runtime.*` | Query-Preservation, Stopword-Cleanup, Positive Filter, Generic Device Anchors. |
| `configuration_values.result_identity_and_answer_policy.*` | Produktidentität und Antwortpolicy. |
| `configuration_values.search_repair.*` | Repair-Begriffe, Zubehörcode-Terme und direkte Produktsuchen. |
| `configuration_values.retrieval_and_language.*` | Retrieval- und Language-Anbindung. |
| `configuration_values.shop_data_mapping.*` | Shopdaten-Mapping. |
| `configuration_values.governance_and_regression.*` | Regression- und Governance-Anker. |
Wichtig: `genre.yaml` ist in v1.6.0 eine zentrale Entlastung des PHP-Cores. Domainnahe Logik wie Produktfamilienstarts, Geräteanker oder erhaltenswerte Tokens soll hier bzw. über angebundene Vocabulary-Views gepflegt werden.
---
# 6. `config/retriex/governance.yaml`
| Parameter / Bereich | Bewirkt |
| --- | --- |
| `regression_baseline.*` | Definiert geschützte Regressionstokens und Pflichtmarker für stabile Flows. |
| `vocabulary.protected_short_model_tokens` | Schützt kurze Modell-/Fachtokens vor falscher Cleanup-Entfernung. |
| `genre_source_of_truth.*` | Steuert Genre-Source-of-Truth, Legacy-Hash-Guards und Runtime-Resolved-Paths. |
| `language.protected_stopword_terms` | Begriffe, die trotz Stopword-Logik nicht entfernt werden dürfen. |
| `language.required_cleanup_profiles` | Pflichtprofile, die in `language.yaml` existieren müssen. |
| `language.required_profile_term_defaults` | Default-Pflichtbegriffe je Profil. |
| `language.required_profile_terms` | Effektive Pflichtbegriffe für Regression Guardrails. |
| `core_pattern_audit.*` | Audit auf verdächtige hardcodierte Listen/Patterns im PHP-Core. |
---
# 7. `config/retriex/index.yaml`
| Parameter | Bewirkt |
| --- | --- |
| `chunk_size` | Standardgröße für Wissenschunks beim Indexing. |
| `chunk_overlap` | Überlappung zwischen Chunks. |
| `embedding_model` | Fallback-/Metadatenmodell für Embeddings. |
| `embedding_dimension` | Erwartete Embedding-Dimension. |
| `scoring_version` | Versionierung des Scoring-/Indexformats. |
| `index_format` | Indexformat, aktuell NDJSON. |
| `vector_backend` | Vector-Backend, aktuell FAISS. |
---
# 8. `config/retriex/intent.yaml`
| Parameter / Bereich | Bewirkt |
| --- | --- |
| `intent.commerce.strong_signals` | Starke Shop-/Produktabsicht. |
| `non_product_commerce_signals` | Kommerzsignale, die nicht automatisch Produktsuche bedeuten. |
| `advisory_signals` | Beratungssignale wie Empfehlung oder Eignung. |
| `advisory_product_selection_patterns` | Muster für Produktauswahlfragen. |
| `price_terms`, `color_terms`, `size_*` | Preis-, Farb- und Größenintents. |
| `support_diagnostic_patterns` | Trennt Support-/Diagnosefragen von Shopfragen. |
| `explicit_commerce_intent_patterns` | Explizite Commerce-Absichten. |
| `technical_factual_knowledge.*` | Erkennt technische Wissensfragen, die nicht als reine Shopfrage laufen sollen. |
| `patterns.*` | Regex für SKU, Preis, Größe, Farbe und Modellprodukte. |
| `labels.*` | Interne Intent-Signallabels. |
| `scores.*` | Gewichtung der Intent-Signale. |
| `intent.catalog.*` | Schwellenwerte für Katalog-/Listenintents. |
| `intent.light.*` | Leichte Listen-/Mengenfrage-Erkennung. |
| `intent.sales.*` | Sales-, Vergleichs-, Einwand-, Implementierungs- und ROI-Fragen. |
---
# 9. `config/retriex/language.yaml`
| Parameter / Bereich | Bewirkt |
| --- | --- |
| `words` | Legacy-/Basis-Stopwords. |
| `protected_terms` | Begriffe, die nie generisch entfernt werden sollen. |
| `normalization.ascii_transliteration` | Umlaut-/ASCII-Normalisierung. |
| `normalization.word_separator_chars` | Worttrenner-Normalisierung. |
| `normalization.dash_equivalents` | Unicode-Dash-/Bindestrich-Normalisierung. |
| `stopword_groups.de_core` | Allgemeine deutsche Stopwords. |
| `stopword_groups.conversation` | Dialog-/Bedienwörter. |
| `stopword_groups.pronouns` | Pronomen für Referenz-/Cleanup-Logik. |
| `stopword_groups.user_instruction_terms` | Bedienphrasen-Tokens wie „zeige“ oder „suche“. |
| `stopword_groups.response_style` | Präsentations-/Antwortstilwörter. |
| `stopword_groups.question_terms` | Fragewörter für Cleanup. |
| `stopword_groups.usage_terms` | generische Nutzungs-/Anwendungswörter. |
| `stopword_groups.shop_relation_noise` | Shopquery-Rauschen wie Relations-/Mess-/Satzwörter. |
| `stopword_groups.reference_fillers` | Füllwörter bei Folgefragen. |
| `phrase_groups.user_instruction` | Ganze Bedienphrasen, die aus Queries entfernt werden können. |
| `stopword_group_sets.*` | Wiederverwendbare Gruppen-Sets. |
| `phrase_group_sets.*` | Wiederverwendbare Phrasen-Sets. |
| `meta_term_groups.*` | Präsentations- und Retrieval-Referenzwörter. |
| `cleanup_profiles.commerce_query` | Cleanup-Profil für Shop-/Commerce-Queries. |
| `cleanup_profiles.rag_evidence` | Cleanup-Profil für RAG-Evidence-Prüfung. |
| `cleanup_profiles.retrieval_reference_cleanup` | Cleanup-Profil für Retrieval-Referenzauflösung. |
| `cleanup_profiles.shop_context_fallback` | Cleanup-Profil für Shop-Follow-up-Kontextfallback. |
---
# 10. `config/retriex/model.yaml`
| Parameter | Bewirkt |
| --- | --- |
| `default_name` | Standard-LLM-Modellname. |
| `default_stream` | Standard-Streamingverhalten. |
| `default_temperature` | Kreativität/Varianz der Modellantwort. |
| `default_top_k` | Sampling-Top-K. |
| `default_top_p` | Sampling-Top-P. |
| `default_repeat_penalty` | Wiederholungsstrafe. |
| `default_num_ctx` | Standard-Kontextfenster. |
| `default_retrieval_max_chunks` | Standardanzahl RAG-Chunks. |
| `default_retrieval_vector_top_k` | Standardanzahl Vector-Kandidaten. |
| `guardrail_min_num_ctx` | Untergrenze für Kontextfenster. |
| `guardrail_max_retrieval_chunks` | Obergrenze für Chunk-Anzahl. |
| `guardrail_max_vector_top_k` | Obergrenze für Vector-Kandidaten. |
| `retriex.llm.timeout_seconds` | Timeout für LLM-Aufrufe. |
| `retriex.llm.num_predict` | Vorhersage-/Output-Limit für LLM-Aufrufe. |
---
# 11. `config/retriex/prompt.yaml`
| Parameter / Bereich | Bewirkt |
| --- | --- |
| `budget.*` | Promptbudget, Outputreserve und Sicherheitsreserve. |
| `shop_results.*` | Wie Shopprodukte in den LLM-Prompt geschrieben werden. |
| `shop_results.fields.*` | Feldlabels für Produktnummer, Preis, Hersteller, Rollenkompatibilität usw. |
| `vocabulary_views.*` | Bindet technische Produkt-, Geräte- und Zubehörbegriffe aus `vocabulary.yaml`. |
| `sections.*` | Überschriften der Promptsektionen. |
| `conversation_context.intro_lines` | Regeln für Chatverlauf im Prompt. |
| `shop_search.source_line` | Quellenzeile für Shop-Suchquery. |
| `role_guard.*` | Gerät/Zubehör-Rollenprüfung im Prompt. |
| `measurement_evidence_guard.*` | Schutz gegen falsche Eignungsaussagen bei Messparametern. |
| `measurement_evidence_guard.rule_templates.*` | Konkrete Regeltexte für Evidence-Prüfung. |
| `output_priority.*` | Prioritätsregeln für Antwortaufbau. |
| `numeric_value_focus.*` | Fokussiert numerische Werte wie Grenzwerte. |
| `fallback_escalation.*` | Regeln je Confidence-/Evidence-State. |
| `parameter_parsing.*` | Trennt mehrere Parameter wie „pH und Redox“. |
| `response_format.*` | Antwortformat-Regeln mit/ohne Shopdaten. |
| `language.rules` | Sprachregeln für die Modellantwort. |
| `fact_grounding.*` | Fact-Grounding-Regeln gegen Halluzinationen. |
| `retrieved_knowledge.source_line` | Quellenzeile für Dokumentwissen. |
| `url_content.source_line` | Quellenzeile für URL-Inhalte. |
| `technical_product_model_pattern` | Regex zur Erkennung technischer Produktmodelle. |
---
# 12. `config/retriex/query_enrichment.yaml`
| Parameter | Bewirkt |
| --- | --- |
| `max_expansions` | Maximale Anzahl Query-Erweiterungen. |
| `rules.*` | Synonym-/Erweiterungsregeln für Retrieval, z. B. Wasserhärte → Resthärte. |
---
# 13. `config/retriex/retrieval.yaml`
| Parameter / Bereich | Bewirkt |
| --- | --- |
| `hard_max_chunks` | Harte Obergrenze zurückgegebener Chunks. |
| `hard_max_vectork` | Harte Obergrenze Vector-Kandidaten. |
| `hard_max_keywordk` | Harte Obergrenze Keyword-Kandidaten. |
| `vector_score_threshold` | Mindestscore für Vector-Treffer. |
| `threshold_floor`, `threshold_ceil` | Dynamischer Score-Korridor. |
| `list_bonus` | Bonus für Listen-/Tabellenrelevanz. |
| `rrf_k` | Konstante für Reciprocal Rank Fusion. |
| `keyword_topk_multiplier` | Multiplikator für Keyword-Kandidaten. |
| `keyword_score_threshold` | Mindestscore für Keyword-Treffer. |
| `keyword_rrf_weight` | Gewichtung von Keyword-Treffern in der Fusion. |
| `scoped_vector_rrf_weight` | Gewichtung gescopter Vektortreffer. |
| `scoped_keyword_rrf_weight` | Gewichtung gescopter Keywordtreffer. |
| `empty_rrf_fallback_topn` | Fallback-Anzahl, wenn Fusion leer bleibt. |
| `max_chunks_per_doc` | Maximalchunks pro Dokument. |
| `min_chunk_distance` | Mindestabstand zwischen ausgewählten Chunks. |
| `dominant_doc_*` | Bevorzugung dominanter Dokumente bei klarer Trefferlage. |
| `exact_document_max_chunks` | Maximalchunks bei exaktem Dokumentfokus. |
| `query_cleanup_profile` | YAML-Cleanup-Profil für die generische Retrieval-Query-Bereinigung. |
| `focused_product_*` | Fokussierte Produktauswahl im Retrieval. |
| `catalog_list_shortcut_patterns` | Direkte Katalog-/Listenrouten. |
| `exact_selection_*` | Präzisionslogik für Tabellen, Indikatoren, Grenzwerte und Messbereiche. |
| `exact_detail_tokens` | Detailfrage-Tokens für gezielte Retrievalauswahl. |
| `generic_exact_selection_cleanup_profile` | Cleanup-Profil für generische exakte Auswahl. |
| `generic_exact_selection_tokens` | Tokens für generische exakte Auswahlfragen. |
| `vocabulary_views.*` | Bindet zentrale Retrieval-Vocabulary-Views an. |
| `retriex.retrieval.inventory` | Inventar-/Katalogdaten für Retrieval-Logik. |
---
# 14. `config/retriex/runtime.yaml`
| Parameter / Bereich | Bewirkt |
| --- | --- |
| `retriex.root` | Projektwurzel. |
| `retriex.knowledge.root` | Knowledge-Verzeichnis. |
| `retriex.knowledge.ndjson` | Pfad zu `index.ndjson`. |
| `retriex.knowledge.index_meta` | Pfad zu `index_meta.json`. |
| `retriex.knowledge.vector_index` | Pfad zu `vector.index`. |
| `retriex.knowledge.vector_index_meta` | Pfad zu `vector.index.meta.json`. |
| `retriex.knowledge.runtime_meta` | Pfad zu `index_runtime.json`. |
| `retriex.knowledge.upload` | Upload-Verzeichnis. |
| `retriex.knowledge.tags_ndjson` | Pfad zu `tags.ndjson`. |
| `retriex.knowledge.vector_tags_index` | Pfad zu `vector_tags.index`. |
| `retriex.knowledge.vector_tags_index_meta` | Pfad zu `vector_tags.index.meta.json`. |
| `retriex.locks.dir` | Lock-Verzeichnis. |
| `retriex.tags.rebuild_lock` | Lock für Tag-Rebuild. |
| `retriex.context.config.max_visible_regular_lines` | Reguläre sichtbare History-Lines, aktuell 25. |
| `retriex.context.config.max_full_lines` | Full-Context-History-Lines, aktuell 500. |
---
# 15. `config/retriex/search_repair.yaml`
| Parameter / Bereich | Bewirkt |
| --- | --- |
| `strict_requested_accessory_code_repair` | Erzwingt präzisere Repair-Logik bei angefragtem Zubehörcode. |
| `prefer_prompt_anchored_model_for_requested_accessory_code` | Bevorzugt Modellanker aus Prompt/Verlauf bei Zubehörcode-Repair. |
| `direct_product_attribute_lookup.*` | Direkte Attributsuchen wie „Anschlusskabel pH/Redox länger 20m“. |
| `requested_accessory_code_fallback_query_templates` | Fallback-Query-Templates für Zubehörcodes. |
| `requested_accessory_code_proximity_window` | Zeichenfenster für Nähe zwischen Modell und Zubehörcode. |
| `specific_model_candidate_patterns` | Modellkandidaten-Erkennung. |
| `limits.top_product_log_limit` | Logging-/Debug-Begrenzung für Topprodukte. |
| `sanitize_trim_character_codes` | Zeichen, die aus Repair-Queries getrimmt werden. |
| `product_key_separator` | Separator für Produktkeys. |
| `scores.*` | Gewichtung der Repair-Rankinglogik. |
| `patterns.*` | Regex-Erkennung für Modelle, Zubehörcodes, Zubehör-/Bundle-Begriffe. |
---
# 16. `config/retriex/vector.yaml`
| Parameter / Bereich | Bewirkt |
| --- | --- |
| `script_dir` | Verzeichnis der Python-Vector-Skripte. |
| `python_bin` | Python-Binary. |
| `control_script` | Script zur Service-Steuerung. |
| `ingest_script` | Script für Hauptindex-Ingest. |
| `search_script` | Script für Hauptindex-Suche. |
| `ingest_tags_script` | Script für Tag-Index-Ingest. |
| `search_tags_script` | Script für Tag-Suche. |
| `host`, `port`, `service_url` | Vector-Service-Adresse. |
| `timeout` | Prozess-/Service-Timeout. |
| `search.min_score` | Mindestscore für Vector-Suche. |
| `search.max_limit` | Maximales Suchlimit. |
| `search.http_timeout` | HTTP-Timeout für Vector-Suche. |
| `tags.*` | Score-, Limit- und Timeoutwerte für Tag-Suche. |
| `tag_routing.*` | Top-K, Mindestscore, Score-Drop, Candidate-Docs und Multi-Tag-Bonus. |
---
# 17. `config/retriex/vocabulary.yaml`
| Parameter / Bereich | Bewirkt |
| --- | --- |
| `classes.device` | Zentrale Gerätebegriffe. |
| `classes.accessory` | Zentrale Zubehörbegriffe. |
| `classes.requested_accessory_code_terms` | Begriffe für angefragte Zubehör-/Indikatorcodes. |
| `classes.shop_meta_terms` | Meta-Terme für Shop-Follow-ups. |
| `classes.direct_product_attribute_stop_terms` | Stop-Terme für direkte Attributsuchen. |
| `classes.input_normalization_fuzzy_routing_terms` | Fuzzy-Routing-Terme für Eingabenormalisierung. |
| `classes.agent_*` | Agent-nahe Vokabulare für Follow-ups, Fallbacks und Query Preservation. |
| `views.shop.*` | Shop-Views für Geräte-, Zubehör-, Fokus- und Produktrollen. |
| `views.retrieval.*` | Retrieval-Views für Produkt-, Modell-, Reagenz-, Dokument- und Geräteterme. |
| `views.search_repair.*` | Search-Repair-Views für direkte Produktsuchen und Zubehörcodes. |
| `views.prompt.*` | Prompt-Views für technische Produkt- und Zubehörbegriffe. |
| `views.agent.*` | Agent-Views für Runtime-, Follow-up- und Fallbacklogik. |
| `maps.prompt.*` | Mapping für Prompt-Evidence-Regeln. |
| `maps.agent.*` | Mapping für Agent-Evidence- und Query-Logik. |
| `maps.shop.*` | Mapping für Shop-Fokusvarianten und Rollen. |
---
# 18. `config/packages/security.yaml`
Diese Datei liegt nicht unter `config/retriex`, ist aber für v1.6.0 zentral.
| Bereich | Bewirkt |
| --- | --- |
| `providers.app_user_provider` | Gemeinsamer User-Provider über `App\Entity\User`. |
| `firewalls.admin` | Admin-Firewall für `^/admin`, inklusive Login, Logout, Remember-Me, User-Checker und Access-Denied-Handler. |
| `firewalls.chat` | Chat-Firewall für `/`, `/chat`, `/ask-jobs`, `/ask-sse`, `/history`, `/chat-messages/frontend`. |
| `firewalls.main` | Öffentliche/statische Restfläche. |
| `role_hierarchy` | Rollenvererbung für Super Admin, Knowledge Admin, Editor, Admin Area und Chat User. |
| `access_control` | Konkrete serverseitige Route-zu-Rolle-Matrix. |
| `access_denied_handler` | Einheitliche 403-Seite für falsche Bereichs-/Rollenwechsel. |
| `user_checker` | Sperrt deaktivierte Benutzer beim Login. |
Wichtig: `ROLE_USER` ist nur technische Basisrolle. Sie darf nicht als Bereichsberechtigung für Chat oder Admin verwendet werden.
---
# 19. Wichtigste Stellschrauben für Antwortqualität
| Datei | Bereich | Wirkung |
| --- | --- | --- |
| `prompt.yaml` | `fact_grounding.*` | Verhindert unbelegte Behauptungen. |
| `prompt.yaml` | `measurement_evidence_guard.*` | Schützt Messparameter-/Eignungsaussagen. |
| `prompt.yaml` | `output_priority.*` | Priorisiert Antwortaufbau. |
| `prompt.yaml` | `numeric_value_focus.*` | Hält Grenzwerte und exakte Zahlen im Fokus. |
| `model.yaml` | `default_num_ctx`, `num_predict` | Kontext- und Antwortbudget. |
| `retrieval.yaml` | `hard_max_chunks`, `threshold_*`, `focused_product_*` | Menge und Qualität des RAG-Kontexts. |
| `language.yaml` | `cleanup_profiles.*` | Qualität der Query- und Evidence-Bereinigung. |
| `vocabulary.yaml` | `views.prompt.*`, `views.retrieval.*` | Fachbegriffe und sichere Matching-Begriffe. |
---
# 20. Wichtigste Stellschrauben für RAG-Suchergebnisse
| Datei | Bereich | Wirkung |
| --- | --- | --- |
| `retrieval.yaml` | `vector_score_threshold`, `threshold_floor`, `threshold_ceil` | Relevanzschwelle für Treffer. |
| `retrieval.yaml` | `rrf_k`, `keyword_rrf_weight`, `scoped_*_weight` | Fusion von Keyword-, globaler und gescopter Suche. |
| `retrieval.yaml` | `max_chunks_per_doc`, `min_chunk_distance` | Diversität und Redundanz der Chunks. |
| `retrieval.yaml` | `exact_selection_*` | Präzision bei Tabellen-/Indikator-/Grenzwertfragen. |
| `query_enrichment.yaml` | `rules.*` | Synonyme und Query-Erweiterungen. |
| `vector.yaml` | `search.min_score`, `tag_routing.*` | Vector- und Tagrouting-Schwellen. |
| `index.yaml` | `chunk_size`, `chunk_overlap` | Granularität des Index. |
| `language.yaml` | `cleanup_profiles.retrieval_reference_cleanup` | Referenzbereinigung bei Folgefragen. |
---
# 21. Shop-Suche und Shop-Ranking
| Datei | Bereich | Wirkung |
| --- | --- | --- |
| `agent.yaml` | `shop_prompt.*` | Erzeugt kurze Shop-Suchqueries. |
| `agent.yaml` | `shop_runtime.query_cleanup.*` | Entfernt Noise und erhält wichtige aktuelle Tokens. |
| `agent.yaml` | `shop_runtime.context_resolution.*` | Löst referenzielle Shop-Folgefragen über Verlauf/RAG. |
| `agent.yaml` | `shop_runtime.result_identity.*` | Filtert auf primäre Produktidentität. |
| `commerce.yaml` | `search_token_corrections` | Tippfehlerkorrekturen für Shopqueries. |
| `commerce.yaml` | `search_token_canonical_map` | Token-Kanonisierung. |
| `commerce.yaml` | `shop_matching.scores.*` | Ranking für Shopprodukte. |
| `commerce.yaml` | `shop_matching.role_guard.*` | Hauptgerät-/Zubehör-Abgrenzung. |
| `search_repair.yaml` | `requested_accessory_code_*` | Exakte Indikator-/Reagenz-/Zubehörcode-Reparatur. |
| `genre.yaml` | `shop_query_runtime.*` | Domänenspezifische Shopquery-Preservation und Generic Device Anchors. |
| `vocabulary.yaml` | `views.shop.*`, `views.search_repair.*` | Geräte-/Zubehör-/Repair-Vokabular. |
---
# 22. Intent- und Routing-Optimierung
| Datei | Bereich | Wirkung |
| --- | --- | --- |
| `intent.yaml` | `intent.commerce.*` | Commerce-Erkennung. |
| `intent.yaml` | `intent.catalog.*` | Katalog-/Listenrouten. |
| `intent.yaml` | `intent.light.*` | leichte Listen-/Mengenfrage-Erkennung. |
| `intent.yaml` | `intent.sales.*` | Sales-, ROI-, Vergleichs- und Einwandfragen. |
| `agent.yaml` | `input_normalization.*` | Tippfehler- und Routing-Normalisierung. |
| `agent.yaml` | `follow_up_context.*` | Folgefrage-Erkennung und Kontextmaterialisierung. |
| `genre.yaml` | `intent_and_routing.*` | Genre-nahe Routingkonfiguration. |
---
# 23. Sprachbereinigung und Vocabulary
| Datei | Bereich | Wirkung |
| --- | --- | --- |
| `language.yaml` | `protected_terms` | Schützt kritische Kurztokens wie Modell-/Mess-/Code-Terme. |
| `language.yaml` | `stopword_groups.shop_relation_noise` | Entfernt Relationstokens wie Mess-/Satzrauschen aus Shopqueries. |
| `language.yaml` | `cleanup_profiles.commerce_query` | Hauptprofil für Shopquery-Cleanup. |
| `language.yaml` | `cleanup_profiles.rag_evidence` | Hauptprofil für Evidence-Cleanup. |
| `vocabulary.yaml` | `classes.*` | Wiederverwendbare Fachwortklassen. |
| `vocabulary.yaml` | `views.*` | Kontextbezogene Views auf Fachwortklassen. |
| `vocabulary.yaml` | `maps.*` | Mapping-Tabellen für Varianten, Synonyme und Fokusbegriffe. |
| `genre.yaml` | `configuration_values.*.vocabulary_views` | Bindet Genre-Konfiguration an zentrale Vocabulary-Views. |
---
# 24. UI-, Chat- und Follow-up-Tuning
| Datei | Bereich | Wirkung |
| --- | --- | --- |
| `chat-messages.yaml` | `frontend.ui.*` | Texte für Chatoberfläche. |
| `chat-messages.yaml` | `frontend.stream.*` | Retry-/Stream-Hinweise. |
| `chat-messages.yaml` | `agent.production_ui.stage_labels.*` | Statuskarten-Phasen. |
| `chat-messages.yaml` | `agent.production_ui.confidence_labels.*` | Beleglage-Labels. |
| `chat-messages.yaml` | `agent.production_ui.follow_up_actions.*` | Folgeaktions-Chips und Sichtbarkeitsregeln. |
| `agent.yaml` | `production_ui.shop_results.max_cards` | Maximal sichtbare Shopkarten. |
| `templates/chat/index.html.twig` | Struktur | Icons und Text-Spans für Chatbuttons. |
| `public/assets/js/base.js` | Verhalten | Frontend-Streaming, UI-Karten und Message-Mapping. |
---
# 25. Security-, Rollen- und Admin-Tuning
| Datei | Bereich | Wirkung |
| --- | --- | --- |
| `config/packages/security.yaml` | `role_hierarchy` | Rollenvererbung. |
| `config/packages/security.yaml` | `access_control` | Serverzugriff je Route. |
| `src/Security/ApplicationRoles.php` | `assignableChoices()` | Rollen, die UI/Console zuweisen dürfen. |
| `src/Security/ActiveUserChecker.php` | Loginprüfung | Blockiert deaktivierte Benutzer. |
| `src/Security/ActiveUserSessionSubscriber.php` | Sessionprüfung | Meldet deaktivierte eingeloggte Benutzer ab. |
| `src/Security/AccessDeniedHandler.php` | 403 Handling | Rendert Bereichs-/Rollenfehler. |
| `templates/admin/base.html.twig` | Navigation | Blendet Adminbereiche rollengerecht aus. |
| `templates/admin/user/*` | Userverwaltung | Benutzerliste, Anlage, Bearbeitung. |
---
# 26. Sekundär relevant, aber nicht primär zum fachlichen Tuning
| Datei | Bereich | Einschätzung |
| --- | --- | --- |
| `governance.yaml` | `regression_baseline.*` | Schutz gegen Regressionen; nur bewusst ändern. |
| `governance.yaml` | `core_pattern_audit.*` | Developer-/Audit-Regeln, keine direkte Suchqualität. |
| `runtime.yaml` | Pfade zu Knowledge/Index/Locks | Infrastruktur, nicht fachliche Qualität. |
| `vector.yaml` | Host, Port, Script-Pfade, Timeouts | Betrieb/Performance, nicht fachliche Qualität. |
| `commerce.yaml` | API-URL, Access-Key, Timeout | Verfügbarkeit/Performance der Shopdaten. |
| `chat-messages.yaml` | reine UI-Texte | UX-relevant, fachlich nur indirekt. |
---
# 27. Empfohlene Tuning-Reihenfolge
Für bessere RAG-Suchergebnisse zuerst:
1. `retrieval.yaml`
2. `query_enrichment.yaml`
3. `vector.yaml`
4. `language.yaml`
5. `vocabulary.yaml`
Für bessere Shop-Suche zuerst:
1. `agent.yaml``shop_prompt.*`, `shop_runtime.*`
2. `commerce.yaml``commerce_query.*`, `shop_matching.*`
3. `search_repair.yaml`
4. `genre.yaml`
5. `vocabulary.yaml`
Für bessere Antwortqualität zuerst:
1. `prompt.yaml``fact_grounding`, `measurement_evidence_guard`, `output_priority`, `numeric_value_focus`, `response_format`
2. `model.yaml`
3. `agent.yaml``rag_evidence_guard`, `no_llm_fallback`
4. `chat-messages.yaml` für sichtbare Hinweise und Folgeaktionen
Für Rollen, Login und Adminzugriff zuerst:
1. `config/packages/security.yaml`
2. `src/Security/ApplicationRoles.php`
3. Controller-Guards unter `src/Controller/Admin/`
4. Admin-Templates unter `templates/admin/`
---
# 28. Pflichtchecks nach Konfigurationsänderungen
```bash
php bin/console cache:clear
php bin/console lint:yaml config/packages/security.yaml config/retriex
php bin/console lint:twig templates
php bin/console mto:agent:config:validate
php bin/console mto:agent:regression:test
php bin/console mto:agent:config:audit-source --details
php bin/console mto:agent:config:audit-patterns --details
```
Bei Änderungen an Shopquery-, Follow-up- oder Vocabulary-Regeln zusätzlich manuell prüfen:
- exakte Indikator-/Zubehörcodes, z. B. `300` ohne `300 S`
- Mehrprodukt-Follow-ups mit Einzelqueries
- Preis-Folgeaktionen nach mehreren sichtbaren Produkten
- schwache referenzielle Shopfragen mit History-Anker
- direkte Produktnamen wie `chlor select sensor`
- Modellkürzel wie `testomat lab cl`
- Tippfehlerkorrektur mit erhaltenem Anwendungskontext