# -*- coding: utf-8 -*- """首页和 WebUI 路由""" import os from fastapi import APIRouter, Request from fastapi.responses import HTMLResponse, FileResponse from core.config import STATIC_ADMIN_DIR router = APIRouter() # 首页 HTML(内嵌避免依赖模板目录) WELCOME_HTML = """ DS2API - DeepSeek to OpenAI API

DeepSeek to OpenAI & Claude Compatible API Interface

🎛️ 管理面板 📡 API 状态 📦 GitHub
🚀

全面兼容

完美适配 OpenAI 与 Claude API 格式,无缝集成现有工具。

⚖️

负载均衡

内置智能轮询机制,支持多账号并发,稳定高效。

🧠

深度思考

完整支持 DeepSeek-R1 推理过程输出,让思考可见。

🔍

联网搜索

集成 DeepSeek 原生搜索能力,获取最新实时资讯。

""" @router.get("/") def index(request: Request): return HTMLResponse(content=WELCOME_HTML) @router.get("/admin") @router.get("/admin/{path:path}") async def webui(request: Request, path: str = ""): """提供 WebUI 静态文件""" # 检查 static/admin 目录是否存在 if not os.path.isdir(STATIC_ADMIN_DIR): return HTMLResponse( content="

WebUI not built

Run cd webui && npm run build first.

", status_code=404 ) # 如果请求的是具体文件(如 js, css) if path and "." in path: file_path = os.path.join(STATIC_ADMIN_DIR, path) if os.path.isfile(file_path): return FileResponse(file_path) return HTMLResponse(content="Not Found", status_code=404) # 否则返回 index.html(SPA 路由) index_path = os.path.join(STATIC_ADMIN_DIR, "index.html") if os.path.isfile(index_path): return FileResponse(index_path) return HTMLResponse(content="index.html not found", status_code=404)