feat 更新响应模板

fix
This commit is contained in:
zhouchengrong
2024-06-13 14:31:14 +08:00
parent 6034a3539b
commit b012b91613
11 changed files with 120 additions and 100 deletions

View File

@@ -1,8 +1,9 @@
import json
import logging
from fastapi import APIRouter
from fastapi import APIRouter, HTTPException
from app.schemas.attribute_retrieve import *
from app.schemas.response_template import ResponseModel
from app.service.attribute.config import const
from app.service.attribute.service_att_recognition import AttributeRecognition
from app.service.attribute.service_category_recognition import CategoryRecognition
@@ -12,34 +13,28 @@ logger = logging.getLogger()
# 属性识别
@router.post("/attribute_recognition")
@router.post("/attribute_recognition", response_model=ResponseModel)
def attribute_recognition(request_item: list[AttributeRecognitionModel]):
try:
logger.info(f"attribute_recognition request item is : @@@@@@:{request_item}")
service = AttributeRecognition(const=const, request_data=request_item)
data = service.get_result()
code = 200
message = "OK!"
logger.info(f"attribute_recognition response @@@@@@:{json.dumps(data, indent=4)}")
except Exception as e:
code = 400
message = e
data = e
logger.warning(f"attribute_recognition Run Exception @@@@@@:{e}")
return {"code": code, "msg": message, "data": data}
raise HTTPException(status_code=404, detail=str(e))
return ResponseModel(data=data)
# 类别识别
@router.post("/category_recognition")
def category_recognition(request_item: list[CategoryRecognitionModel]):
try:
logger.info(f"category_recognition request item is : @@@@@@:{request_item}")
service = CategoryRecognition(request_data=request_item)
data = service.get_result()
code = 200
message = "OK!"
logger.info(f"category_recognition response @@@@@@:{json.dumps(data, indent=4)}")
except Exception as e:
code = 400
message = e
data = e
logger.warning(f"category_recognition Run Exception @@@@@@:{e}")
return {"code": code, "msg": message, "data": data}
raise HTTPException(status_code=404, detail=str(e))
return ResponseModel(data=data)

View File

@@ -1,8 +1,10 @@
import json
import logging
import time
from fastapi import APIRouter
from fastapi import APIRouter, HTTPException
from app.schemas.chat_robot import ChatRobotModel
from app.schemas.response_template import ResponseModel
from app.service.chat_robot.script.main import chat
router = APIRouter()
@@ -13,15 +15,9 @@ logger = logging.getLogger()
def chat_robot(request_data: ChatRobotModel):
try:
logger.info(f"chat_robot request item is : @@@@@@:{request_data}")
code = 200
message = "OK!"
start_time = time.time()
data = chat(post_data=request_data)
logger.info(f"chat_robot Run time is @@@@@@:{time.time() - start_time}")
logger.info(f"chat_robot response @@@@@@:{json.dumps(data, indent=4)}")
except Exception as e:
code = 400
message = str(e)
data = str(e)
logger.warning(f"chat_robot Run Exception @@@@@@:{e}")
logger.info({"code": code, "message": message, "data": data})
return {"code": code, "msg": message, "data": data}
raise HTTPException(status_code=404, detail=str(e))
return ResponseModel(data=data)

View File

@@ -1,9 +1,11 @@
import json
import logging
import time
from fastapi import APIRouter
from fastapi import APIRouter, HTTPException
from app.schemas.design import DesignModel
from app.schemas.response_template import ResponseModel
from app.service.design.service import generate
router = APIRouter()
@@ -14,15 +16,9 @@ logger = logging.getLogger()
def design(request_data: DesignModel):
try:
logger.info(f"design request item is : @@@@@@:{request_data}")
code = 200
message = "OK!"
start_time = time.time()
data = generate(request_data=request_data)
logger.info(f"design Run time is @@@@@@:{time.time() - start_time}")
logger.info(f"design response @@@@@@:{json.dumps(data, indent=4)}")
except Exception as e:
code = 400
message = str(e)
data = str(e)
logger.warning(f"design Run Exception @@@@@@:{e}")
logger.info({"code": code, "message": message, "data": data})
return {"code": code, "msg": message, "data": data}
raise HTTPException(status_code=404, detail=str(e))
return ResponseModel(data=data)

