dieya_risk_prediction_backend/app/api/v1/risk_predictions.py
2026-09-04 10:20:40 +08:00

29 lines
1.0 KiB
Python

"""Risk prediction endpoints."""
from typing import Annotated
from fastapi import APIRouter, Depends
from app.api.dependencies import require_permission
from app.models.entities import UserAccount
from app.schemas.common import ApiResponse
from app.schemas.risk_prediction import ModelInfo, RiskAssessmentRequest, RiskAssessmentResult
from app.services.risk_prediction import RiskPredictionService
router = APIRouter(prefix="/risk-predictions", tags=["risk-predictions"])
@router.get("/model-info", response_model=ApiResponse[ModelInfo])
async def model_info(
_: Annotated[UserAccount, Depends(require_permission("risk.assess"))],
) -> ApiResponse[ModelInfo]:
return ApiResponse(data=RiskPredictionService.model_info())
@router.post("/preview", response_model=ApiResponse[RiskAssessmentResult])
async def preview_risk(
request: RiskAssessmentRequest,
_: Annotated[UserAccount, Depends(require_permission("risk.assess", operate=True))],
) -> ApiResponse[RiskAssessmentResult]:
return ApiResponse(data=RiskPredictionService.preview(request))