Files
2026-05-11 11:22:55 +08:00

68 lines
1.7 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from app.api.routes import api_router
from app.core.config import settings
from app.utils.logger import logger
from app.services import milvus_service
# 创建应用
app = FastAPI(
title="车辆法规智能检索系统",
description="基于RAG技术的法规检索与合规分析后端API",
version="1.0.0",
)
# CORS配置
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# 注册路由
app.include_router(api_router, prefix="/api")
@app.on_event("startup")
async def startup_event():
"""启动时初始化"""
logger.info("Starting application...")
# 初始化Milvus集合仅在服务可用时
try:
if milvus_service is not None:
milvus_service.create_regulations_collection()
logger.info("Milvus collection initialized")
else:
logger.warning("Milvus service not available, using mock data")
except Exception as e:
logger.warning(f"Milvus initialization failed: {e}")
@app.on_event("shutdown")
async def shutdown_event():
"""关闭时清理"""
logger.info("Shutting down application...")
try:
if milvus_service is not None:
milvus_service.disconnect()
except Exception as e:
logger.warning(f"Shutdown cleanup error: {e}")
@app.get("/")
async def root():
"""根路径"""
return {
"message": "车辆法规智能检索系统 API",
"version": "1.0.0",
"docs": "/docs",
}
@app.get("/health")
async def health():
"""健康检查"""
return {"status": "healthy"}