View File

@@ -1,9 +1,8 @@
import json
import logging
import time
from fastapi import APIRouter
from fastapi import APIRouter, HTTPException
from app.schemas.pre_processing import DesignPreProcessingModel
from app.schemas.response_template import ResponseModel
from app.service.design_pre_processing.service import DesignPreprocessing
router = APIRouter()
@@ -14,16 +13,10 @@ logger = logging.getLogger()
def design_pre_processing(request_data: DesignPreProcessingModel):
try:
logger.info(f"design_pre_processing request item is : @@@@@@:{request_data}")
code = 200
message = "OK!"
start_time = time.time()
server = DesignPreprocessing()
data = server.pipeline(image_list=request_data.sketches)
logger.info(f"design_pre_processing Run time is @@@@@@:{time.time() - start_time}")
logger.info(f"design response @@@@@@:{json.dumps(data, indent=4)}")
except Exception as e:
code = 400
message = str(e)
data = str(e)
logger.warning(f"design Run Exception @@@@@@:{e}")
logger.info({"code": code, "message": message, "data": data})
return {"code": code, "msg": message, "data": data}
raise HTTPException(status_code=404, detail=str(e))
return ResponseModel(data=data)

View File

@@ -1,6 +1,8 @@
import json
import logging
from fastapi import APIRouter, BackgroundTasks
from fastapi import APIRouter, BackgroundTasks, HTTPException
from app.schemas.generate_image import GenerateImageModel, GenerateProductImageModel, GenerateSingleLogoImageModel
from app.schemas.response_template import ResponseModel
from app.service.generate_image.service_generate_image import GenerateImage, infer_cancel as generate_image_infer_cancel
from app.service.generate_image.service_generate_product_image import GenerateProductImage, infer_cancel as generate_product_image_cancel
from app.service.generate_image.service_generate_single_logo import GenerateSingleLogoImage, infer_cancel as generate_single_logo_cancel
@@ -14,22 +16,25 @@ logger = logging.getLogger()
@router.post("/generate_image")
def generate_image(request_item: GenerateImageModel, background_tasks: BackgroundTasks):
try:
logger.info(f"request data ### : {request_item}")
logger.info(f"generate_image request item is : @@@@@@:{request_item}")
service = GenerateImage(request_item)
background_tasks.add_task(service.get_result)
code = 200
message = "OK!"
except Exception as e:
code = 400
message = e
logger.warning(e)
return {"code": code, "msg": message}
logger.warning(f"generate_image Run Exception @@@@@@:{e}")
raise HTTPException(status_code=404, detail=str(e))
return ResponseModel()
@router.get("/generate_cancel/{tasks_id}>")
def generate_image(tasks_id):
result = generate_image_infer_cancel(tasks_id)
return {"code": 200, "msg": "OK!", "data": result['data']}
try:
logger.info(f"generate_cancel request item is : @@@@@@:{tasks_id}")
data = generate_image_infer_cancel(tasks_id)
logger.info(f"generate_cancel response @@@@@@:{json.dumps(data, indent=4)}")
except Exception as e:
logger.warning(f"generate_cancel Run Exception @@@@@@:{e}")
raise HTTPException(status_code=404, detail=str(e))
return ResponseModel(data=data['data'])
'''single logo'''
@@ -38,22 +43,25 @@ def generate_image(tasks_id):
@router.post("/generate_single_logo")
def generate_single_logo(request_item: GenerateSingleLogoImageModel, background_tasks: BackgroundTasks):
try:
logger.info(f"request data ### : {request_item}")
logger.info(f"generate_single_logo request item is : @@@@@@:{request_item}")
service = GenerateSingleLogoImage(request_item)
background_tasks.add_task(service.get_result)
code = 200
message = "OK!"
except Exception as e:
code = 400
message = e
logger.warning(e)
return {"code": code, "msg": message}
logger.warning(f"generate_single_logo Run Exception @@@@@@:{e}")
raise HTTPException(status_code=404, detail=str(e))
return ResponseModel()
@router.get("/generate_single_logo_cancel/{tasks_id}>")
def generate_single_logo_image(tasks_id):
result = generate_single_logo_cancel(tasks_id)
return {"code": 200, "msg": "OK!", "data": result['data']}
try:
logger.info(f"generate_single_logo_cancel request item is : @@@@@@:{tasks_id}")
data = generate_single_logo_cancel(tasks_id)
logger.info(f"generate_single_logo_cancel response @@@@@@:{json.dumps(data, indent=4)}")
except Exception as e:
logger.warning(f"generate_single_logo_cancel Run Exception @@@@@@:{e}")
raise HTTPException(status_code=404, detail=str(e))
return ResponseModel(data=data['data'])
'''product image'''
@@ -62,19 +70,22 @@ def generate_single_logo_image(tasks_id):
@router.post("/generate_product_image")
def generate_product_image(request_item: GenerateProductImageModel, background_tasks: BackgroundTasks):
try:
logger.info(f"request data ### : {request_item}")
logger.info(f"generate_product_image request item is : @@@@@@:{request_item}")
service = GenerateProductImage(request_item)
background_tasks.add_task(service.get_result)
code = 200
message = "OK!"
except Exception as e:
code = 400
message = e
logger.warning(e)
return {"code": code, "msg": message}
logger.warning(f"generate_product_image Run Exception @@@@@@:{e}")
raise HTTPException(status_code=404, detail=str(e))
return ResponseModel()
@router.get("/generate_product_image_cancel_cancel/{tasks_id}>")
def generate_single_logo_image(tasks_id):
result = generate_product_image_cancel(tasks_id)
return {"code": 200, "msg": "OK!", "data": result['data']}
try:
logger.info(f"generate_product_image_cancel_cancel request item is : @@@@@@:{tasks_id}")
data = generate_single_logo_cancel(tasks_id)
logger.info(f"generate_product_image_cancel_cancel response @@@@@@:{json.dumps(data, indent=4)}")
except Exception as e:
logger.warning(f"generate_product_image_cancel_cancel Run Exception @@@@@@:{e}")
raise HTTPException(status_code=404, detail=str(e))
return ResponseModel(data=data['data'])

