Source code for eclypse.builders.application.anomaly_detection.rest_services.feature
"""REST endpoints for feature extraction."""
from eclypse.remote.communication import rest
from eclypse.remote.service import RESTService
from eclypse.utils import format_log_kv
[docs]
class FeatureService(RESTService):
"""Extract simple features from telemetry."""
[docs]
@rest.endpoint("/features", "POST")
def features(self, window_id: int, samples: list[float], **_):
"""Compute compact statistics for a telemetry window."""
self.logger.info(
"Received request | " + format_log_kv(window_id=window_id, samples=samples)
)
max_sample = max(samples)
mean_sample = sum(samples) / len(samples)
return 200, {
"window_id": window_id,
"features": {"max": max_sample, "mean": mean_sample},
}