import base64 from fastapi import APIRouter from config.app import F8_SERVER_USER_ID from models.BaseResponse import BaseResponse from models.F8ImageRequest import F8ImageRequest from models.F8ImageRequestV2 import F8ImageRequestV2 from service.vision import process_ticket_image from utils import MyUtils f8Router = APIRouter() @f8Router.post("/createTicketImageTask") async def cocoonTicket(data: F8ImageRequest): input_data = data.image if "," in input_data: input_data = input_data.split(",")[1] try: img_bytes = base64.b64decode(input_data) json_data = await MyUtils.async_task( process_ticket_image, 1, True, img_bytes, f"{data.title}.jpg", data.title, F8_SERVER_USER_ID, ) return BaseResponse(data=json_data) except Exception as e: return BaseResponse(status=False, message=f"解析失败: {str(e)}", data=None) @f8Router.post("/createTicketImageTaskV2") async def cocoonTicket(data: F8ImageRequestV2): input_data = data.image if "," in input_data: input_data = input_data.split(",")[1] try: img_bytes = base64.b64decode(input_data) json_data = await MyUtils.async_task( process_ticket_image, 2, data.needBarcode, img_bytes, f"{data.title}.jpg", data.title, F8_SERVER_USER_ID, ) return BaseResponse(data=json_data) except Exception as e: return BaseResponse(status=False, message=f"解析失败: {str(e)}", data=None)