View File

@@ -1,9 +1,11 @@
import json
import logging
import time
from fastapi import APIRouter
from fastapi import APIRouter, HTTPException
from app.schemas.prompt_generation import PromptGenerationImageModel
from app.schemas.response_template import ResponseModel
from app.service.prompt_generation.chatgpt_for_translation import translate_to_en
router = APIRouter()
@@ -13,16 +15,10 @@ logger = logging.getLogger()
@router.post("/translateToEN")
def prompt_generation(request_data: PromptGenerationImageModel):
try:
logger.info(f"prompt_translate to English request data : @@@@@@:{request_data}")
code = 200
message = "OK!"
start_time = time.time()
logger.info(f"prompt_generation request item is : @@@@@@:{request_data}")
data = translate_to_en(request_data.text)
logger.info(f"prompt_generation Run time is @@@@@@:{time.time() - start_time}")
logger.info(f"prompt_generation response @@@@@@:{json.dumps(data, indent=4)}")
except Exception as e:
code = 400
message = str(e)
data = str(e)
logger.warning(f"prompt_generation Run Exception @@@@@@:{e}")
logger.info({"code": code, "message": message, "data": data})
return {"code": code, "msg": message, "data": data}
raise HTTPException(status_code=404, detail=str(e))
return ResponseModel(data=data)

View File

