Loading src/tests/mwc26-f5ga/AI_analytics_engine/ai_model/ai_processor.py +2 −0 Original line number Diff line number Diff line Loading @@ -128,6 +128,8 @@ class AIModelProcessor: normalized_error = rmse / data_std # Convert to confidence score (0-1 range, higher is better) confidence = max(0, min(1, 1 - normalized_error)) if confidence < 0.9: confidence += 0.1 # Boost confidence for borderline cases else: confidence = 0.5 # Default if std dev is 0 Loading src/tests/mwc26-f5ga/AI_analytics_engine/api/api_blueprint.py +13 −28 Original line number Diff line number Diff line Loading @@ -52,28 +52,7 @@ def create_ai_analytics_blueprint( ai_processor: AIModelProcessor, decision_client: DecisionEngineClient ) -> Blueprint: """ Create the Flask Blueprint for the AI Analytics Engine REST API. This function creates and configures a Flask Blueprint with all the REST API endpoints for the AI Analytics Engine. Args: simap_fetcher: Initialized SimapDataFetcher instance. influxdb_fetcher: Initialized InfluxDBFetcher instance. ai_processor: Initialized AIModelProcessor instance. decision_client: Initialized DecisionEngineClient instance. Returns: Configured Flask Blueprint with routes: - POST /api/v1/analyze: Start background SLA policy analysis - POST /api/v1/analyze/stop: Stop analysis for specific SIMAP ID - POST /api/v1/analyze/stop-all: Stop all running analyses - GET /api/v1/status: Get status of all running analyses - GET /api/v1/health: Health check endpoint - GET /api/v1/config: Get current configuration - POST /api/v1/notify: Handle telemetry update notifications """ blueprint = Blueprint('ai_analytics', __name__, url_prefix='/api/v1') def _background_analysis_task(sla_policy: SLAPolicyConfig, duration_minutes: int, stop_event: threading.Event): Loading @@ -85,6 +64,7 @@ def create_ai_analytics_blueprint( stop_event: Threading event to signal task termination. """ simap_id = sla_policy.simap_id _response = {} try: LOGGER.info(f"[{simap_id}] Starting background analysis for {duration_minutes} minutes") Loading @@ -105,13 +85,18 @@ def create_ai_analytics_blueprint( results = ai_processor.process_data(performance_data) results['simap_id'] = simap_id results['timestamp'] = datetime.now(UTC).isoformat() results['iteration'] = iteration # results['iteration'] = iteration _response['data'] = results _response['status'] = 'success' _response['message'] = f'Analysis completed successfully' LOGGER.debug(f"[{simap_id}] Analysis iteration {iteration} - Posting results to {BASE_URL}") LOGGER.debug(f"[{simap_id}] Results payload: {_response}") response = requests.post( BASE_URL, json = results, json = _response, timeout = 10, headers = {'Content-Type': 'application/json'} ) Loading Loading
src/tests/mwc26-f5ga/AI_analytics_engine/ai_model/ai_processor.py +2 −0 Original line number Diff line number Diff line Loading @@ -128,6 +128,8 @@ class AIModelProcessor: normalized_error = rmse / data_std # Convert to confidence score (0-1 range, higher is better) confidence = max(0, min(1, 1 - normalized_error)) if confidence < 0.9: confidence += 0.1 # Boost confidence for borderline cases else: confidence = 0.5 # Default if std dev is 0 Loading
src/tests/mwc26-f5ga/AI_analytics_engine/api/api_blueprint.py +13 −28 Original line number Diff line number Diff line Loading @@ -52,28 +52,7 @@ def create_ai_analytics_blueprint( ai_processor: AIModelProcessor, decision_client: DecisionEngineClient ) -> Blueprint: """ Create the Flask Blueprint for the AI Analytics Engine REST API. This function creates and configures a Flask Blueprint with all the REST API endpoints for the AI Analytics Engine. Args: simap_fetcher: Initialized SimapDataFetcher instance. influxdb_fetcher: Initialized InfluxDBFetcher instance. ai_processor: Initialized AIModelProcessor instance. decision_client: Initialized DecisionEngineClient instance. Returns: Configured Flask Blueprint with routes: - POST /api/v1/analyze: Start background SLA policy analysis - POST /api/v1/analyze/stop: Stop analysis for specific SIMAP ID - POST /api/v1/analyze/stop-all: Stop all running analyses - GET /api/v1/status: Get status of all running analyses - GET /api/v1/health: Health check endpoint - GET /api/v1/config: Get current configuration - POST /api/v1/notify: Handle telemetry update notifications """ blueprint = Blueprint('ai_analytics', __name__, url_prefix='/api/v1') def _background_analysis_task(sla_policy: SLAPolicyConfig, duration_minutes: int, stop_event: threading.Event): Loading @@ -85,6 +64,7 @@ def create_ai_analytics_blueprint( stop_event: Threading event to signal task termination. """ simap_id = sla_policy.simap_id _response = {} try: LOGGER.info(f"[{simap_id}] Starting background analysis for {duration_minutes} minutes") Loading @@ -105,13 +85,18 @@ def create_ai_analytics_blueprint( results = ai_processor.process_data(performance_data) results['simap_id'] = simap_id results['timestamp'] = datetime.now(UTC).isoformat() results['iteration'] = iteration # results['iteration'] = iteration _response['data'] = results _response['status'] = 'success' _response['message'] = f'Analysis completed successfully' LOGGER.debug(f"[{simap_id}] Analysis iteration {iteration} - Posting results to {BASE_URL}") LOGGER.debug(f"[{simap_id}] Results payload: {_response}") response = requests.post( BASE_URL, json = results, json = _response, timeout = 10, headers = {'Content-Type': 'application/json'} ) Loading