main.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import os
  2. from contextlib import asynccontextmanager
  3. from fastapi import FastAPI
  4. from fastapi.middleware.cors import CORSMiddleware
  5. # 导入配置
  6. from core.config import logger
  7. # 导入API路由
  8. from api.search import router as search_router
  9. from api.health import router as health_router
  10. # 创建 FastAPI 应用
  11. app = FastAPI(
  12. title="RAG",
  13. description="RAG数据检索",
  14. version="1.0.0"
  15. )
  16. # 添加 CORS 中间件
  17. app.add_middleware(
  18. CORSMiddleware,
  19. allow_origins=["*"],
  20. allow_credentials=True,
  21. allow_methods=["*"],
  22. allow_headers=["*"],
  23. )
  24. # 注册路由
  25. app.include_router(health_router, tags=["健康检查"])
  26. app.include_router(search_router, tags=["数据检索"])
  27. # 定义生命周期事件处理器
  28. @asynccontextmanager
  29. async def lifespan(app: FastAPI):
  30. # Startup 逻辑
  31. print("正在启动数据胶囊 API 服务...")
  32. # 初始化一些资源,例如数据库连接
  33. # app.state.db = await init_database() # 假设是异步初始化
  34. yield # 应用在此处运行,处理请求
  35. # Shutdown 逻辑
  36. print("数据胶囊 API 服务正在关闭...")
  37. # 关闭资源,例如数据库连接
  38. # await close_database(app.state.db) # 假设是异步关闭
  39. # @app.on_event("startup")
  40. # async def startup_event():
  41. # """应用启动事件"""
  42. # logger.info("正在启动数据胶囊 API 服务...")
  43. # # 创建数据库表
  44. # # create_tables()
  45. #
  46. # @app.on_event("shutdown")
  47. # async def shutdown_event():
  48. # """应用关闭事件"""
  49. # logger.info("数据胶囊 API 服务正在关闭...")
  50. if __name__ == "__main__":
  51. import uvicorn
  52. os.environ['RAG_ENV'] = 'prod'
  53. uvicorn.run(app, host="0.0.0.0", port=5000)