#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ SarcoAdvisor 配置文件 用户可以在这里调整系统的精度和性能设置 """ # 🚀 DiCE精度配置 class DiCEConfig: """DiCE反事实解释器配置""" # 🎯 精度模式选择 # "ultra_precision": 极致精度模式 - 使用完整数据集,无时间限制,追求最高质量 # "high_precision": 高精度模式 - 使用大部分数据,适度时间限制 # "balanced": 平衡模式 - 平衡精度和速度 # "fast": 快速模式 - 优先速度,基本精度保证 PRECISION_MODE = "ultra_precision" # 🚀 极致精度模式配置 - 追求最高质量,完全不考虑时间 ULTRA_PRECISION = { "use_full_dataset": True, # 使用完整数据集 "combine_train_test": True, # 合并训练集和测试集 "max_samples": None, # 不限制样本数量 "timeout_seconds": None, # 无任何超时限制 "genetic_population_size": 2000, # 极大遗传算法种群大小 "genetic_generations": 1000, # 极多遗传算法代数 "max_counterfactuals": 500, # 极大反事实数量 "diversity_weight": 15.0, # 极高多样性权重 "proximity_weight": 0.01, # 极低接近度权重 "quality_threshold": 0.9, # 极高质量阈值 "enable_advanced_scoring": True, # 启用高级评分系统 "enable_exhaustive_search": True, # 启用穷尽搜索 "max_iterations": None, # 无迭代次数限制 } # 🔥 高精度模式配置 HIGH_PRECISION = { "use_full_dataset": True, "combine_train_test": False, "max_samples": 5000, "timeout_seconds": 300, # 5分钟超时 "genetic_population_size": 500, "genetic_generations": 200, "max_counterfactuals": 100, "diversity_weight": 3.0, "proximity_weight": 0.2, "quality_threshold": 0.7, "enable_advanced_scoring": True, } # ⚖️ 平衡模式配置 BALANCED = { "use_full_dataset": False, "combine_train_test": False, "max_samples": 2000, "timeout_seconds": 120, # 2分钟超时 "genetic_population_size": 200, "genetic_generations": 100, "max_counterfactuals": 50, "diversity_weight": 2.0, "proximity_weight": 0.3, "quality_threshold": 0.6, "enable_advanced_scoring": False, } # ⚡ 快速模式配置 FAST = { "use_full_dataset": False, "combine_train_test": False, "max_samples": 1000, "timeout_seconds": 60, # 1分钟超时 "genetic_population_size": 100, "genetic_generations": 50, "max_counterfactuals": 20, "diversity_weight": 1.5, "proximity_weight": 0.5, "quality_threshold": 0.5, "enable_advanced_scoring": False, } @classmethod def get_current_config(cls): """获取当前配置""" config_map = { "ultra_precision": cls.ULTRA_PRECISION, "high_precision": cls.HIGH_PRECISION, "balanced": cls.BALANCED, "fast": cls.FAST } return config_map.get(cls.PRECISION_MODE, cls.ULTRA_PRECISION) @classmethod def set_precision_mode(cls, mode: str): """设置精度模式""" valid_modes = ["ultra_precision", "high_precision", "balanced", "fast"] if mode in valid_modes: cls.PRECISION_MODE = mode print(f"✅ DiCE精度模式已设置为: {mode}") else: print(f"❌ 无效的精度模式: {mode}") print(f"有效选项: {valid_modes}") # 🎯 系统配置 class SystemConfig: """系统级配置""" # 日志级别 LOG_LEVEL = "INFO" # API配置 - 极致精度模式 API_TIMEOUT = None # 完全无API超时限制 MAX_CONCURRENT_REQUESTS = 1 # 限制并发,确保每个请求获得最大资源 # 模型配置 ENABLE_MODEL_CACHING = True PRELOAD_ALL_MODELS = True ENABLE_MODEL_OPTIMIZATION = False # 禁用优化,保持原始精度 # 内存配置 - 无任何限制 MAX_MEMORY_USAGE_GB = None # 无内存限制 ENABLE_MEMORY_OPTIMIZATION = False # 禁用内存优化 # 性能监控 ENABLE_PERFORMANCE_LOGGING = True LOG_DETAILED_TIMING = True LOG_MEMORY_USAGE = True # 记录内存使用情况 # 🏥 医疗建议配置 class MedicalConfig: """医疗建议相关配置""" # 建议生成配置 MAX_RECOMMENDATIONS_PER_TYPE = 10 # 每种风险类型最多生成10个建议 ENABLE_DETAILED_EXPLANATIONS = True INCLUDE_CONFIDENCE_SCORES = True # 🏃‍♂️ 运动优先配置 EXERCISE_PRIORITY_MODE = True # 启用运动优先模式 EXERCISE_RECOMMENDATION_RATIO = 0.8 # 80%的建议应该是运动相关 # 建议类型权重 (运动优先) RECOMMENDATION_WEIGHTS = { "exercise": 10.0, # 运动建议最高权重 "activity": 8.0, # 活动建议高权重 "sedentary": 7.0, # 久坐改善高权重 "diversity": 6.0, # 运动多样性中高权重 "weight": 3.0, # 体重管理较低权重 "lifestyle": 2.0 # 生活方式最低权重 } # 运动建议详细程度 EXERCISE_DETAIL_LEVEL = "ultra_detailed" # 超详细运动建议 INCLUDE_PROGRESSIVE_PLANS = True # 包含渐进式计划 INCLUDE_SAFETY_REMINDERS = True # 包含安全提醒 INCLUDE_TOOL_RECOMMENDATIONS = True # 包含工具推荐 # 风险阈值配置 - 标准化风险评估阈值 RISK_THRESHOLDS = { "sarcoI": { "screening": 0.15, # 筛查模型高风险阈值 (低风险<0.12, 中风险0.121-0.149, 高风险≥0.15) "screening_medium": 0.121, # 筛查模型中风险阈值 "screening_low": 0.12, # 筛查模型低风险上限 "advisory": 0.36, # 建议模型高风险阈值 (低风险<0.31, 中风险0.311-0.359, 高风险≥0.36) "advisory_medium": 0.311, # 建议模型中风险阈值 "advisory_low": 0.31 # 建议模型低风险上限 }, "sarcoII": { "screening": 0.09, # 筛查模型高风险阈值 (低风险<0.06, 中风险0.061-0.089, 高风险≥0.09) "screening_medium": 0.061, # 筛查模型中风险阈值 "screening_low": 0.06, # 筛查模型低风险上限 "advisory": 0.52, # 建议模型高风险阈值 (低风险<0.47, 中风险0.47-0.519, 高风险≥0.52) "advisory_medium": 0.47, # 建议模型中风险阈值 "advisory_low": 0.47 # 建议模型低风险上限 } } # 🌐 Web界面配置 class WebConfig: """Web界面配置""" # 界面提示 SHOW_PRECISION_MODE_INFO = True SHOW_PROCESSING_TIME = True SHOW_QUALITY_SCORES = True # 用户体验 ENABLE_PROGRESS_INDICATORS = True SHOW_DETAILED_RESULTS = True # 多语言支持 DEFAULT_LANGUAGE = "zh" SUPPORTED_LANGUAGES = ["zh", "en"] # 🚀 快速配置函数 def set_ultra_precision_mode(): """一键设置极致精度模式""" DiCEConfig.set_precision_mode("ultra_precision") SystemConfig.API_TIMEOUT = None SystemConfig.MAX_MEMORY_USAGE_GB = None print("🚀 已启用极致精度模式 - 追求最高质量,无时间和内存限制") def set_balanced_mode(): """一键设置平衡模式""" DiCEConfig.set_precision_mode("balanced") SystemConfig.API_TIMEOUT = 300 SystemConfig.MAX_MEMORY_USAGE_GB = 8 print("⚖️ 已启用平衡模式 - 平衡精度和性能") def set_fast_mode(): """一键设置快速模式""" DiCEConfig.set_precision_mode("fast") SystemConfig.API_TIMEOUT = 60 SystemConfig.MAX_MEMORY_USAGE_GB = 4 print("⚡ 已启用快速模式 - 优先响应速度") # 默认启用极致精度模式 if __name__ == "__main__": set_ultra_precision_mode() print("\n当前配置:") print(f"DiCE精度模式: {DiCEConfig.PRECISION_MODE}") print(f"当前配置详情: {DiCEConfig.get_current_config()}")