diff --git a/app/api/earthquake.py b/app/api/earthquake.py index 4625375..dc4f879 100644 --- a/app/api/earthquake.py +++ b/app/api/earthquake.py @@ -6,7 +6,7 @@ from typing import List, Dict, Any, Optional from fastapi import APIRouter, HTTPException -from app.schemas.api_schemas import EarthquakePredictRequest, PredictResponse, PredictionItem +from app.schemas.api_schemas import EarthquakePredictRequest, PredictResponse, PredictData from app.utils.api_deps import get_earthquake_model, get_prediction_semaphore from app.repositories.dbn_repository import dbn_repository from app.config.paths import get_logger @@ -121,4 +121,4 @@ async def predict_earthquake(req: EarthquakePredictRequest): except Exception as e: logger.error(f"保存推理结果失败: {e}", exc_info=True) - return PredictResponse(code=200, message="success", data=record_id) + return PredictResponse(code=200, message="success", data=PredictData(record_id=record_id, list=result_map)) diff --git a/app/api/rainfall.py b/app/api/rainfall.py index 0414a9a..f94fbcb 100644 --- a/app/api/rainfall.py +++ b/app/api/rainfall.py @@ -7,7 +7,7 @@ from typing import List, Dict, Any, Optional from fastapi import APIRouter, HTTPException -from app.schemas.api_schemas import RainfallPredictRequest, PredictResponse, PredictionItem, UpdateMonitoringTimeRequest +from app.schemas.api_schemas import RainfallPredictRequest, PredictResponse, PredictData, UpdateMonitoringTimeRequest from app.utils.api_deps import get_rainfall_model, get_prediction_semaphore from app.repositories.dbn_repository import dbn_repository from app.core.rainfall_manager import rainfall_manager @@ -156,4 +156,4 @@ async def predict_rainfall(req: RainfallPredictRequest): except Exception as e: logger.error(f"保存推理结果失败: {e}", exc_info=True) - return PredictResponse(code=200, message="success", data=record_id) + return PredictResponse(code=200, message="success", data=PredictData(record_id=record_id, list=result_map)) diff --git a/app/schemas/api_schemas.py b/app/schemas/api_schemas.py index ad9feac..4ea9e87 100644 --- a/app/schemas/api_schemas.py +++ b/app/schemas/api_schemas.py @@ -2,7 +2,7 @@ API 请求/响应数据模型 """ from datetime import datetime -from typing import List, Optional +from typing import List, Optional, Dict from pydantic import BaseModel, Field @@ -47,19 +47,17 @@ class EarthquakePredictRequest(BaseModel): # 通用响应 # ============================================================ -class PredictionItem(BaseModel): - """单个点位预测结果""" - id: int = Field(..., description="点位ID") - type: str = Field(..., description="类型: 隐患点 / 风险点") - probability: float = Field(..., description="最大灾害概率") - level: str = Field(..., description="灾害等级: 低/中/较高/高") +class PredictData(BaseModel): + """预测数据""" + record_id: Optional[int] = Field(None, description="推理结果记录ID") + list: Dict[str, float] = Field(default_factory=dict, description="预测结果列表") class PredictResponse(BaseModel): """预测响应""" code: int = Field(200, description="状态码") message: str = Field("success", description="提示信息") - data: Optional[int] = Field(None, description="推理结果记录ID") + data: Optional[PredictData] = Field(None, description="预测数据") class UpdateMonitoringTimeRequest(BaseModel):