feat: 增加api前缀

This commit is contained in:
李如威 2025-07-09 00:42:29 +08:00
parent 9a676f601c
commit 43a4a1f458
1 changed files with 17 additions and 9 deletions

26
main.py
View File

@ -43,10 +43,14 @@ app = FastAPI(
title=config.APP_NAME,
version=config.APP_VERSION,
description="高效简洁的RAG服务API",
docs_url="/docs",
redoc_url="/redoc",
docs_url="/api/docs",
redoc_url="/api/redoc",
)
# 创建API路由器
from fastapi import APIRouter
api_router = APIRouter(prefix="/api")
# 添加CORS中间件
app.add_middleware(
CORSMiddleware,
@ -95,7 +99,7 @@ async def verify_token(credentials: HTTPAuthorizationCredentials = Depends(secur
return True
@app.get("/", response_model=dict)
@api_router.get("/", response_model=dict)
async def root():
"""根路径 - 服务健康检查"""
logger.info("根路径访问")
@ -106,14 +110,14 @@ async def root():
}
@app.get("/health")
@api_router.get("/health")
async def health_check():
"""健康检查接口"""
logger.debug("健康检查请求")
return {"status": "healthy", "service": config.APP_NAME}
@app.post("/upload", response_model=SuccessResponse)
@api_router.post("/upload", response_model=SuccessResponse)
async def upload_document(
file: UploadFile = File(...),
service: AsyncRAGService = Depends(get_rag_service),
@ -184,7 +188,7 @@ async def upload_document(
raise HTTPException(status_code=500, detail=f"文档处理失败: {str(e)}")
@app.post("/chat", response_model=ChatResponse)
@api_router.post("/chat", response_model=ChatResponse)
async def chat(
request: ChatRequest,
service: AsyncRAGService = Depends(get_rag_service),
@ -217,7 +221,7 @@ async def chat(
raise HTTPException(status_code=500, detail=f"问答处理失败: {str(e)}")
@app.post("/chat/stream")
@api_router.post("/chat/stream")
async def chat_stream(
request: StreamChatRequest,
service: AsyncRAGService = Depends(get_rag_service),
@ -260,7 +264,7 @@ async def chat_stream(
)
@app.get("/documents", response_model=List[DocumentInfo])
@api_router.get("/documents", response_model=List[DocumentInfo])
async def get_documents(
service: AsyncRAGService = Depends(get_rag_service), _: bool = Depends(verify_token)
):
@ -284,7 +288,7 @@ async def get_documents(
raise HTTPException(status_code=500, detail=f"获取文档列表失败: {str(e)}")
@app.delete("/documents/{doc_id}", response_model=SuccessResponse)
@api_router.delete("/documents/{doc_id}", response_model=SuccessResponse)
async def delete_document(
doc_id: str,
service: AsyncRAGService = Depends(get_rag_service),
@ -320,6 +324,10 @@ async def global_exception_handler(request, exc):
)
# 包含API路由器
app.include_router(api_router)
if __name__ == "__main__":
# 验证配置
try: