1+ import logging
2+ import uuid
3+ from datetime import datetime
4+ from typing import Any , Dict , List , Optional
5+
6+ import numpy as np
17from fastapi import APIRouter , HTTPException
28from pydantic import BaseModel
3- from typing import Dict , Any
4- import logging
9+
10+ from src .service .constants import INPUT_SUFFIX , METADATA_SUFFIX , OUTPUT_SUFFIX
11+ from src .service .data .modelmesh_parser import ModelMeshPayloadParser
12+ from src .service .data .storage import get_storage_interface
13+ from src .service .utils .upload import process_upload_request
514
615router = APIRouter ()
716logger = logging .getLogger (__name__ )
817
918
10- class ModelInferJointPayload (BaseModel ):
19+ class UploadPayload (BaseModel ):
1120 model_name : str
12- data_tag : str = None
21+ data_tag : Optional [ str ] = None
1322 is_ground_truth : bool = False
1423 request : Dict [str , Any ]
15- response : Dict [str , Any ]
24+ response : Optional [ Dict [str , Any ]] = None
1625
1726
1827@router .post ("/data/upload" )
19- async def upload_data (payload : ModelInferJointPayload ) :
20- """Upload a batch of model data to TrustyAI ."""
28+ async def upload (payload : UploadPayload ) -> Dict [ str , str ] :
29+ """Upload model data - regular or ground truth ."""
2130 try :
22- logger .info (f"Received data upload for model: { payload .model_name } " )
23- # TODO: Implement
24- return {"status" : "success" , "message" : "Data uploaded successfully" }
31+ logger .info (f"Received upload request for model: { payload .model_name } " )
32+ result = await process_upload_request (payload )
33+ logger .info (f"Upload completed for model: { payload .model_name } " )
34+ return result
35+ except HTTPException :
36+ raise
2537 except Exception as e :
26- logger .error (f"Error uploading data : { str (e )} " )
27- raise HTTPException (status_code = 500 , detail = f"Error uploading data : { str (e )} " )
38+ logger .error (f"Unexpected error in upload endpoint for model { payload . model_name } : { str (e )} " , exc_info = True )
39+ raise HTTPException (500 , f"Internal server error : { str (e )} " )
0 commit comments