Files

52 lines
1.4 KiB
Python

"""电商套图工作台 - FastAPI 入口。"""
from __future__ import annotations
import logging
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles
from api import export, generate, proxy, suites, upload
from config import get_settings
from services.storage import media_root
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(name)s: %(message)s")
app = FastAPI(title="电商套图工作台", version="0.1.0")
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # 插件 background 无 CORS 限制,这里兜底
allow_methods=["*"],
allow_headers=["*"],
)
app.include_router(generate.router)
app.include_router(suites.router)
app.include_router(proxy.router)
app.include_router(upload.router)
app.include_router(export.router)
# 静态托管生成的图片
app.mount("/media", StaticFiles(directory=str(media_root())), name="media")
@app.get("/api/health")
async def health():
settings = get_settings()
return {
"ok": True,
"provider": settings.image_provider,
"ark_configured": bool(settings.ark_api_key),
"dashscope_configured": bool(settings.dashscope_api_key),
"rightapi_configured": bool(settings.rightapi_api_key),
}
if __name__ == "__main__":
import uvicorn
settings = get_settings()
uvicorn.run("main:app", host=settings.host, port=settings.port, reload=False)