import logging from pathlib import Path from dotenv import load_dotenv BASE_DIR = Path(__file__).parent load_dotenv(BASE_DIR / ".env", override=False) logging.basicConfig( level=logging.DEBUG, format="%(asctime)s [%(levelname)s] %(name)s: %(message)s", datefmt="%H:%M:%S", ) # 压制第三方库的 DEBUG 噪音 logging.getLogger("httpx").setLevel(logging.WARNING) logging.getLogger("httpcore").setLevel(logging.WARNING) logging.getLogger("openai").setLevel(logging.WARNING) logging.getLogger("uvicorn").setLevel(logging.INFO) # 路由必须在 load_dotenv 之后导入,因为模块级代码会读取环境变量 from routes.chat_callback import router as chat_callback_router # noqa: E402 from routes.debug import router as debug_router # noqa: E402 from routes.proxy import router as proxy_router # noqa: E402 from routes.scenes import router as scenes_router # noqa: E402 from fastapi import FastAPI # noqa: E402 from fastapi.middleware.cors import CORSMiddleware # noqa: E402 app = FastAPI() app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"], ) app.include_router(proxy_router) app.include_router(scenes_router) app.include_router(chat_callback_router) app.include_router(debug_router) if __name__ == "__main__": import uvicorn uvicorn.run("server:app", host="0.0.0.0", port=3001, reload=True)