main.py 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. from contextlib import asynccontextmanager
  2. # from apscheduler.schedulers.background import BackgroundScheduler
  3. from fastapi import FastAPI
  4. from fastapi.middleware.cors import CORSMiddleware
  5. from starlette.staticfiles import StaticFiles
  6. from app.api.auth import router as auth_router
  7. from app.api.canvas import canvas_router
  8. from app.api.chat import router as chat_router
  9. from app.api.agent import router as agent_router
  10. from app.api.dialog import dialog_router
  11. from app.api.excel import router as excel_router
  12. from app.api.files import router as files_router
  13. from app.api.knowledge import knowledge_router
  14. from app.api.label import label_router
  15. from app.api.llm import llm_router
  16. from app.api.organization import dept_router
  17. from app.api.v2.public_api import public_api
  18. from app.api.report import router as report_router
  19. from app.api.resource import menu_router
  20. # from app.api.sync_data import sync_router
  21. from app.api.user import user_router
  22. from app.api.group import group_router
  23. from app.api.role import role_router
  24. from app.task.fetch_agent import sync_agents, initialize_agents, sync_agents_v2
  25. from app.init_config.init_run_data import sync_default_data
  26. # 使用 Lifespan 事件处理程序
  27. @asynccontextmanager
  28. async def lifespan(app: FastAPI):
  29. # 初始化代理
  30. initialize_agents()
  31. # 在应用启动时同步代理
  32. sync_agents()
  33. await sync_default_data()
  34. sync_agents_v2()
  35. yield
  36. # 在应用关闭时执行清理操作(如果需要)
  37. pass
  38. # init_db()
  39. app = FastAPI(
  40. title="basic_rag_gateway",
  41. version="0.1",
  42. description="",
  43. lifespan=lifespan
  44. )
  45. # 设置 CORS 中间件
  46. # app.add_middleware(
  47. # CORSMiddleware,
  48. # allow_origins=["http://192.168.20.119:9303", "http://192.168.20.119:9301", "http://smartai.com:8293","http://localhost:9303", "http://127.0.0.1:9303","http://localhost:5173","http://192.168.20.158:5173"],
  49. # allow_credentials=True,
  50. # allow_methods=["*"], # 允许所有方法
  51. # allow_headers=["*"], # 允许所有头部
  52. # )
  53. # 创建调度器
  54. # scheduler = BackgroundScheduler()
  55. # scheduler.add_job(sync_resource, 'interval', minutes=1, id="sync_resource_data")
  56. # scheduler.start()
  57. app.include_router(auth_router, prefix='/api/auth', tags=["auth"])
  58. app.include_router(chat_router, prefix='/api/chat', tags=["chat"])
  59. app.include_router(agent_router, prefix='/api/agent', tags=["agent"])
  60. app.include_router(excel_router, prefix='/api/document', tags=["document"])
  61. app.include_router(files_router, prefix='/api/files', tags=["files"])
  62. app.include_router(report_router, prefix='/api/report', tags=["report"])
  63. app.include_router(user_router, prefix='/api/user', tags=["user"])
  64. app.include_router(group_router, prefix='/api/group', tags=["group"])
  65. app.include_router(role_router, prefix='/api/role', tags=["role"])
  66. app.include_router(dept_router, prefix='/api/dept', tags=["dept"])
  67. app.include_router(menu_router, prefix='/api/menu', tags=["menu"])
  68. app.include_router(knowledge_router, prefix='/api/knowledge', tags=["knowledge"])
  69. app.include_router(llm_router, prefix='/api/llm', tags=["llm"])
  70. app.include_router(dialog_router, prefix='/api/dialog', tags=["dialog"])
  71. app.include_router(canvas_router, prefix='/api/canvas', tags=["canvas"])
  72. app.include_router(label_router, prefix='/api/label', tags=["label"])
  73. app.include_router(public_api, prefix='/v1/api', tags=["public_api"])
  74. app.mount("/static", StaticFiles(directory="app/images"), name="static")
  75. if __name__ == "__main__":
  76. import uvicorn
  77. uvicorn.run(app, host="0.0.0.0", port=9201)