fix model toggle

This commit is contained in:
Dobromir Popov
2025-07-29 00:52:58 +03:00
parent b44216ae1e
commit f4ac504963
2 changed files with 46 additions and 17 deletions

View File

@ -1328,7 +1328,9 @@ class CleanTradingDashboard:
)
def update_dqn_inference_toggle(value):
if self.orchestrator:
self.orchestrator.set_model_toggle_state("dqn", inference_enabled=value)
enabled = bool(value and len(value) > 0) # Convert list to boolean
self.orchestrator.set_model_toggle_state("dqn", inference_enabled=enabled)
logger.info(f"DQN inference toggle: {enabled}")
return value
@self.app.callback(
@ -1338,7 +1340,9 @@ class CleanTradingDashboard:
)
def update_dqn_training_toggle(value):
if self.orchestrator:
self.orchestrator.set_model_toggle_state("dqn", training_enabled=value)
enabled = bool(value and len(value) > 0) # Convert list to boolean
self.orchestrator.set_model_toggle_state("dqn", training_enabled=enabled)
logger.info(f"DQN training toggle: {enabled}")
return value
@self.app.callback(
@ -1348,7 +1352,9 @@ class CleanTradingDashboard:
)
def update_cnn_inference_toggle(value):
if self.orchestrator:
self.orchestrator.set_model_toggle_state("cnn", inference_enabled=value)
enabled = bool(value and len(value) > 0) # Convert list to boolean
self.orchestrator.set_model_toggle_state("cnn", inference_enabled=enabled)
logger.info(f"CNN inference toggle: {enabled}")
return value
@self.app.callback(
@ -1358,7 +1364,9 @@ class CleanTradingDashboard:
)
def update_cnn_training_toggle(value):
if self.orchestrator:
self.orchestrator.set_model_toggle_state("cnn", training_enabled=value)
enabled = bool(value and len(value) > 0) # Convert list to boolean
self.orchestrator.set_model_toggle_state("cnn", training_enabled=enabled)
logger.info(f"CNN training toggle: {enabled}")
return value
@self.app.callback(
@ -1368,7 +1376,9 @@ class CleanTradingDashboard:
)
def update_cob_rl_inference_toggle(value):
if self.orchestrator:
self.orchestrator.set_model_toggle_state("cob_rl", inference_enabled=value)
enabled = bool(value and len(value) > 0) # Convert list to boolean
self.orchestrator.set_model_toggle_state("cob_rl", inference_enabled=enabled)
logger.info(f"COB RL inference toggle: {enabled}")
return value
@self.app.callback(
@ -1378,7 +1388,9 @@ class CleanTradingDashboard:
)
def update_cob_rl_training_toggle(value):
if self.orchestrator:
self.orchestrator.set_model_toggle_state("cob_rl", training_enabled=value)
enabled = bool(value and len(value) > 0) # Convert list to boolean
self.orchestrator.set_model_toggle_state("cob_rl", training_enabled=enabled)
logger.info(f"COB RL training toggle: {enabled}")
return value
@self.app.callback(
@ -1388,7 +1400,9 @@ class CleanTradingDashboard:
)
def update_decision_fusion_inference_toggle(value):
if self.orchestrator:
self.orchestrator.set_model_toggle_state("decision_fusion", inference_enabled=value)
enabled = bool(value and len(value) > 0) # Convert list to boolean
self.orchestrator.set_model_toggle_state("decision_fusion", inference_enabled=enabled)
logger.info(f"Decision Fusion inference toggle: {enabled}")
return value
@self.app.callback(
@ -1398,7 +1412,9 @@ class CleanTradingDashboard:
)
def update_decision_fusion_training_toggle(value):
if self.orchestrator:
self.orchestrator.set_model_toggle_state("decision_fusion", training_enabled=value)
enabled = bool(value and len(value) > 0) # Convert list to boolean
self.orchestrator.set_model_toggle_state("decision_fusion", training_enabled=enabled)
logger.info(f"Decision Fusion training toggle: {enabled}")
return value
"""Update cold start training mode"""
logger.debug(f"Cold start callback triggered with value: {switch_value}")

View File

@ -783,16 +783,29 @@ class DashboardComponentManager:
html.Span(f" [{checkpoint_status}]", className=f"small {'text-success' if checkpoint_status == 'LOADED' else 'text-warning'} ms-1")
], style={"flex": "1"}),
# Activation toggle (if easy to implement)
# Inference and Training toggles
html.Div([
html.Div([
html.Label("Inf", className="text-muted small me-1", style={"font-size": "10px"}),
dcc.Checklist(
id=f"toggle-{model_name}",
options=[{"label": "", "value": "active"}],
value=["active"] if is_active else [],
className="form-check-input",
style={"transform": "scale(0.8)"}
id=f"{model_name}-inference-toggle",
options=[{"label": "", "value": True}],
value=[True] if model_info.get('inference_enabled', True) else [],
className="form-check-input me-2",
style={"transform": "scale(0.7)"}
)
], className="form-check form-switch")
], className="d-flex align-items-center me-2"),
html.Div([
html.Label("Trn", className="text-muted small me-1", style={"font-size": "10px"}),
dcc.Checklist(
id=f"{model_name}-training-toggle",
options=[{"label": "", "value": True}],
value=[True] if model_info.get('training_enabled', True) else [],
className="form-check-input",
style={"transform": "scale(0.7)"}
)
], className="d-flex align-items-center")
], className="d-flex")
], className="d-flex align-items-center mb-1"),
# Model metrics