# Claude Code 蓝星 - 完整网站项目 这是一个基于 Vue 3 + Flask 的完整网站项目,包含用户注册登录、令牌管理、数据看板、使用日志、充值等功能。 ## 项目结构 ``` . ├── backend/ # Flask 后端 │ ├── app.py # 应用入口 │ ├── config.py # 配置文件 │ ├── requirements.txt # Python 依赖 │ ├── models/ # 数据模型 │ │ ├── user.py # 用户模型 │ │ ├── token.py # 令牌模型 │ │ ├── usage_log.py # 使用日志模型 │ │ └── ... │ └── routes/ # API 路由 │ ├── auth.py # 认证相关 │ ├── tokens.py # 令牌管理 │ ├── dashboard.py # 数据看板 │ └── ... ├── frontend/ # Vue 3 前端 │ ├── src/ │ │ ├── api/ # API 接口 │ │ ├── views/ # 页面组件 │ │ ├── components/ # 通用组件 │ │ ├── stores/ # Pinia 状态管理 │ │ ├── router/ # 路由配置 │ │ └── ... │ ├── package.json │ └── vite.config.js └── README.md ``` ## 功能特性 ### 前端功能 - ✅ 首页展示(服务介绍、分组选择、功能特色) - ✅ 用户注册/登录 - ✅ 模型广场(模型浏览、筛选、搜索) - ✅ 控制台数据看板 - ✅ 令牌管理(增删改查、批量操作) - ✅ 使用日志查询 - ✅ 账户充值(支付宝/微信、兑换码) - ✅ 邀请奖励系统 - ✅ 个人设置 ### 后端功能 - ✅ JWT 认证系统 - ✅ 用户注册/登录 API - ✅ 模型管理 API(列表、筛选、搜索) - ✅ 令牌管理 API - ✅ 数据统计 API - ✅ 使用日志 API - ✅ 充值订单 API - ✅ 邀请奖励 API ## 技术栈 ### 前端 - Vue 3 (Composition API) - Vue Router 4 - Pinia (状态管理) - Element Plus (UI 组件库) - Axios (HTTP 客户端) - Vite (构建工具) ### 后端 - Flask - Flask-SQLAlchemy (ORM) - Flask-JWT-Extended (JWT 认证) - Flask-CORS (跨域支持) - bcrypt (密码加密) - SQLite/MySQL (数据库) ## 快速开始 ### 后端设置 1. 进入后端目录: ```bash cd backend ``` 2. 创建虚拟环境(推荐): ```bash python -m venv venv # Windows venv\Scripts\activate # Linux/Mac source venv/bin/activate ``` 3. 安装依赖: ```bash pip install -r requirements.txt ``` 4. 配置环境变量(可选): 创建 `.env` 文件: ``` SECRET_KEY=your-secret-key JWT_SECRET_KEY=your-jwt-secret-key DATABASE_URL=sqlite:///claude_code.db CORS_ORIGINS=http://localhost:5173 ``` 5. 运行后端服务: ```bash python app.py ``` 后端服务将在 `http://localhost:5000` 启动。 ### 前端设置 1. 进入前端目录: ```bash cd frontend ``` 2. 安装依赖: ```bash npm install ``` 3. 启动开发服务器: ```bash npm run dev ``` 前端服务将在 `http://localhost:5173` 启动,并且已经配置为允许所有IP访问。 **从其他设备访问:** - 确保前端和后端服务器在同一网络下 - 使用服务器IP地址访问:`http://<服务器IP>:5173` - 例如:`http://192.168.1.100:5173` - 后端API已配置为允许跨域访问 ## API 文档 ### 认证相关 #### 用户注册 ``` POST /api/auth/register Body: { "username": "string", "password": "string", "confirm_password": "string", "invite_code": "string" (可选) } ``` #### 用户登录 ``` POST /api/auth/login Body: { "username": "string", "password": "string" } ``` #### 获取当前用户 ``` GET /api/auth/me Headers: { "Authorization": "Bearer {token}" } ``` ### 令牌管理 #### 获取令牌列表 ``` GET /api/tokens?keyword=xxx&key=xxx Headers: { "Authorization": "Bearer {token}" } ``` #### 创建令牌 ``` POST /api/tokens Headers: { "Authorization": "Bearer {token}" } Body: { "name": "string", "group": "string", "remaining_quota": number (可选), "total_quota": number (可选), "ip_restriction": "string" (可选) } ``` #### 更新令牌 ``` PUT /api/tokens/{id} Headers: { "Authorization": "Bearer {token}" } Body: { "name": "string", ... } ``` #### 删除令牌 ``` DELETE /api/tokens/{id} Headers: { "Authorization": "Bearer {token}" } ``` ### 数据看板 #### 获取统计数据 ``` GET /api/dashboard/stats Headers: { "Authorization": "Bearer {token}" } ``` ### 使用日志 #### 获取使用日志 ``` GET /api/logs/usage?page=1&per_page=20&start_date=xxx&end_date=xxx&token_name=xxx&model_name=xxx&group=xxx Headers: { "Authorization": "Bearer {token}" } ``` ### 模型广场 #### 获取模型列表 ``` GET /api/models?page=1&per_page=20&provider=xxx&tags=xxx&token_group=xxx&billing_type=xxx&endpoint_type=xxx&search=xxx&show_recharge_price=true&show_multiplier=true ``` #### 获取单个模型详情 ``` GET /api/models/{id} ``` #### 获取筛选选项 ``` GET /api/models/filters ``` ### 充值相关 #### 获取充值信息 ``` GET /api/recharge/info Headers: { "Authorization": "Bearer {token}" } ``` #### 创建充值订单 ``` POST /api/recharge/create Headers: { "Authorization": "Bearer {token}" } Body: { "amount": number, "payment_method": "alipay" | "wechat" } ``` #### 兑换码充值 ``` POST /api/recharge/exchange Headers: { "Authorization": "Bearer {token}" } Body: { "code": "string" } ``` ## 数据库模型 ### User (用户) - id: 主键 - username: 用户名(唯一) - email: 邮箱(可选) - password_hash: 密码哈希 - balance: 账户余额 - total_consumption: 历史消耗 - request_count: 请求次数 - user_group: 用户分组 - invite_code: 邀请码 - invited_by: 邀请人ID ### Token (令牌) - id: 主键 - user_id: 用户ID - name: 令牌名称 - key: API密钥 - status: 状态(enabled/disabled) - remaining_quota: 剩余额度 - total_quota: 总额度 - group: 分组 - available_models: 可用模型 - ip_restriction: IP限制 - expires_at: 过期时间 ### UsageLog (使用日志) - id: 主键 - user_id: 用户ID - token_id: 令牌ID - log_type: 日志类型 - model: 模型名称 - input_tokens: 输入Token数 - output_tokens: 输出Token数 - cost: 花费 - created_at: 创建时间 ### Model (模型) - id: 主键 - name: 模型名称(唯一) - provider: 供应商(Anthropic、OpenAI等) - description: 模型描述 - input_price: 输入价格(每100万tokens) - output_price: 输出价格(每100万tokens) - billing_type: 计费类型(pay_as_you_go按量计费、per_request按次计费) - endpoint_type: 端点类型(anthropic、openai) - tags: 标签(JSON数组) - available_groups: 可用分组(JSON数组) - multiplier: 倍率 - is_active: 是否激活 ## 开发说明 ### 初始化模型数据 运行以下命令初始化示例模型数据: ```bash cd backend python init_models.py ``` 这将创建6个示例模型供测试使用。 ### 数据库迁移 项目使用 SQLite 作为默认数据库,首次运行会自动创建表结构。 如需使用 MySQL,修改 `config.py` 中的 `SQLALCHEMY_DATABASE_URI`。 ### 生产环境部署 1. 修改后端配置: - 设置强密码的 `SECRET_KEY` 和 `JWT_SECRET_KEY` - 配置生产数据库 - 设置正确的 `CORS_ORIGINS` 2. 构建前端: ```bash cd frontend npm run build ``` 3. 部署: - 后端:使用 Gunicorn 或 uWSGI - 前端:将 `dist` 目录部署到 Nginx 或其他静态文件服务器 ## 注意事项 1. 默认使用 SQLite 数据库,生产环境建议使用 MySQL 或 PostgreSQL 2. JWT token 默认 24 小时过期,可在 `config.py` 中调整 3. 充值功能需要集成真实的支付接口(支付宝、微信等) 4. 邀请奖励的返佣比例需要在业务逻辑中实现 ## 许可证 MIT License ## 联系方式 如有问题,请联系管理员微信: cursor2028