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 json
import logging import logging
from fastapi import APIRouter from fastapi import APIRouter, HTTPException
from app.schemas.attribute_retrieve import * from app.schemas.attribute_retrieve import *
from app.schemas.response_template import ResponseModel
from app.service.attribute.config import const from app.service.attribute.config import const
from app.service.attribute.service_att_recognition import AttributeRecognition from app.service.attribute.service_att_recognition import AttributeRecognition
from app.service.attribute.service_category_recognition import CategoryRecognition 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]): def attribute_recognition(request_item: list[AttributeRecognitionModel]):
try: try:
logger.info(f"attribute_recognition request item is : @@@@@@:{request_item}")
service = AttributeRecognition(const=const, request_data=request_item) service = AttributeRecognition(const=const, request_data=request_item)
data = service.get_result() data = service.get_result()
code = 200
message = "OK!"
logger.info(f"attribute_recognition response @@@@@@:{json.dumps(data, indent=4)}") logger.info(f"attribute_recognition response @@@@@@:{json.dumps(data, indent=4)}")
except Exception as e: except Exception as e:
code = 400
message = e
data = e
logger.warning(f"attribute_recognition Run Exception @@@@@@:{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") @router.post("/category_recognition")
def category_recognition(request_item: list[CategoryRecognitionModel]): def category_recognition(request_item: list[CategoryRecognitionModel]):
try: try:
logger.info(f"category_recognition request item is : @@@@@@:{request_item}")
service = CategoryRecognition(request_data=request_item) service = CategoryRecognition(request_data=request_item)
data = service.get_result() data = service.get_result()
code = 200
message = "OK!"
logger.info(f"category_recognition response @@@@@@:{json.dumps(data, indent=4)}") logger.info(f"category_recognition response @@@@@@:{json.dumps(data, indent=4)}")
except Exception as e: except Exception as e:
code = 400
message = e
data = e
logger.warning(f"category_recognition Run Exception @@@@@@:{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 logging
import time import time
from fastapi import APIRouter from fastapi import APIRouter, HTTPException
from app.schemas.chat_robot import ChatRobotModel from app.schemas.chat_robot import ChatRobotModel
from app.schemas.response_template import ResponseModel
from app.service.chat_robot.script.main import chat from app.service.chat_robot.script.main import chat
router = APIRouter() router = APIRouter()
@@ -13,15 +15,9 @@ logger = logging.getLogger()
def chat_robot(request_data: ChatRobotModel): def chat_robot(request_data: ChatRobotModel):
try: try:
logger.info(f"chat_robot request item is : @@@@@@:{request_data}") logger.info(f"chat_robot request item is : @@@@@@:{request_data}")
code = 200
message = "OK!"
start_time = time.time()
data = chat(post_data=request_data) 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: except Exception as e:
code = 400
message = str(e)
data = str(e)
logger.warning(f"chat_robot Run Exception @@@@@@:{e}") logger.warning(f"chat_robot Run Exception @@@@@@:{e}")
logger.info({"code": code, "message": message, "data": data}) raise HTTPException(status_code=404, detail=str(e))
return {"code": code, "msg": message, "data": data} return ResponseModel(data=data)

View File

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

View File

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

View File

@@ -1,6 +1,8 @@
import json
import logging 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.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_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_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 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") @router.post("/generate_image")
def generate_image(request_item: GenerateImageModel, background_tasks: BackgroundTasks): def generate_image(request_item: GenerateImageModel, background_tasks: BackgroundTasks):
try: try:
logger.info(f"request data ### : {request_item}") logger.info(f"generate_image request item is : @@@@@@:{request_item}")
service = GenerateImage(request_item) service = GenerateImage(request_item)
background_tasks.add_task(service.get_result) background_tasks.add_task(service.get_result)
code = 200
message = "OK!"
except Exception as e: except Exception as e:
code = 400 logger.warning(f"generate_image Run Exception @@@@@@:{e}")
message = e raise HTTPException(status_code=404, detail=str(e))
logger.warning(e) return ResponseModel()
return {"code": code, "msg": message}
@router.get("/generate_cancel/{tasks_id}>") @router.get("/generate_cancel/{tasks_id}>")
def generate_image(tasks_id): def generate_image(tasks_id):
result = generate_image_infer_cancel(tasks_id) try:
return {"code": 200, "msg": "OK!", "data": result['data']} 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''' '''single logo'''
@@ -38,22 +43,25 @@ def generate_image(tasks_id):
@router.post("/generate_single_logo") @router.post("/generate_single_logo")
def generate_single_logo(request_item: GenerateSingleLogoImageModel, background_tasks: BackgroundTasks): def generate_single_logo(request_item: GenerateSingleLogoImageModel, background_tasks: BackgroundTasks):
try: try:
logger.info(f"request data ### : {request_item}") logger.info(f"generate_single_logo request item is : @@@@@@:{request_item}")
service = GenerateSingleLogoImage(request_item) service = GenerateSingleLogoImage(request_item)
background_tasks.add_task(service.get_result) background_tasks.add_task(service.get_result)
code = 200
message = "OK!"
except Exception as e: except Exception as e:
code = 400 logger.warning(f"generate_single_logo Run Exception @@@@@@:{e}")
message = e raise HTTPException(status_code=404, detail=str(e))
logger.warning(e) return ResponseModel()
return {"code": code, "msg": message}
@router.get("/generate_single_logo_cancel/{tasks_id}>") @router.get("/generate_single_logo_cancel/{tasks_id}>")
def generate_single_logo_image(tasks_id): def generate_single_logo_image(tasks_id):
result = generate_single_logo_cancel(tasks_id) try:
return {"code": 200, "msg": "OK!", "data": result['data']} 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''' '''product image'''
@@ -62,19 +70,22 @@ def generate_single_logo_image(tasks_id):
@router.post("/generate_product_image") @router.post("/generate_product_image")
def generate_product_image(request_item: GenerateProductImageModel, background_tasks: BackgroundTasks): def generate_product_image(request_item: GenerateProductImageModel, background_tasks: BackgroundTasks):
try: try:
logger.info(f"request data ### : {request_item}") logger.info(f"generate_product_image request item is : @@@@@@:{request_item}")
service = GenerateProductImage(request_item) service = GenerateProductImage(request_item)
background_tasks.add_task(service.get_result) background_tasks.add_task(service.get_result)
code = 200
message = "OK!"
except Exception as e: except Exception as e:
code = 400 logger.warning(f"generate_product_image Run Exception @@@@@@:{e}")
message = e raise HTTPException(status_code=404, detail=str(e))
logger.warning(e) return ResponseModel()
return {"code": code, "msg": message}
@router.get("/generate_product_image_cancel_cancel/{tasks_id}>") @router.get("/generate_product_image_cancel_cancel/{tasks_id}>")
def generate_single_logo_image(tasks_id): def generate_single_logo_image(tasks_id):
result = generate_product_image_cancel(tasks_id) try:
return {"code": 200, "msg": "OK!", "data": result['data']} 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 logging
import time import time
from fastapi import APIRouter from fastapi import APIRouter, HTTPException
from app.schemas.prompt_generation import PromptGenerationImageModel 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 from app.service.prompt_generation.chatgpt_for_translation import translate_to_en
router = APIRouter() router = APIRouter()
@@ -13,16 +15,10 @@ logger = logging.getLogger()
@router.post("/translateToEN") @router.post("/translateToEN")
def prompt_generation(request_data: PromptGenerationImageModel): def prompt_generation(request_data: PromptGenerationImageModel):
try: try:
logger.info(f"prompt_translate to English request data : @@@@@@:{request_data}") logger.info(f"prompt_generation request item is : @@@@@@:{request_data}")
code = 200
message = "OK!"
start_time = time.time()
data = translate_to_en(request_data.text) 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: except Exception as e:
code = 400
message = str(e)
data = str(e)
logger.warning(f"prompt_generation Run Exception @@@@@@:{e}") logger.warning(f"prompt_generation Run Exception @@@@@@:{e}")
logger.info({"code": code, "message": message, "data": data}) raise HTTPException(status_code=404, detail=str(e))
return {"code": code, "msg": message, "data": data} return ResponseModel(data=data)

View File

@@ -1,8 +1,9 @@
import json import json
import logging 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.schemas.super_resolution import SuperResolutionModel
from app.service.super_resolution.service import SuperResolution, infer_cancel from app.service.super_resolution.service import SuperResolution, infer_cancel
@@ -13,18 +14,22 @@ logger = logging.getLogger()
@router.post("/super_resolution") @router.post("/super_resolution")
def super_resolution(request_item: SuperResolutionModel, background_tasks: BackgroundTasks): def super_resolution(request_item: SuperResolutionModel, background_tasks: BackgroundTasks):
try: try:
logger.info(f"super_resolution request item is : @@@@@@:{request_item}")
service = SuperResolution(request_item) service = SuperResolution(request_item)
background_tasks.add_task(service.sr_result) background_tasks.add_task(service.sr_result)
code = 200
message = "OK!"
except Exception as e: except Exception as e:
code = 400 logger.warning(f"super_resolution Run Exception @@@@@@:{e}")
message = e raise HTTPException(status_code=404, detail=str(e))
logger.warning(e) return ResponseModel()
return {"code": code, "msg": message}
@router.get("/sr_cancel/{tasks_id}>") @router.get("/sr_cancel/{tasks_id}>")
def super_resolution(tasks_id): def super_resolution(tasks_id):
result = infer_cancel(tasks_id) try:
return {"code": 200, "msg": result['message'], "data": result['data']} 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 import logging
from fastapi import APIRouter from fastapi import APIRouter
from app.core.config import SR_RABBITMQ_QUEUES, GI_RABBITMQ_QUEUES 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() logger = logging.getLogger()
router = APIRouter() router = APIRouter()
@router.get("") @router.get("{id}")
def test(): def test(id: int):
logger.info(SR_RABBITMQ_QUEUES) logger.info(SR_RABBITMQ_QUEUES)
logger.info("test") 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') LOGGING_CONFIG_FILE = os.path.join(BASE_DIR, 'logging_env.py')
DEBUG = False DEBUG = True
if DEBUG: if DEBUG:
LOGS_PATH = "logs/" LOGS_PATH = "logs/"
CATEGORY_PATH = "service/attribute/config/descriptor/category/category_dis.csv" CATEGORY_PATH = "service/attribute/config/descriptor/category/category_dis.csv"

View File

@@ -1,13 +1,16 @@
import logging.config import logging.config
from http.client import HTTPException
from fastapi.responses import JSONResponse
from fastapi import FastAPI, HTTPException, Request
import uvicorn import uvicorn
from fastapi import FastAPI from fastapi import FastAPI
from app.api.api_route import router from app.api.api_route import router
from app.core.config import settings from app.core.config import settings
from app.schemas.response_template import ResponseModel
from logging_env import LOGGER_CONFIG_DICT from logging_env import LOGGER_CONFIG_DICT
logging.config.dictConfig(LOGGER_CONFIG_DICT) logging.config.dictConfig(LOGGER_CONFIG_DICT)
logging.getLogger("pika").setLevel(logging.WARNING) logging.getLogger("pika").setLevel(logging.WARNING)
@@ -36,5 +39,15 @@ def get_application() -> FastAPI:
app = get_application() 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__': if __name__ == '__main__':
uvicorn.run(app, host="0.0.0.0", port=8000) 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