This commit is contained in:
2026-02-26 13:43:44 +08:00
parent 2c2db92ae9
commit 68200cdfe6
51 changed files with 2107 additions and 351 deletions
+65
View File
@@ -0,0 +1,65 @@
import logging
from contextlib import asynccontextmanager
import uvicorn
from fastapi import FastAPI
from config import Config
from workflows.workflow_manager import WorkflowManager
from services.nacos_service import load_nacos_config, load_service_config, NacosManager
from services.tool_router import ToolRouter
from api import endpoints
logger = logging.getLogger(__name__)
def create_app() -> FastAPI:
"""创建 FastAPI 应用"""
service_config = load_service_config()
nacos_config = load_nacos_config()
default_model_section = Config._config.get("app", "model_section", fallback=Config.DEFAULT_MODEL_SECTION)
workflow_manager = WorkflowManager(default_model_section=default_model_section)
nacos_manager = NacosManager(nacos_config=nacos_config, service_config=service_config)
tool_router = ToolRouter()
@asynccontextmanager
async def lifespan(app: FastAPI):
"""应用生命周期管理"""
logger.info("🚀 服务启动中...")
app.state.workflow_manager = workflow_manager
app.state.nacos_manager = nacos_manager
app.state.service_config = service_config
app.state.tool_router = tool_router
await nacos_manager.start()
logger.info("✅ 服务准备就绪: %s on %s:%s", service_config.service_name, service_config.ip, service_config.port)
yield
logger.info("🛑 服务关闭中...")
await nacos_manager.stop()
logger.info("✅ 服务已关闭")
app = FastAPI(
title="More Dots API",
description="More Dots 工作流服务",
version=service_config.metadata.get("version", "1.0.0"),
lifespan=lifespan,
)
app.include_router(endpoints.router)
return app
app = create_app()
if __name__ == "__main__":
service_config = load_service_config()
uvicorn.run(
"server:app",
host=service_config.host,
port=service_config.port,
reload=False,
log_level="info",
)