修改API返回值

This commit is contained in:
wzy-warehouse
2026-06-14 16:00:33 +08:00
parent d4eee07890
commit 028b7989ef
3 changed files with 10 additions and 12 deletions
+2 -2
View File
@@ -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
View File
@@ -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))
+6 -8
View File
@@ -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):