aidress/app/main.py
2025-03-21 17:06:54 +08:00

68 lines
1.8 KiB
Python

from fastapi import FastAPI, HTTPException
from fastapi.middleware.cors import CORSMiddleware
import os
import logging
from dotenv import load_dotenv
from app.routers import dashscope_router, qcloud_router, dress_router, tryon_router
from app.utils.config import get_settings
from app.database import Base, engine
# 创建数据库表
Base.metadata.create_all(bind=engine)
# 加载环境变量
load_dotenv()
# 配置日志
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
)
logger = logging.getLogger(__name__)
app = FastAPI(
title="AI-Dressing API",
description="基于 DashScope 的 AI 服务 API",
version="0.1.0",
)
# 添加 CORS 中间件
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # 在生产环境中,应该指定确切的域名
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# 注册路由
app.include_router(dashscope_router.router, prefix="/api/dashscope", tags=["DashScope"])
app.include_router(qcloud_router.router, prefix="/api/qcloud", tags=["腾讯云"])
app.include_router(dress_router.router, prefix="/api/dresses", tags=["服装"])
app.include_router(tryon_router.router, prefix="/api/tryons", tags=["试穿"])
@app.get("/", tags=["健康检查"])
async def health_check():
"""API 健康检查端点"""
return {"status": "正常", "message": "服务运行中"}
@app.get("/info", tags=["服务信息"])
async def get_info():
"""获取服务基本信息"""
settings = get_settings()
return {
"app_name": "AI-Dressing API",
"version": "0.1.0",
"debug_mode": settings.debug,
}
if __name__ == "__main__":
import uvicorn
settings = get_settings()
uvicorn.run(
"app.main:app",
host=settings.host,
port=settings.port,
reload=settings.debug,
)