Files
ai_api_web/README.md
2026-01-22 18:26:47 +08:00

7.7 KiB
Raw Blame History

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. 进入后端目录:
cd backend
  1. 创建虚拟环境(推荐):
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate
  1. 安装依赖:
pip install -r requirements.txt
  1. 配置环境变量(可选): 创建 .env 文件:
SECRET_KEY=your-secret-key
JWT_SECRET_KEY=your-jwt-secret-key
DATABASE_URL=sqlite:///claude_code.db
CORS_ORIGINS=http://localhost:5173
  1. 运行后端服务:
python app.py

后端服务将在 http://localhost:5000 启动。

前端设置

  1. 进入前端目录:
cd frontend
  1. 安装依赖:
npm install
  1. 启动开发服务器:
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: 是否激活

开发说明

初始化模型数据

运行以下命令初始化示例模型数据:

cd backend
python init_models.py

这将创建6个示例模型供测试使用。

数据库迁移

项目使用 SQLite 作为默认数据库,首次运行会自动创建表结构。

如需使用 MySQL修改 config.py 中的 SQLALCHEMY_DATABASE_URI

生产环境部署

  1. 修改后端配置:

    • 设置强密码的 SECRET_KEYJWT_SECRET_KEY
    • 配置生产数据库
    • 设置正确的 CORS_ORIGINS
  2. 构建前端:

cd frontend
npm run build
  1. 部署:
    • 后端:使用 Gunicorn 或 uWSGI
    • 前端:将 dist 目录部署到 Nginx 或其他静态文件服务器

注意事项

  1. 默认使用 SQLite 数据库,生产环境建议使用 MySQL 或 PostgreSQL
  2. JWT token 默认 24 小时过期,可在 config.py 中调整
  3. 充值功能需要集成真实的支付接口(支付宝、微信等)
  4. 邀请奖励的返佣比例需要在业务逻辑中实现

许可证

MIT License

联系方式

如有问题,请联系管理员微信: cursor2028