lifespan_manager.py 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. from contextlib import asynccontextmanager
  2. from fastapi import FastAPI
  3. from core.agent_manager import agent_manager
  4. from utils.registration_manager import registration_manager
  5. from utils.logger import chat_logger
  6. from core.chat_result_manager import chat_result_manager
  7. @asynccontextmanager
  8. async def lifespan(app: FastAPI):
  9. """应用生命周期管理"""
  10. try:
  11. # 启动时检查注册状态,但不阻止启动
  12. registration_status = await registration_manager.check_registration()
  13. if not registration_status:
  14. chat_logger.warning("服务启动:注册检查未通过,/chat接口将受限")
  15. else:
  16. chat_logger.info("服务启动:注册检查通过")
  17. await agent_manager.initialize()
  18. chat_logger.info("AI助手服务启动")
  19. yield
  20. finally:
  21. cleared_count = await agent_manager.shutdown()
  22. # 清理聊天结果管理器
  23. chat_result_manager.close()
  24. chat_result_manager.cleanup_old_tasks(max_days=7)
  25. chat_logger.info(f"AI助手服务停止")
  26. def create_lifespan():
  27. """创建生命周期管理器"""
  28. return lifespan