仪评指标联分析模块

This commit is contained in:
BBIT-Kai
2025-09-24 13:59:00 +08:00
parent 0ab82b00d6
commit d2775f60a7
28 changed files with 1106 additions and 181 deletions
+30
View File
@@ -0,0 +1,30 @@
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 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,
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)
+51
View File
@@ -0,0 +1,51 @@
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, 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))