Improve AI logic
This commit is contained in:
@@ -127,6 +127,36 @@ class TrainingServiceClient(BaseServiceClient):
|
||||
params["start_date"] = start_date
|
||||
if end_date:
|
||||
params["end_date"] = end_date
|
||||
|
||||
|
||||
result = await self.get(f"training/models/{model_id}/predictions", tenant_id=tenant_id, params=params)
|
||||
return result.get("predictions", []) if result else None
|
||||
return result.get("predictions", []) if result else None
|
||||
|
||||
async def trigger_retrain(
|
||||
self,
|
||||
tenant_id: str,
|
||||
inventory_product_id: str,
|
||||
reason: str = 'manual',
|
||||
metadata: Optional[Dict[str, Any]] = None
|
||||
) -> Optional[Dict[str, Any]]:
|
||||
"""
|
||||
Trigger model retraining for a specific product.
|
||||
Used by orchestrator when forecast accuracy degrades.
|
||||
|
||||
Args:
|
||||
tenant_id: Tenant UUID
|
||||
inventory_product_id: Product UUID to retrain model for
|
||||
reason: Reason for retraining (accuracy_degradation, manual, scheduled, etc.)
|
||||
metadata: Optional metadata (e.g., previous_mape, validation_date, etc.)
|
||||
|
||||
Returns:
|
||||
Training job details or None if failed
|
||||
"""
|
||||
data = {
|
||||
"inventory_product_id": inventory_product_id,
|
||||
"reason": reason,
|
||||
"metadata": metadata or {},
|
||||
"include_weather": True,
|
||||
"include_traffic": False,
|
||||
"min_data_points": 30
|
||||
}
|
||||
return await self.post("training/models/retrain", data=data, tenant_id=tenant_id)
|
||||
Reference in New Issue
Block a user