""" 模板生成模块 此模块包含 HTML 页面生成函数,用于管理界面和日志查看器 注意: - 这些函数需要通过 import main 动态获取全局变量 - 避免在模块顶层导入 main,防止循环依赖 """ from fastapi import Request, Header, HTTPException from fastapi.responses import HTMLResponse def generate_admin_html(request: Request, multi_account_mgr, show_hide_tip: bool = False) -> str: """生成管理页面HTML - 端点带Key参数完整版""" # 动态导入 main 模块的变量(避免循环依赖) import main # 获取当前页面的完整URL current_url = main.get_base_url(request) # 获取错误统计 error_count = 0 with main.log_lock: for log in main.log_buffer: if log.get("level") in ["ERROR", "CRITICAL"]: error_count += 1 # --- 1. 构建提示信息 --- hide_tip = "" if show_hide_tip: hide_tip = """
main.HIDE_HOME_PAGE=true
{api_endpoint}
{api_key_display}
gemini-3-pro-preview 支持绘图./images暂无账户
gemini-3-pro-preview 支持绘图。{main.IMAGE_DIR}{current_url}
| POST | /{main.PATH_PREFIX}/v1/chat/completions | OpenAI 兼容对话接口 |
| GET | /{main.PATH_PREFIX}/v1/models | 获取模型列表 |
| GET | /{main.PATH_PREFIX}/admin | 管理首页 |
| GET | /{main.PATH_PREFIX}/admin/health?key={{main.ADMIN_KEY}} | 健康检查 (需 Key) |
| GET | /{main.PATH_PREFIX}/admin/accounts?key={{main.ADMIN_KEY}} | 账户状态 JSON (需 Key) |
| GET | /{main.PATH_PREFIX}/admin/log?key={{main.ADMIN_KEY}} | 获取日志 JSON (需 Key) |
| GET | /{main.PATH_PREFIX}/admin/log/html?key={{main.ADMIN_KEY}} | 日志查看器 HTML (需 Key) |
| DEL | /{main.PATH_PREFIX}/admin/log?confirm=yes&key={{main.ADMIN_KEY}} | 清空系统日志 (需 Key) |
| GET | /public/stats | 公开统计数据 |
| GET | /public/log | 公开日志 (JSON, 脱敏) |
| GET | /public/log/html | 公开日志查看器 (HTML) |
| GET | /docs | Swagger API 文档 |
| GET | /redoc | ReDoc API 文档 |