# Active retrieval configuration.
# Defaults are intentionally identical to the frozen 1.4.2 constants.
parameters:
  retriex.retrieval.config:
    hard_max_chunks: 6
    hard_max_vectork: 18
    hard_max_keywordk: 36
    vector_score_threshold: 0.83
    threshold_floor: 0.75
    threshold_ceil: 0.90
    list_bonus: 1.35
    rrf_k: 50
    keyword_topk_multiplier: 2.0
    keyword_score_threshold: 0.35
    keyword_rrf_weight: 1.15
    scoped_vector_rrf_weight: 1.20
    scoped_keyword_rrf_weight: 1.30
    empty_rrf_fallback_topn: 1
    max_chunks_per_doc: 2
    min_chunk_distance: 2
    dominant_doc_window: 6
    dominant_doc_min_hits: 3
    dominant_doc_max_chunks: 4
    exact_document_max_chunks: 6
    focused_product_window: 8
    focused_product_min_score: 10.0
    focused_product_min_gap: 4.0
    focused_product_max_chunks: 4
    catalog_list_shortcut_patterns:
      - '/\balle\b/u'
      - '/\bliste\b/u'
      - '/\bauflistung\b/u'
      - '/\buebersicht\b/u'
      - '/\bübersicht\b/u'
      - '/\bsortiment\b/u'
      - '/\bwelche\b.*\b(gibt|verfügbar|verfuegbar|existieren)\b/u'
      - '/\bzeige\b.*\b(produkte|geraete|geräte|modelle|artikel)\b/u'
      - '/\bwas\b.*\b(gibt es|verfügbar|verfuegbar)\b/u'
    exact_selection_token_variant_prefixes:
      indikator:
        - indikator
        - indikatortyp
      grenzwert:
        - grenzwert
      messbereich:
        - messbereich
      testomat:
        - testomat
    exact_selection_token_variant_suffixes:
      - typen
      - innen
      - enen
      - ern
      - en
      - er
      - es
      - e
      - s
      - n
    exact_selection_indicator_question_tokens:
      - indikator
      - indikatortyp
      - reagenz
      - reagens
    exact_selection_indicator_question_phrases:
      - mit welchem
      - womit
    exact_selection_indicator_table_heading_patterns:
      - '/verf(?:ü|ue)gbare\s+indikatortypen|indikatortypen|indikatorvarianten/iu'
    exact_selection_indicator_table_header_patterns:
      - '/\|\s*(?:typ|indikator)\s*\|\s*(?:grenzwert|messbereich|bereich)/iu'
    exact_selection_indicator_table_row_patterns:
      - '/\|\s*[A-Z]{0,4}\s*\d{2,4}\s*[A-Z]?\s*\|\s*\d/iu'
    exact_selection_indicator_table_required_primary_terms:
      - indikator
    exact_selection_indicator_table_required_context_terms:
      - grenzwert
      - messbereich
      - bereich
    exact_detail_tokens:
      - indikator
      - indikatoren
      - indikatortyp
      - indikatortypen
      - reagenz
      - reagens
      - grenzwert
      - messbereich
      - bereich
      - wasserhaerte
      - wasserhärte
      - resthaerte
      - resthärte
      - haerte
      - härte
      - aufloesung
      - auflösung
      - schnittstelle
      - relais
      - fehlercode
      - code
      - wert
      - werte
    generic_exact_selection_cleanup_profile: retrieval_reference_cleanup
    generic_exact_selection_tokens:
      - keine
      - welche
    vocabulary_views:
      generic_product_tokens: retrieval.generic_product_tokens
      important_short_model_tokens: retrieval.important_short_model_tokens
      family_descriptor_tokens: retrieval.family_descriptor_tokens
      looks_like_reagent_tokens: retrieval.looks_like_reagent_tokens
      looks_like_safety_docs: retrieval.looks_like_safety_docs
      looks_like_reagent_words: retrieval.looks_like_reagent_words
      looks_like_document_words: retrieval.looks_like_document_words
      looks_like_safety_words: retrieval.looks_like_safety_words
      looks_like_device_words: retrieval.looks_like_device_words

    # Vocabulary-backed retrieval token lists live in config/retriex/vocabulary.yaml.
    # The old per-key entries may still be added here to override a specific view.

  # Backwards-compatible name for existing config diagnostics.
  retriex.retrieval.inventory: '%retriex.retrieval.config%'