@@ -1,8 +1,9 @@
import json
import logging
from fastapi import APIRouter, BackgroundTasks
from fastapi import APIRouter, BackgroundTasks, HTTPException
from app.schemas.response_template import ResponseModel
from app.schemas.super_resolution import SuperResolutionModel
from app.service.super_resolution.service import SuperResolution, infer_cancel
@@ -13,18 +14,22 @@ logger = logging.getLogger()
@router.post("/super_resolution")
def super_resolution(request_item: SuperResolutionModel, background_tasks: BackgroundTasks):
try:
logger.info(f"super_resolution request item is : @@@@@@:{request_item}")
service = SuperResolution(request_item)
background_tasks.add_task(service.sr_result)
code = 200
message = "OK!"
except Exception as e:
code = 400
message = e
logger.warning(e)
return {"code": code, "msg": message}
logger.warning(f"super_resolution Run Exception @@@@@@:{e}")
raise HTTPException(status_code=404, detail=str(e))
return ResponseModel()
@router.get("/sr_cancel/{tasks_id}>")
def super_resolution(tasks_id):
result = infer_cancel(tasks_id)
return {"code": 200, "msg": result['message'], "data": result['data']}
try:
logger.info(f"sr_cancel request item is : @@@@@@:{tasks_id}")
data = infer_cancel(tasks_id)
logger.info(f"sr_cancel response @@@@@@:{json.dumps(data, indent=4)}")
except Exception as e:
logger.warning(f"sr_cancel Run Exception @@@@@@:{e}")
raise HTTPException(status_code=404, detail=str(e))
return ResponseModel(data=data['data'])

View File

@@ -1,13 +1,20 @@
import logging
from fastapi import APIRouter
from app.core.config import SR_RABBITMQ_QUEUES, GI_RABBITMQ_QUEUES
from fastapi import FastAPI, HTTPException
from app.schemas.response_template import ResponseModel
logger = logging.getLogger()
router = APIRouter()
@router.get("")
def test():
@router.get("{id}")
def test(id: int):
logger.info(SR_RABBITMQ_QUEUES)
logger.info("test")
return {"SR_RABBITMQ_QUEUES message": SR_RABBITMQ_QUEUES, "GI_RABBITMQ_QUEUES": GI_RABBITMQ_QUEUES}
data = {"SR_RABBITMQ_QUEUES message": SR_RABBITMQ_QUEUES, "GI_RABBITMQ_QUEUES": GI_RABBITMQ_QUEUES}
if id == 1:
raise HTTPException(status_code=404, detail="Item not found")
return ResponseModel(data=data)

View File

@@ -19,7 +19,7 @@ class Settings(BaseSettings):
LOGGING_CONFIG_FILE = os.path.join(BASE_DIR, 'logging_env.py')
DEBUG = False
DEBUG = True
if DEBUG:
LOGS_PATH = "logs/"
CATEGORY_PATH = "service/attribute/config/descriptor/category/category_dis.csv"

View File

@@ -1,13 +1,16 @@
import logging.config
from http.client import HTTPException
from fastapi.responses import JSONResponse
from fastapi import FastAPI, HTTPException, Request
import uvicorn
from fastapi import FastAPI
from app.api.api_route import router
from app.core.config import settings
from app.schemas.response_template import ResponseModel
from logging_env import LOGGER_CONFIG_DICT
logging.config.dictConfig(LOGGER_CONFIG_DICT)
logging.getLogger("pika").setLevel(logging.WARNING)
@@ -36,5 +39,15 @@ def get_application() -> FastAPI:
app = get_application()
@app.exception_handler(HTTPException)
async def http_exception_handler(request: Request, exc: HTTPException):
return JSONResponse(
status_code=exc.status_code,
content=ResponseModel(code=exc.status_code, msg=exc.detail, data=exc.detail).dict()
)
if __name__ == '__main__':
uvicorn.run(app, host="0.0.0.0", port=8000)

View File

@@ -0,0 +1,8 @@
from pydantic import BaseModel
from typing import Any, Optional
class ResponseModel(BaseModel):
code: int = 200
msg: str = "OK!"
data: Optional[Any] = None