From 83c243e4754929a55df0405b5fe75bfb8fc1a76b Mon Sep 17 00:00:00 2001 From: QCQCQC <1220204124@zust.edu.cn> Date: Tue, 6 May 2025 11:59:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=A5=E5=BF=97=E7=BA=A7?= =?UTF-8?q?=E5=88=AB=E4=BB=A5=E5=8F=8A=E6=B7=BB=E5=8A=A0banner?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/__pycache__/main.cpython-310.pyc | Bin 1005 -> 1437 bytes app/main.py | 24 ++++++++++++++++++++++-- run.py | 2 +- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/app/__pycache__/main.cpython-310.pyc b/app/__pycache__/main.cpython-310.pyc index 18c49171379de048a70a533ae75840dded73777a..b28e0eaf2b85af76ae62dd467363c9e18c53749c 100644 GIT binary patch literal 1437 zcmZux&u`l{6c!~*wq-l96US?Z9<-wmwY^&r48w+{!*I1sfwq@lw#5#@DScQ_P{yh)pROyj&o zTTT{@%k zp#W74=Ejt_$nTy)0g8!r6-FF9g0B~#&C&JF50#SkES)bNKR$SP6{QMTS*FBhvKl^q z?fV%{`VNBceNMh3#`_jiw}c;gc18mH{ly=sj}sh!|MKQVas;W7DmetE(s_c6B$-YY zWrB$$YEcwfar(i^`o}lPo=o+w^~GUR+#QdFOqrNVZFV0_CX+EoiMCt4O)aehu70Y+K{y4_C!Msg0wPgts~FhgIpFgF?_ zo$kRI2w6@Klzf5->*+Dm^ZRotpH9yl0r!tt`Vhoi}8vJ4#$%V_M5x$KN@ra6qN&}2qHRX+oz@dnX`rERuQ zf;OFpgRPa5UATZ3WSnB$cZMrFO5E`{;eJN2%)x$D&p~Uv%gcLfr?e$r)z(q;|7ipF zt7=M0GqO9|5RE|f@v}d?L+dBlI#@DgNyeRrK*VN`NtNQ)Pc}bZ~g3dZ&XN zo0pemhjG5%jaBoy+vrACq+-Egc9~QaoPu#=+)7*Hqg?WZfRAl|>IqJ5uTAXJC+)CJ Ye7{TlO`p7dqKkHH^>NVfebOcW0mP$Soi^Hty1^}HqL}7xx<_}=f39Nq4RAtGS9P-u+O{Ii)R&~FDd5D5aK}G-s@vy z>pC^DnOfKaL=e#vJ9V%#<)y?;J?sObKn!9Mi`c{=?t_j48a##6p~grNQOSL3{_`@m zW_*FFBba6^5^n@lCq4;o(EtX3DWm!>`J17E7m4)IttuJBYT(pVvE|Y$2$9cZVvVK7sQ+Zcg2aVrr zYmP30tR%tUZ`ul&{6nkOELpM~6){U_QPAT~r+svFM)RVZU5-`Jire~bB!8NpM@qTG n*xXMu(obj;gz9YwaFGixRKV3;P!t9JPU*+BWW)wjctiLFaZp%B diff --git a/app/main.py b/app/main.py index 39810ea..48adc8f 100644 --- a/app/main.py +++ b/app/main.py @@ -1,4 +1,5 @@ from fastapi import FastAPI +from contextlib import asynccontextmanager from app.router import router from app.utils.response_wrapper import standard_response from app.exception_handlers import ( @@ -9,18 +10,37 @@ from app.exception_handlers import ( from fastapi.exceptions import RequestValidationError from starlette.exceptions import HTTPException as StarletteHTTPException +@asynccontextmanager +async def lifespan(app: FastAPI): + # 启动时运行的代码 + banner = r""" + 🚀 Vector Search API is up and running! + 📚 Docs: http://localhost:8000/docs + 🔍 OpenAPI: http://localhost:8000/openapi.json + 📖 ReDoc: http://localhost:8000/redoc + """ + print(banner) + + yield # 👈 这里控制 startup 和 shutdown 之间的生命周期 + + # (可选)关闭时运行的代码 + # print("Shutting down Vector Search API...") + app = FastAPI( title="Vector Search API", version="1.0.0", docs_url="/docs", redoc_url="/redoc", - openapi_url="/openapi.json" + openapi_url="/openapi.json", + lifespan=lifespan ) -# 注册自定义异常处理器 +# 注册异常处理器 app.add_exception_handler(RequestValidationError, validation_exception_handler) app.add_exception_handler(StarletteHTTPException, http_exception_handler) app.add_exception_handler(Exception, general_exception_handler) + +# 注册路由 app.include_router(router) @app.get("/") diff --git a/run.py b/run.py index 4753965..c58c9b3 100644 --- a/run.py +++ b/run.py @@ -1,4 +1,4 @@ import uvicorn if __name__ == "__main__": - uvicorn.run("app.main:app", host="127.0.0.1", port=8000, reload=True) + uvicorn.run("app.main:app", host="127.0.0.1", port=8000, reload=True, log_level="warning")