ar-grid-tutor-mobile-ar-dig.../api/app.py

29 lines
790 B
Python

from fastapi import FastAPI
from pydantic import BaseModel
from typing import Dict, Any
from ar_grid_tutor_mobile_ar_digital_twin_for.core import TelemetrySample, TwinEngine
app = FastAPI(title="AR Grid Tutor DT Twin API")
_engine = TwinEngine()
class TelemetryPayload(BaseModel):
asset_id: str
timestamp: float
metrics: Dict[str, float]
@app.post("/telemetry")
def ingest_telemetry(payload: TelemetryPayload):
sample = TelemetrySample(asset_id=payload.asset_id, timestamp=payload.timestamp, metrics=payload.metrics)
result = _engine.reconcile(sample)
return {"status": "ok", "result": result}
@app.get("/health")
def health():
# Minimal health indicator for orchestration
return {"status": "healthy", "assets_tracked": list(_engine.models.keys())}