47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
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)
|