improve orchestrator
This commit is contained in:
@ -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}")
|
||||
|
Reference in New Issue
Block a user