improve orchestrator

This commit is contained in:
Dobromir Popov
2025-07-04 02:26:38 +03:00
parent d0cf04536c
commit 0c4c682498
3 changed files with 28 additions and 230 deletions

View File

@ -302,10 +302,14 @@ class TradingOrchestrator:
# CRITICAL: Register models with the model registry
logger.info("Registering models with model registry...")
# Import model interfaces
from models import CNNModelInterface, RLAgentInterface, ModelInterface
# Register RL Agent
if self.rl_agent:
try:
self.register_model(self.rl_agent, weight=0.3)
rl_interface = RLAgentInterface(self.rl_agent, name="dqn_agent")
self.register_model(rl_interface, weight=0.3)
logger.info("RL Agent registered successfully")
except Exception as e:
logger.error(f"Failed to register RL Agent: {e}")
@ -313,15 +317,35 @@ class TradingOrchestrator:
# Register CNN Model
if self.cnn_model:
try:
self.register_model(self.cnn_model, weight=0.7)
cnn_interface = CNNModelInterface(self.cnn_model, name="enhanced_cnn")
self.register_model(cnn_interface, weight=0.7)
logger.info("CNN Model registered successfully")
except Exception as e:
logger.error(f"Failed to register CNN Model: {e}")
# Register Extrema Trainer
# Register Extrema Trainer (as generic ModelInterface)
if self.extrema_trainer:
try:
self.register_model(self.extrema_trainer, weight=0.2)
# Create a simple wrapper for extrema trainer
class ExtremaTrainerInterface(ModelInterface):
def __init__(self, model, name: str):
super().__init__(name)
self.model = model
def predict(self, data):
try:
if hasattr(self.model, 'predict'):
return self.model.predict(data)
return None
except Exception as e:
logger.error(f"Error in extrema trainer prediction: {e}")
return None
def get_memory_usage(self) -> float:
return 30.0 # MB
extrema_interface = ExtremaTrainerInterface(self.extrema_trainer, name="extrema_trainer")
self.register_model(extrema_interface, weight=0.2)
logger.info("Extrema Trainer registered successfully")
except Exception as e:
logger.error(f"Failed to register Extrema Trainer: {e}")