from __future__ import annotations import logging from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from app.config import settings from app.db.connection import ping as db_ping logging.basicConfig(level=settings.log_level) logger = logging.getLogger(__name__) app = FastAPI(title="stock_chart_site", version="0.0.1") app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"], ) def _resolved_device() -> str: if settings.model_device != "auto": return settings.model_device try: import torch # noqa: WPS433 return "cuda" if torch.cuda.is_available() else "cpu" except Exception: # noqa: BLE001 return "cpu" @app.get("/health") def health() -> dict[str, object]: return { "ok": True, "device": _resolved_device(), "version": "0.0.1", } @app.get("/health/db") def health_db() -> dict[str, object]: return {"ok": True, **db_ping()}