import json import logging import time from fastapi import APIRouter, HTTPException from app.schemas.design import DesignModel, DesignProgressModel from app.schemas.response_template import ResponseModel from app.service.design.service import generate from app.service.design.utils.redis_utils import Redis router = APIRouter() logger = logging.getLogger() @router.post("/design") def design(request_data: DesignModel): try: logger.info(f"design request item is : @@@@@@:{request_data}") data = generate(request_data=request_data) logger.info(f"design response @@@@@@:{json.dumps(data, indent=4)}") except Exception as e: logger.warning(f"design Run Exception @@@@@@:{e}") raise HTTPException(status_code=404, detail=str(e)) return ResponseModel(data=data) @router.post('/get_progress') def get_progress(request_data: DesignProgressModel): try: logger.info(f"get_progress request item is : @@@@@@:{request_data}") process_id = request_data.process_id r = Redis() data = r.read(key=process_id) if data is None: raise ValueError("The progress must be numbers ") logging.info(f"get_progress process_id @@@@@@ : {process_id} , progress : {data}") except Exception as e: logger.warning(f"get_progress Run Exception @@@@@@:{e}") raise HTTPException(status_code=404, detail=str(e)) return ResponseModel(data=data)