from uuid import UUID from fastapi import APIRouter, File, Form, Depends import db.postgres as pg from config.security import get_user_id_from_token from llm.ticketLLM import * from models.BaseResponse import BaseResponse from models.ImageRequest import ImageRequest from service.vision import process_ticket_image from utils import MyUtils visionRouter = APIRouter() # 测试接口,已经可以实现 @visionRouter.post("/cocoonTicket") def cocoonTicket(data: ImageRequest, user_id: UUID = Depends(get_user_id_from_token)): if not user_id: return {"error": "userId is required"} try: json = get_ticket_response(data.image) return BaseResponse(data=json) except: return BaseResponse(status=False, message="unknown error", data=None) @visionRouter.post("/createTicketImageTask") async def createTicketImageTask( file: UploadFile = File(...), projectName: str = Form(...), user_id: UUID = Depends(get_user_id_from_token), ): if not user_id: return {"error": "userId is required"} try: contents = await file.read() json_data = await MyUtils.async_task( process_ticket_image, 1, True, contents, file.filename, projectName, user_id ) return BaseResponse(data=json_data) except Exception as e: print(str(e)) return BaseResponse(status=False, message=f"解析失败: {str(e)}", data=None) @visionRouter.get("/getTicketImageList") def cocoonTicket(user_id: UUID = Depends(get_user_id_from_token)): if not user_id: return {"error": "userId is required"} return BaseResponse(data=pg.get_ticket_image_list(user_id))