Spaces:
Running
Running
#!/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, | |
} | |
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) | |
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()}") | |