from core_shared import ServiceSettings class KnowledgeServiceSettings(ServiceSettings): service_name: str = "knowledge-service" service_port: int = 8012 default_chunk_size: int = 800 default_chunk_overlap: int = 120 embedding_dimensions: int = 32 embedding_model: str = "local-hash-v1" embedding_provider: str = "local" embedding_base_url: str | None = None embedding_api_key: str | None = None embedding_timeout_seconds: float = 30.0 embedding_fallback_to_local: bool = True retrieval_keyword_weight: float = 0.55 retrieval_vector_weight: float = 0.30 retrieval_rerank_weight: float = 0.15 retrieval_rerank_enabled: bool = True retrieval_candidate_multiplier: int = 5 object_storage_backend: str = "minio" object_storage_bucket: str = "agent-platform-knowledge" object_storage_endpoint_url: str = "http://127.0.0.1:9000" object_storage_access_key: str = "minioadmin" object_storage_secret_key: str = "minioadmin" object_storage_region: str = "us-east-1" object_storage_path_style: bool = True async_indexing_enabled: bool = True worker_poll_interval_seconds: float = 1.0 worker_lease_seconds: int = 300 worker_stale_indexing_seconds: int = 600 worker_max_idle_cycles: int | None = None auto_worker_enabled: bool = True auto_worker_stop_timeout_seconds: float = 5.0