Files
new-api/.trae/documents/prd.md
T
admin e83ec743c8
Docker Build / Build and Push Docker Image (push) Failing after 1m35s
feat: add DaisyUI frontend theme and document management system
2026-06-13 01:36:06 +08:00

171 lines
8.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ModelsToken 管理平台 - 产品需求文档 (PRD)
## 1. 产品概述
ModelsToken 是一个 AI API 管理与分发平台,为开发者和企业提供统一的 AI 模型接入、密钥管理、用量计费、渠道代理等一站式服务。新前端将采用 React + DaisyUI 5 + TypeScript 构建,替换现有的 Default/Classic 双前端,同时新增本地文档管理功能。
- 目标用户:AI 应用开发者、企业运维人员、API 服务管理者
- 核心价值:简化 AI API 的管理复杂度,提供直观的操作界面和完整的文档支持
## 2. 核心功能
### 2.1 用户角色
| 角色 | 注册方式 | 核心权限 |
|------|----------|----------|
| 普通用户 | 用户名/邮箱/OAuth | 密钥管理、充值、订阅、日志查看、文档访问 |
| 管理员 | 由超级管理员指定 | 渠道管理、用户管理、兑换码、模型管理、订阅管理 |
| 超级管理员 | 系统初始化 | 全部权限 + 系统设置 |
### 2.2 功能模块
#### 公共页面(无需登录)
1. **首页**:Hero 区域、特性展示、快速入门指引
2. **登录页**:用户名/密码、OAuth 登录(GitHub/Discord/OIDC/LinuxDO/微信/Telegram/自定义)
3. **注册页**:注册表单 + Turnstile 人机验证
4. **忘记密码**:邮箱重置链接
5. **模型定价**:模型价格列表、搜索筛选
6. **关于页面**:项目信息、版本、许可证
7. **用户协议/隐私政策**
8. **初始化向导**:首次部署配置
#### 用户功能(需登录)
1. **仪表盘**:额度概览、使用趋势图、API 信息面板、公告、FAQ
2. **API 密钥管理**:创建/编辑/删除/批量操作、额度限制、模型限制、IP 限制
3. **钱包/充值**:余额查看、兑换码充值、在线支付(易支付/Stripe/Creem/Waffo)、签到
4. **订阅管理**:查看计划、购买订阅、当前订阅状态
5. **使用日志**:请求日志搜索/筛选、MJ 日志、任务日志、统计图表
6. **个人设置**:资料编辑、2FA 设置、Passkey 管理、OAuth 绑定、语言切换
7. **Playground**API 在线调试、Chat Completions 测试
8. **文档中心**(新增):本地文档管理、分类浏览、搜索、Markdown 渲染
#### 管理员功能
1. **渠道管理**:CRUD、测试、余额更新、标签管理、批量操作、多密钥、Codex OAuth、Ollama 管理
2. **用户管理**:列表/搜索/创建/编辑/升降级/启禁/额度调整
3. **兑换码管理**CRUD、批量删除无效码
4. **模型管理**:模型元数据 CRUD、上游同步、缺失模型检测
5. **供应商管理**CRUD
6. **订阅管理**:计划 CRUD、用户订阅管理
7. **部署管理**io.net 部署 CRUD、容器管理、日志
#### 超级管理员 - 系统设置
1. **站点设置**:名称/Logo/页脚/公告/首页内容/服务器地址
2. **认证设置**:注册/登录开关、OAuth 配置、Turnstile、Passkey、自定义 OAuth
3. **计费设置**:额度/倍率/支付配置/签到/分组倍率
4. **内容设置**:公告/FAQ/Uptime Kuma/聊天/绘图/Midjourney
5. **模型设置**:透传/思维模型/Gemini/Claude 配置
6. **运维设置**:重试/自动禁用/SMTP/性能监控/日志
7. **安全设置**:速率限制/敏感词/SSRF 防护/IP 过滤
### 2.3 新增功能 - 本地文档管理
| 功能 | 说明 |
|------|------|
| 文档分类 | 支持多级分类树,管理员可创建/编辑/删除分类 |
| 文档 CRUD | 管理员创建/编辑/删除文档,支持 Markdown 编辑器 |
| 文档浏览 | 用户按分类浏览文档,支持搜索 |
| 文档搜索 | 全文搜索文档标题和内容 |
| 文档版本 | 文档更新历史记录 |
| 权限控制 | 可设置文档为公开/登录可见/管理员可见 |
## 3. 核心流程
### 3.1 用户认证流程
```mermaid
flowchart TD
"访问平台" --> "已登录?"
"已登录?" -->|"是"| "仪表盘"
"已登录?" -->|"否"| "登录页"
"登录页" --> "输入凭证"
"输入凭证" --> "需要2FA?"
"需要2FA?" -->|"是"| "输入2FA码"
"需要2FA?" -->|"否"| "验证成功"
"输入2FA码" --> "验证成功"
"验证成功" --> "仪表盘"
"登录页" --> "OAuth登录"
"OAuth登录" --> "OAuth回调"
"OAuth回调" --> "已绑定账号?"
"已绑定账号?" -->|"是"| "仪表盘"
"已绑定账号?" -->|"否"| "绑定/注册"
```
### 3.2 API 调用流程
```mermaid
flowchart TD
"创建API密钥" --> "配置密钥参数"
"配置密钥参数" --> "使用密钥调用API"
"使用密钥调用API" --> "平台路由到渠道"
"平台路由到渠道" --> "返回结果"
"返回结果" --> "记录日志"
"记录日志" --> "扣除额度"
```
### 3.3 文档管理流程(新增)
```mermaid
flowchart TD
"管理员创建分类" --> "创建文档"
"创建文档" --> "Markdown编辑"
"Markdown编辑" --> "设置可见性"
"设置可见性" --> "发布文档"
"发布文档" --> "用户浏览/搜索"
```
## 4. 用户界面设计
### 4.1 设计风格
- **主色调**:深蓝 (#1e293b) + 亮蓝 (#3b82f6) 渐变,搭配 DaisyUI 的 `business` 主题
- **辅助色**:翡翠绿 (#10b981) 用于成功/在线状态,琥珀色 (#f59e0b) 用于警告
- **按钮风格**:DaisyUI 默认圆角按钮,主要操作用 `btn-primary`,危险操作用 `btn-error`
- **字体**JetBrains Mono(代码/密钥)+ Noto Sans SC(中文正文)
- **布局风格**:左侧固定导航栏 + 顶部状态栏 + 主内容区,响应式折叠
- **图标**Lucide React 图标库
- **动效**DaisyUI 内置动画 + 页面切换淡入
### 4.2 页面设计概览
| 页面 | 模块 | UI 元素 |
|------|------|---------|
| 首页 | Hero | 渐变背景、特性卡片、快速开始按钮 |
| 登录 | 表单 | 居中卡片、OAuth 按钮组、Turnstile |
| 仪表盘 | 统计卡片 | 4 列额度卡片、折线图、公告栏、API 信息 |
| 密钥管理 | 数据表 | 搜索栏、筛选器、表格、批量操作栏 |
| 渠道管理 | 数据表+表单 | 标签筛选、测试按钮、多密钥管理抽屉 |
| 系统设置 | 标签页 | 7 大分类侧边导航、表单分组、开关/输入框 |
| 文档中心 | 侧边树+内容 | 分类树导航、Markdown 渲染、搜索框、面包屑 |
| Playground | 分栏 | 左侧参数面板、右侧响应面板、模型选择器 |
### 4.3 响应式设计
- 桌面优先(1280px+
- 平板适配(768px-1279px):侧边栏折叠为抽屉
- 移动端适配(<768px):单列布局,表格改为卡片列表
### 4.4 布局结构
```
┌──────────────────────────────────────────────┐
│ 顶部导航栏 (Navbar) │
│ Logo | 搜索 | 通知 | 用户菜单 | 主题切换 │
├──────┬───────────────────────────────────────┤
│ │ │
│ 侧边 │ 主内容区 │
│ 导航 │ │
│ 栏 │ ┌─────────────────────────────────┐ │
│ │ │ 面包屑 + 页面标题 + 操作按钮 │ │
│ 仪表盘│ ├─────────────────────────────────┤ │
│ 密钥 │ │ │ │
│ 渠道 │ │ 页面内容 │ │
│ 用户 │ │ │ │
│ 日志 │ │ │ │
│ 钱包 │ └─────────────────────────────────┘ │
│ 订阅 │ │
│ 文档 │ │
│ 设置 │ │
│ │ │
└──────┴───────────────────────────────────────┘
```