main.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. """
  2. FastAPI主应用
  3. """
  4. from fastapi import FastAPI
  5. from fastapi.middleware.cors import CORSMiddleware
  6. from app.core.config import settings
  7. from app.core import redis
  8. from app.api import auth, characters, conversations, affection
  9. from loguru import logger
  10. # 创建FastAPI应用
  11. app = FastAPI(
  12. title=settings.APP_NAME,
  13. version=settings.APP_VERSION,
  14. debug=settings.DEBUG
  15. )
  16. # CORS中间件
  17. app.add_middleware(
  18. CORSMiddleware,
  19. allow_origins=settings.CORS_ORIGINS,
  20. allow_credentials=True,
  21. allow_methods=["*"],
  22. allow_headers=["*"],
  23. )
  24. # 注册路由
  25. app.include_router(auth.router, prefix="/api/auth", tags=["认证"])
  26. app.include_router(characters.router, prefix="/api/characters", tags=["AI角色"])
  27. app.include_router(conversations.router, prefix="/api/conversations", tags=["对话"])
  28. app.include_router(affection.router, prefix="/api/affection", tags=["好感度"])
  29. @app.on_event("startup")
  30. async def startup_event():
  31. """应用启动事件"""
  32. logger.info(f"{settings.APP_NAME} 启动中...")
  33. # 可以在这里初始化Redis连接等
  34. @app.on_event("shutdown")
  35. async def shutdown_event():
  36. """应用关闭事件"""
  37. logger.info("正在关闭应用...")
  38. await redis.close_redis()
  39. @app.get("/")
  40. async def root():
  41. """根路径"""
  42. return {
  43. "app": settings.APP_NAME,
  44. "version": settings.APP_VERSION,
  45. "status": "running"
  46. }
  47. @app.get("/health")
  48. async def health_check():
  49. """健康检查"""
  50. return {"status": "healthy"}