1- from fastapi .concurrency import asynccontextmanager
1+ import sqlbot_xpack
2+ from alembic .config import Config
23from fastapi import FastAPI
4+ from fastapi .concurrency import asynccontextmanager
35from fastapi .routing import APIRoute
4- from starlette .middleware .cors import CORSMiddleware
6+ from fastapi .staticfiles import StaticFiles
7+ from fastapi_mcp import FastApiMCP
58from starlette .exceptions import HTTPException as StarletteHTTPException
9+ from starlette .middleware .cors import CORSMiddleware
610
11+ from alembic import command
12+ from apps .api import api_router
713from apps .system .crud .assistant import init_dynamic_cors
814from apps .system .middleware .auth import TokenMiddleware
915from common .core .config import settings
1016from common .core .response_middleware import ResponseMiddleware , exception_handler
11- from alembic .config import Config
12- from alembic import command
13- from fastapi_mcp import FastApiMCP
14- from fastapi .staticfiles import StaticFiles
15- import sqlbot_xpack
16- from common .utils .utils import SQLBotLogUtil
1717from common .core .sqlbot_cache import init_sqlbot_cache
18- from apps .api import api_router
18+ from common .utils .utils import SQLBotLogUtil
19+
1920
2021def run_migrations ():
2122 alembic_cfg = Config ("alembic.ini" )
@@ -32,6 +33,7 @@ async def lifespan(app: FastAPI):
3233 yield
3334 SQLBotLogUtil .info ("SQLBot 应用关闭" )
3435
36+
3537def custom_generate_unique_id (route : APIRoute ) -> str :
3638 tag = route .tags [0 ] if route .tags and len (route .tags ) > 0 else ""
3739 return f"{ tag } -{ route .name } "
@@ -44,9 +46,6 @@ def custom_generate_unique_id(route: APIRoute) -> str:
4446 lifespan = lifespan
4547)
4648
47- app .mount ("/excel" , StaticFiles (directory = settings .EXCEL_PATH ), name = "excel" )
48-
49-
5049mcp_app = FastAPI ()
5150# mcp server, images path
5251mcp_app .mount ("/images" , StaticFiles (directory = settings .MCP_IMAGE_PATH ), name = "images" )
0 commit comments