32 lines
1.2 KiB
Python
32 lines
1.2 KiB
Python
from fastapi import APIRouter, Depends
|
|
from sqlalchemy.orm import Session
|
|
|
|
from backend.app.api.deps import require_permissions, require_roles
|
|
from backend.app.db import get_db_session
|
|
from backend.app.schemas.ai import CorrectRecognizeResultRequest, RecognizeImageRequest
|
|
from backend.app.schemas.common import success_payload
|
|
from backend.app.services.ai_service import ai_service
|
|
|
|
router = APIRouter(prefix="/api/ai", tags=["ai"])
|
|
|
|
|
|
@router.post("/recognize")
|
|
def recognize_image(
|
|
payload: RecognizeImageRequest,
|
|
session: Session = Depends(get_db_session),
|
|
current_user: dict = Depends(require_roles("manager", "admin")),
|
|
_permission_user: dict = Depends(require_permissions("ai:recognize")),
|
|
) -> dict:
|
|
return success_payload(ai_service.recognize_image(payload.model_dump(), session))
|
|
|
|
|
|
@router.post("/recognize/{log_id}/correct")
|
|
def correct_recognize_result(
|
|
log_id: int,
|
|
payload: CorrectRecognizeResultRequest,
|
|
session: Session = Depends(get_db_session),
|
|
current_user: dict = Depends(require_roles("manager", "admin")),
|
|
_permission_user: dict = Depends(require_permissions("ai:correct")),
|
|
) -> dict:
|
|
return success_payload(ai_service.correct_result(log_id, payload.model_dump(), session))
|