You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
3.5 KiB
78 lines
3.5 KiB
from contextlib import asynccontextmanager
|
|
from agentscope_runtime.engine import AgentApp
|
|
from database import init_db, async_engine
|
|
from modules.auth.router import router as auth_router
|
|
from modules.org.router import router as org_router
|
|
from modules.rbac.router import router as rbac_router
|
|
from modules.wecom.router import router as wecom_router
|
|
from modules.agent_manager.router import router as agent_manager_router
|
|
from modules.task.router import router as task_router
|
|
from modules.monitor.router import router as monitor_router
|
|
from modules.mcp_registry.router import router as mcp_router
|
|
from modules.flow_engine.router import router as flow_router
|
|
from modules.flow_engine.gateway import gateway_router
|
|
from modules.audit.router import router as audit_router
|
|
from modules.document.router import router as document_router
|
|
from modules.notification.router import router as notification_router
|
|
from modules.system.router import router as system_router
|
|
from modules.rag.router import router as rag_router
|
|
from modules.chat.router import router as chat_router
|
|
from modules.custom_tool.router import router as custom_tool_router
|
|
from modules.memory.router import router as memory_router
|
|
from modules.memory.manager import init_memory_manager, get_memory_manager
|
|
from modules.model_provider.router import router as model_provider_router
|
|
from websocket_manager import ws_manager
|
|
from middleware.rbac_middleware import rbac_middleware
|
|
from middleware.rate_limiter import rate_limit_middleware
|
|
from middleware.cache_manager import cache_manager
|
|
from database import AsyncSessionLocal
|
|
|
|
|
|
@asynccontextmanager
|
|
async def lifespan(app: AgentApp):
|
|
"""应用生命周期管理器,启动时初始化数据库和缓存,关闭时清理资源。"""
|
|
await init_db()
|
|
await cache_manager.connect()
|
|
await init_memory_manager(AsyncSessionLocal)
|
|
yield
|
|
await cache_manager.disconnect()
|
|
try:
|
|
mm = get_memory_manager()
|
|
await mm.redis.close()
|
|
except Exception:
|
|
pass
|
|
await async_engine.dispose()
|
|
|
|
|
|
app = AgentApp(
|
|
app_name="Enterprise AI Platform", # 应用名称
|
|
app_description="企业级 AI Agent 平台 - 双RBAC/企微集成/无代码流编排", # 应用描述
|
|
lifespan=lifespan,
|
|
docs_url="/docs",
|
|
redoc_url=None,
|
|
)
|
|
|
|
# 注册全局 HTTP 中间件
|
|
app.middleware("http")(rate_limit_middleware) # 速率限制中间件
|
|
app.middleware("http")(rbac_middleware) # RBAC 权限中间件
|
|
|
|
# 注册所有业务模块的路由
|
|
app.include_router(auth_router) # 认证模块
|
|
app.include_router(org_router) # 组织架构模块
|
|
app.include_router(rbac_router) # 权限管理模块
|
|
app.include_router(wecom_router) # 企业微信模块
|
|
app.include_router(agent_manager_router) # 智能体管理模块
|
|
app.include_router(task_router) # 任务管理模块
|
|
app.include_router(monitor_router) # 监控模块
|
|
app.include_router(mcp_router) # MCP 服务注册模块
|
|
app.include_router(flow_router) # 流程定义管理模块
|
|
app.include_router(gateway_router) # 流程 API 网关模块
|
|
app.include_router(audit_router) # 审计日志模块
|
|
app.include_router(document_router) # 文档管理模块
|
|
app.include_router(notification_router) # 通知模块
|
|
app.include_router(system_router) # 系统设置模块
|
|
app.include_router(rag_router) # 知识库模块
|
|
app.include_router(chat_router) # 对话模块
|
|
app.include_router(custom_tool_router) # 自定义工具模块
|
|
app.include_router(memory_router) # 记忆管理模块
|
|
app.include_router(model_provider_router) # 模型供应商管理模块
|