model toggles
This commit is contained in:
@ -1662,20 +1662,42 @@ class CleanTradingDashboard:
|
||||
if self.orchestrator and hasattr(self.orchestrator, 'set_model_toggle_state'):
|
||||
# Map dashboard names to orchestrator names
|
||||
model_mapping = {
|
||||
'dqn_agent': 'dqn_agent',
|
||||
'enhanced_cnn': 'enhanced_cnn',
|
||||
'cob_rl_model': 'cob_rl_model',
|
||||
'dqn_agent': 'dqn',
|
||||
'enhanced_cnn': 'cnn',
|
||||
'cob_rl_model': 'cob_rl',
|
||||
'extrema_trainer': 'extrema_trainer',
|
||||
'transformer': 'transformer',
|
||||
'decision_fusion': 'decision_fusion'
|
||||
}
|
||||
|
||||
orchestrator_name = model_mapping.get(model_name, model_name)
|
||||
self.orchestrator.set_model_toggle_state(
|
||||
orchestrator_name,
|
||||
toggle_type + '_enabled',
|
||||
is_enabled
|
||||
)
|
||||
# Support three toggles: inference_enabled, training_enabled, routing_enabled
|
||||
if toggle_type == 'inference':
|
||||
self.orchestrator.set_model_toggle_state(
|
||||
orchestrator_name,
|
||||
inference_enabled=is_enabled
|
||||
)
|
||||
elif toggle_type == 'training':
|
||||
self.orchestrator.set_model_toggle_state(
|
||||
orchestrator_name,
|
||||
training_enabled=is_enabled
|
||||
)
|
||||
elif toggle_type == 'routing':
|
||||
# New: whether the model output is routed into decision making
|
||||
if hasattr(self.orchestrator, 'set_model_routing_state'):
|
||||
self.orchestrator.set_model_routing_state(orchestrator_name, routing_enabled=is_enabled)
|
||||
else:
|
||||
# Fallback: store in orchestrator.model_toggle_states under 'routing_enabled'
|
||||
if not hasattr(self.orchestrator, 'model_toggle_states'):
|
||||
self.orchestrator.model_toggle_states = {}
|
||||
if orchestrator_name not in self.orchestrator.model_toggle_states:
|
||||
self.orchestrator.model_toggle_states[orchestrator_name] = {}
|
||||
self.orchestrator.model_toggle_states[orchestrator_name]['routing_enabled'] = is_enabled
|
||||
if hasattr(self.orchestrator, '_save_ui_state'):
|
||||
try:
|
||||
self.orchestrator._save_ui_state()
|
||||
except Exception:
|
||||
pass
|
||||
logger.info(f"Updated {orchestrator_name} {toggle_type}_enabled = {is_enabled}")
|
||||
|
||||
# Return all current values (no change needed)
|
||||
|
@ -215,6 +215,7 @@ class ModelsTrainingPanel:
|
||||
if isinstance(toggle_state, dict):
|
||||
model_data['training_enabled'] = toggle_state.get('training_enabled', True)
|
||||
model_data['inference_enabled'] = toggle_state.get('inference_enabled', True)
|
||||
model_data['routing_enabled'] = toggle_state.get('routing_enabled', True)
|
||||
|
||||
# Get model statistics
|
||||
if hasattr(self.orchestrator, 'get_model_statistics'):
|
||||
@ -584,6 +585,16 @@ class ModelsTrainingPanel:
|
||||
className="form-check-input",
|
||||
style={"transform": "scale(0.7)"}
|
||||
)
|
||||
], className="d-flex align-items-center me-2"),
|
||||
html.Div([
|
||||
html.Label("Route", className="text-muted small me-1", style={"font-size": "10px"}),
|
||||
dcc.Checklist(
|
||||
id={'type': 'model-toggle', 'model': model_name, 'toggle_type': 'routing'},
|
||||
options=[{"label": "", "value": True}],
|
||||
value=[True] if model_data.get('routing_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-2"),
|
||||
|
Reference in New Issue
Block a user