diff --git a/servers/fastapi/api/lifespan.py b/servers/fastapi/api/lifespan.py deleted file mode 100644 index 49a9378a..00000000 --- a/servers/fastapi/api/lifespan.py +++ /dev/null @@ -1,16 +0,0 @@ -from contextlib import asynccontextmanager -import os - -from fastapi import FastAPI -from sqlmodel import SQLModel - -from services import SQL_ENGINE -from utils.check_llm_model_availability import check_llm_model_availability - - -@asynccontextmanager -async def app_lifespan(_: FastAPI): - os.makedirs(os.getenv("APP_DATA_DIRECTORY"), exist_ok=True) - SQLModel.metadata.create_all(SQL_ENGINE) - await check_llm_model_availability() - yield diff --git a/servers/fastapi/api/main.py b/servers/fastapi/api/main.py index 6d00861b..40589d17 100644 --- a/servers/fastapi/api/main.py +++ b/servers/fastapi/api/main.py @@ -1,12 +1,51 @@ -from fastapi import FastAPI +from contextlib import asynccontextmanager +import os +from fastapi import FastAPI, Request +from fastapi.middleware.cors import CORSMiddleware from fastapi.staticfiles import StaticFiles +from sqlmodel import SQLModel from api.v1.ppt.router import API_V1_PPT_ROUTER -from api.lifespan import app_lifespan +from services import SQL_ENGINE +from utils.check_llm_model_availability import check_llm_model_availability +from utils.get_env import get_can_change_keys_env +from utils.user_config import update_env_with_user_config +# Lifespan +@asynccontextmanager +async def app_lifespan(_: FastAPI): + os.makedirs(os.getenv("APP_DATA_DIRECTORY"), exist_ok=True) + SQLModel.metadata.create_all(SQL_ENGINE) + await check_llm_model_availability() + yield + + +# App APP = FastAPI(lifespan=app_lifespan) + +# Static files APP.mount("/static", StaticFiles(directory="static"), name="static") # APP.mount("/static/app-data", StaticFiles(directory=get_app_data_directory_env())) + +# Routers APP.include_router(API_V1_PPT_ROUTER) + + +# Middlewares +origins = ["*"] +APP.add_middleware( + CORSMiddleware, + allow_origins=origins, + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + + +@APP.middleware("http") +async def update_env_middleware(request: Request, call_next): + if get_can_change_keys_env() != "false": + update_env_with_user_config() + return await call_next(request) diff --git a/servers/fastapi/api/middlewares.py b/servers/fastapi/api/middlewares.py deleted file mode 100644 index 8a1bf7a0..00000000 --- a/servers/fastapi/api/middlewares.py +++ /dev/null @@ -1,23 +0,0 @@ -from fastapi import Request -from api.main import APP -from fastapi.middleware.cors import CORSMiddleware - -from utils.get_env import get_can_change_keys_env -from utils.user_config import update_env_with_user_config - - -origins = ["*"] -APP.add_middleware( - CORSMiddleware, - allow_origins=origins, - allow_credentials=True, - allow_methods=["*"], - allow_headers=["*"], -) - - -@APP.middleware("http") -async def update_env_middleware(request: Request, call_next): - if get_can_change_keys_env() != "false": - update_env_with_user_config() - return await call_next(request) diff --git a/servers/fastapi/api/v1/ppt/endpoints/files.py b/servers/fastapi/api/v1/ppt/endpoints/files.py index c4230604..e2f43329 100644 --- a/servers/fastapi/api/v1/ppt/endpoints/files.py +++ b/servers/fastapi/api/v1/ppt/endpoints/files.py @@ -37,7 +37,7 @@ async def upload_files(files: Optional[List[UploadFile]]): return temp_files -@FILES_ROUTER.post("/decompose") +@FILES_ROUTER.post("/decompose", response_model=List[DecomposedFileInfo]) async def decompose_files(file_paths: Annotated[List[str], Body(embed=True)]): temp_dir = TEMP_FILE_SERVICE.create_temp_dir(str(uuid.uuid4()))