import uvicorn from contextlib import asynccontextmanager from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from database import init_db, engine from config import settings from routers import templates, models, generate, export from services.minio_client import init_buckets @asynccontextmanager async def lifespan(app: FastAPI): await init_db() await init_buckets() # 初始化 MinIO 存储桶 yield await engine.dispose() app = FastAPI(title=settings.APP_NAME, version=settings.APP_VERSION, lifespan=lifespan) app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.include_router(templates.router, prefix="/api/v1/templates", tags=["模板管理"]) app.include_router(models.router, prefix="/api/v1/models", tags=["模型管理"]) app.include_router(generate.router, prefix="/api/v1/generate", tags=["生成管理"]) app.include_router(export.router, prefix="/api/v1/export", tags=["导出管理"]) @app.get("/") async def root(): return {"message": "AI 文档模板生成系统 API", "version": settings.APP_VERSION} @app.get("/health") async def health(): return {"status": "ok"} if __name__ == "__main__": uvicorn.run("main:app", host=settings.HOST, port=settings.PORT, reload=settings.DEBUG)