diff --git a/api/alarm.py b/api/alarm.py index eeb362a..25cea74 100644 --- a/api/alarm.py +++ b/api/alarm.py @@ -1,7 +1,8 @@ from datetime import datetime from typing import List, Optional -from fastapi import APIRouter, Depends, HTTPException, Query +from fastapi import APIRouter, Depends, HTTPException, Query, Body +from pydantic import BaseModel from sqlalchemy.orm import Session from db.crud import ( @@ -16,6 +17,12 @@ from inference.pipeline import get_pipeline router = APIRouter(prefix="/api/alarms", tags=["告警管理"]) +class AlarmUpdateRequest(BaseModel): + llm_checked: Optional[bool] = None + llm_result: Optional[str] = None + processed: Optional[bool] = None + + @router.get("", response_model=List[dict]) def list_alarms( camera_id: Optional[int] = None, @@ -72,12 +79,10 @@ def get_alarm(alarm_id: int, db: Session = Depends(get_db)): @router.put("/{alarm_id}") def update_alarm_status( alarm_id: int, - llm_checked: Optional[bool] = None, - llm_result: Optional[str] = None, - processed: Optional[bool] = None, + request: AlarmUpdateRequest = Body(...), db: Session = Depends(get_db), ): - alarm = update_alarm(db, alarm_id, llm_checked=llm_checked, llm_result=llm_result, processed=processed) + alarm = update_alarm(db, alarm_id, llm_checked=request.llm_checked, llm_result=request.llm_result, processed=request.processed) if not alarm: raise HTTPException(status_code=404, detail="告警不存在") return {"message": "更新成功"}