修改API返回值
This commit is contained in:
@@ -6,7 +6,7 @@ from typing import List, Dict, Any, Optional
|
|||||||
|
|
||||||
from fastapi import APIRouter, HTTPException
|
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.utils.api_deps import get_earthquake_model, get_prediction_semaphore
|
||||||
from app.repositories.dbn_repository import dbn_repository
|
from app.repositories.dbn_repository import dbn_repository
|
||||||
from app.config.paths import get_logger
|
from app.config.paths import get_logger
|
||||||
@@ -121,4 +121,4 @@ async def predict_earthquake(req: EarthquakePredictRequest):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"保存推理结果失败: {e}", exc_info=True)
|
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))
|
||||||
|
|||||||
+2
-2
@@ -7,7 +7,7 @@ from typing import List, Dict, Any, Optional
|
|||||||
|
|
||||||
from fastapi import APIRouter, HTTPException
|
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.utils.api_deps import get_rainfall_model, get_prediction_semaphore
|
||||||
from app.repositories.dbn_repository import dbn_repository
|
from app.repositories.dbn_repository import dbn_repository
|
||||||
from app.core.rainfall_manager import rainfall_manager
|
from app.core.rainfall_manager import rainfall_manager
|
||||||
@@ -156,4 +156,4 @@ async def predict_rainfall(req: RainfallPredictRequest):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"保存推理结果失败: {e}", exc_info=True)
|
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))
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
API 请求/响应数据模型
|
API 请求/响应数据模型
|
||||||
"""
|
"""
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import List, Optional
|
from typing import List, Optional, Dict
|
||||||
from pydantic import BaseModel, Field
|
from pydantic import BaseModel, Field
|
||||||
|
|
||||||
|
|
||||||
@@ -47,19 +47,17 @@ class EarthquakePredictRequest(BaseModel):
|
|||||||
# 通用响应
|
# 通用响应
|
||||||
# ============================================================
|
# ============================================================
|
||||||
|
|
||||||
class PredictionItem(BaseModel):
|
class PredictData(BaseModel):
|
||||||
"""单个点位预测结果"""
|
"""预测数据"""
|
||||||
id: int = Field(..., description="点位ID")
|
record_id: Optional[int] = Field(None, description="推理结果记录ID")
|
||||||
type: str = Field(..., description="类型: 隐患点 / 风险点")
|
list: Dict[str, float] = Field(default_factory=dict, description="预测结果列表")
|
||||||
probability: float = Field(..., description="最大灾害概率")
|
|
||||||
level: str = Field(..., description="灾害等级: 低/中/较高/高")
|
|
||||||
|
|
||||||
|
|
||||||
class PredictResponse(BaseModel):
|
class PredictResponse(BaseModel):
|
||||||
"""预测响应"""
|
"""预测响应"""
|
||||||
code: int = Field(200, description="状态码")
|
code: int = Field(200, description="状态码")
|
||||||
message: str = Field("success", description="提示信息")
|
message: str = Field("success", description="提示信息")
|
||||||
data: Optional[int] = Field(None, description="推理结果记录ID")
|
data: Optional[PredictData] = Field(None, description="预测数据")
|
||||||
|
|
||||||
|
|
||||||
class UpdateMonitoringTimeRequest(BaseModel):
|
class UpdateMonitoringTimeRequest(BaseModel):
|
||||||
|
|||||||
Reference in New Issue
Block a user