first update to external config values
This commit is contained in:
8
config/retriex/agent.yaml
Normal file
8
config/retriex/agent.yaml
Normal file
@@ -0,0 +1,8 @@
|
||||
# Agent orchestration limits and user-visible source/progress labels.
|
||||
# Values mirror the current 1.4.2 defaults.
|
||||
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'
|
||||
12
config/retriex/commerce.yaml
Normal file
12
config/retriex/commerce.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
# Commerce / Shopware Store API configuration.
|
||||
# The existing Commerce and Shopware services stay unchanged; these values only centralize wiring.
|
||||
parameters:
|
||||
retriex.commerce.enabled: true
|
||||
retriex.commerce.max_shop_results: '%env(SHOPWARE_STORE_API_MAX_RESULT)%'
|
||||
retriex.commerce.shop_timeout: 5
|
||||
retriex.commerce.store_api_base_url: '%env(SHOPWARE_STORE_API_BASE_URL)%'
|
||||
retriex.commerce.sales_channel_access_key: '%env(SHOPWARE_SALES_CHANNEL_ACCESS_KEY)%'
|
||||
|
||||
retriex.commerce.search_repair.enabled: true
|
||||
retriex.commerce.search_repair.max_queries: 3
|
||||
retriex.commerce.search_repair.min_primary_results_without_repair: 2
|
||||
10
config/retriex/index.yaml
Normal file
10
config/retriex/index.yaml
Normal file
@@ -0,0 +1,10 @@
|
||||
# Fallback ingest/index configuration.
|
||||
# DB based IngestProfile remains authoritative when an active profile exists.
|
||||
parameters:
|
||||
retriex.index.chunk_size: 250
|
||||
retriex.index.chunk_overlap: 50
|
||||
retriex.index.embedding_model: 'intfloat/multilingual-e5-base'
|
||||
retriex.index.embedding_dimension: 768
|
||||
retriex.index.scoring_version: 1
|
||||
retriex.index.index_format: 'ndjson'
|
||||
retriex.index.vector_backend: 'faiss'
|
||||
17
config/retriex/model.yaml
Normal file
17
config/retriex/model.yaml
Normal file
@@ -0,0 +1,17 @@
|
||||
# Default model generation values used only when no DB value/user input overrides them.
|
||||
parameters:
|
||||
retriex.model.default_name: 'mto-model'
|
||||
retriex.model.default_stream: false
|
||||
retriex.model.default_temperature: 0.1
|
||||
retriex.model.default_top_k: 20
|
||||
retriex.model.default_top_p: 0.8
|
||||
retriex.model.default_repeat_penalty: 1.05
|
||||
retriex.model.default_num_ctx: 4096
|
||||
retriex.model.default_retrieval_max_chunks: 25
|
||||
retriex.model.default_retrieval_vector_top_k: 25
|
||||
|
||||
retriex.model.guardrail_min_num_ctx: 512
|
||||
retriex.model.guardrail_max_retrieval_chunks: 200
|
||||
retriex.model.guardrail_max_vector_top_k: 200
|
||||
|
||||
retriex.llm.timeout_seconds: 600
|
||||
18
config/retriex/prompt.yaml
Normal file
18
config/retriex/prompt.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
# Prompt budget and prompt rendering limits.
|
||||
# Existing prompt wording/rules remain in PromptBuilderConfig for this minimal-invasive round.
|
||||
parameters:
|
||||
retriex.prompt.config:
|
||||
budget:
|
||||
chars_per_token: 4
|
||||
history_padding_chars: 400
|
||||
output_reserve_ratio: 0.25
|
||||
output_reserve_min_tokens: 768
|
||||
output_reserve_max_tokens: 6000
|
||||
safety_reserve_ratio: 0.05
|
||||
safety_reserve_min_tokens: 256
|
||||
safety_reserve_max_tokens: 1024
|
||||
min_prompt_budget_tokens: 1024
|
||||
shop_results:
|
||||
max_results_in_prompt: 24
|
||||
detailed_max_count: 5
|
||||
technical_product_keyword_match_threshold: 2
|
||||
28
config/retriex/retrieval.yaml
Normal file
28
config/retriex/retrieval.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
# Current 1.4.2 retrieval constants documented as configuration inventory.
|
||||
# In this round these values are exposed by config dump/validation; the retriever logic remains unchanged.
|
||||
parameters:
|
||||
retriex.retrieval.inventory:
|
||||
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
|
||||
19
config/retriex/runtime.yaml
Normal file
19
config/retriex/runtime.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
# RetrieX runtime paths.
|
||||
# Keep these values customer/project specific and keep service wiring generic.
|
||||
parameters:
|
||||
retriex.root: '%kernel.project_dir%'
|
||||
|
||||
retriex.knowledge.root: '%retriex.root%/var/knowledge'
|
||||
retriex.knowledge.ndjson: '%retriex.knowledge.root%/index.ndjson'
|
||||
retriex.knowledge.index_meta: '%retriex.knowledge.root%/index_meta.json'
|
||||
retriex.knowledge.vector_index: '%retriex.knowledge.root%/vector.index'
|
||||
retriex.knowledge.vector_index_meta: '%retriex.knowledge.root%/vector.index.meta.json'
|
||||
retriex.knowledge.runtime_meta: '%retriex.knowledge.root%/index_runtime.json'
|
||||
retriex.knowledge.upload: '%retriex.knowledge.root%/uploads'
|
||||
|
||||
retriex.knowledge.tags_ndjson: '%retriex.knowledge.root%/tags.ndjson'
|
||||
retriex.knowledge.vector_tags_index: '%retriex.knowledge.root%/vector_tags.index'
|
||||
retriex.knowledge.vector_tags_index_meta: '%retriex.knowledge.root%/vector_tags.index.meta.json'
|
||||
|
||||
retriex.locks.dir: '%retriex.knowledge.root%/locks'
|
||||
retriex.tags.rebuild_lock: '%retriex.locks.dir%/tag_rebuild.lock'
|
||||
31
config/retriex/vector.yaml
Normal file
31
config/retriex/vector.yaml
Normal file
@@ -0,0 +1,31 @@
|
||||
# Vector runtime configuration shared by Symfony and vector control commands.
|
||||
parameters:
|
||||
retriex.vector.script_dir: '%retriex.root%/python/vector'
|
||||
retriex.vector.python_bin: '%retriex.root%/.venv/bin/python3'
|
||||
retriex.vector.control_script: '%retriex.vector.script_dir%/vector_control.py'
|
||||
retriex.vector.ingest_script: '%retriex.vector.script_dir%/vector_ingest.py'
|
||||
retriex.vector.search_script: '%retriex.vector.script_dir%/vector_search.py'
|
||||
retriex.vector.ingest_tags_script: '%retriex.vector.script_dir%/vector_ingest_tags.py'
|
||||
retriex.vector.search_tags_script: '%retriex.vector.script_dir%/vector_search_tags.py'
|
||||
|
||||
retriex.vector.host: '0.0.0.0'
|
||||
retriex.vector.port: 8090
|
||||
retriex.vector.service_url: 'http://127.0.0.1:%retriex.vector.port%'
|
||||
retriex.vector.timeout: 600
|
||||
|
||||
retriex.vector.search.min_score: 0.30
|
||||
retriex.vector.search.max_limit: 200
|
||||
retriex.vector.search.http_timeout: 10
|
||||
|
||||
retriex.vector.tags.min_score: 0.72
|
||||
retriex.vector.tags.default_limit: 8
|
||||
retriex.vector.tags.max_limit: 50
|
||||
retriex.vector.tags.http_timeout: 10
|
||||
|
||||
retriex.vector.tag_routing.default_topk: 8
|
||||
retriex.vector.tag_routing.min_best_score: 0.72
|
||||
retriex.vector.tag_routing.max_score_drop_from_best: 0.08
|
||||
retriex.vector.tag_routing.max_routing_tags: 5
|
||||
retriex.vector.tag_routing.max_candidate_docs: 80
|
||||
retriex.vector.tag_routing.multi_tag_bonus_per_extra_tag: 0.05
|
||||
retriex.vector.tag_routing.max_multi_tag_bonus: 0.15
|
||||
Reference in New Issue
Block a user