Sarco-Monitor / config.py
Ning311's picture
Update config.py
62a2bfa verified
#!/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()}")