minimax-tools / app /main.py
Ray
Initial commit: MiniMax Tools for Hugging Face Space
b17403a
from fastapi import FastAPI, Request
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
from fastapi.responses import HTMLResponse
import os
from routes import music, vlm, voice_design, image_generation
from utils.monitor import setup_monitoring
from utils.cleanup import start_cleanup_task
app = FastAPI(title="MiniMax Tools", version="1.0.0")
# 静态文件和模板
# 检查 static 目录是否存在
if os.path.exists("static"):
app.mount("/static", StaticFiles(directory="static"), name="static")
templates = Jinja2Templates(directory="templates")
# 设置监控
setup_monitoring(app)
# 启动清理任务
start_cleanup_task()
# 注册路由
app.include_router(music.router, prefix="/music", tags=["Music"])
app.include_router(vlm.router, prefix="/vlm", tags=["VLM"])
app.include_router(voice_design.router, prefix="/voice-design", tags=["Voice Design"])
app.include_router(image_generation.router, prefix="/image-generation", tags=["Image Generation"])
@app.get("/", response_class=HTMLResponse)
async def home(request: Request):
return templates.TemplateResponse("index.html", {"request": request})
@app.get("/admin", response_class=HTMLResponse)
async def admin(request: Request):
from utils.monitor import get_stats
stats = get_stats()
return templates.TemplateResponse("admin.html", {"request": request, "stats": stats})
@app.get("/health")
async def health_check():
return {"status": "healthy", "service": "minimax-tools"}
if __name__ == "__main__":
import uvicorn
port = int(os.getenv("PORT", 7860))
uvicorn.run(app, host="0.0.0.0", port=port)