main.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. from contextlib import asynccontextmanager
  2. from fastapi import FastAPI
  3. from app.api.auth import router as auth_router
  4. from app.api.canvas import canvas_router
  5. from app.api.chat import router as chat_router
  6. from app.api.agent import router as agent_router
  7. from app.api.dialog import dialog_router
  8. from app.api.excel import router as excel_router
  9. from app.api.files import router as files_router
  10. from app.api.knowledge import knowledge_router
  11. from app.api.organization import dept_router
  12. from app.api.report import router as report_router
  13. from app.api.resource import menu_router
  14. from app.api.user import user_router
  15. from app.api.group import group_router
  16. from app.api.role import role_router
  17. from app.models.base_model import init_db
  18. from app.task.fetch_agent import sync_agents, initialize_agents
  19. # 使用 Lifespan 事件处理程序
  20. @asynccontextmanager
  21. async def lifespan(app: FastAPI):
  22. # 初始化代理
  23. initialize_agents()
  24. # 在应用启动时同步代理
  25. sync_agents()
  26. yield
  27. # 在应用关闭时执行清理操作(如果需要)
  28. pass
  29. init_db()
  30. app = FastAPI(
  31. title="basic_rag_gateway",
  32. version="0.1",
  33. description="",
  34. lifespan=lifespan
  35. )
  36. app.include_router(auth_router, prefix='/api/auth', tags=["auth"])
  37. app.include_router(chat_router, prefix='/api/chat', tags=["chat"])
  38. app.include_router(agent_router, prefix='/api/agent', tags=["agent"])
  39. app.include_router(excel_router, prefix='/api/document', tags=["document"])
  40. app.include_router(files_router, prefix='/api/files', tags=["files"])
  41. app.include_router(report_router, prefix='/api/report', tags=["report"])
  42. app.include_router(user_router, prefix='/api/user', tags=["user"])
  43. app.include_router(group_router, prefix='/api/group', tags=["group"])
  44. app.include_router(role_router, prefix='/api/role', tags=["role"])
  45. app.include_router(dept_router, prefix='/api/dept', tags=["dept"])
  46. app.include_router(menu_router, prefix='/api/menu', tags=["menu"])
  47. app.include_router(knowledge_router, prefix='/api/knowledge', tags=["knowledge"])
  48. app.include_router(dialog_router, prefix='/api/dialog', tags=["dialog"])
  49. app.include_router(canvas_router, prefix='/api/canvas', tags=["canvas"])
  50. if __name__ == "__main__":
  51. import uvicorn
  52. uvicorn.run(app, host="0.0.0.0", port=9201)