2025-12-14 15:40:49 +08:00
2025-12-14 15:40:49 +08:00
2025-12-14 15:40:49 +08:00
2025-12-14 15:40:49 +08:00
2025-12-14 15:40:49 +08:00
2025-12-14 15:40:49 +08:00
2025-12-14 15:40:49 +08:00

Nano Banana API 中转平台

一个完整的大模型 API 中转购买平台支持用户注册、充值、API 调用等功能。

项目简介

本项目是一个前后端分离的 API 中转服务平台,用户可以通过注册账户、充值余额来使用 Nano Banana 文生图 API 服务。

主要功能

  • 📧 邮箱注册登录系统(支持邮箱验证)
  • 💰 用户余额管理和充值系统
  • 💳 支付接口(支持支付宝/微信支付)
  • 🎨 Nano Banana 文生图 API 中转
  • 🔑 API 密钥管理
  • 📊 用户统计和订单管理
  • 👨‍💼 管理员后台
  • 📱 响应式设计(支持手机端和电脑端)

技术栈

后端 (NBATransfer-backend)

  • 框架: Flask 3.0
  • 数据库: SQLite
  • ORM: Flask-SQLAlchemy
  • 认证: Flask-JWT-Extended
  • 跨域: Flask-CORS
  • 邮件: Flask-Mail

前端 (NBATransfer-frontend)

  • 框架: React 19 + TypeScript
  • 构建工具: Vite
  • UI 组件库: Ant Design
  • 状态管理: Zustand
  • 路由: React Router
  • HTTP 客户端: Axios
  • 图表: Recharts

项目结构

.
├── NBATransfer-backend/          # 后端项目
│   ├── app.py                    # Flask 应用入口
│   ├── config.py                 # 配置文件
│   ├── models.py                 # 数据库模型
│   ├── routes/                   # 路由模块
│   │   ├── auth.py              # 认证相关
│   │   ├── user.py              # 用户相关
│   │   ├── order.py             # 订单相关
│   │   ├── api_service.py       # API 服务
│   │   ├── admin.py             # 管理员
│   │   ├── apikey.py            # API 密钥
│   │   └── v1_api.py            # V1 API 接口
│   ├── services/                 # 业务逻辑层
│   ├── modelapiservice/          # 模型 API 服务
│   │   ├── DeepSeek/            # DeepSeek 服务
│   │   └── NanoBanana/          # NanoBanana 服务
│   └── requirements.txt          # Python 依赖
│
├── NBATransfer-frontend/         # 前端项目
│   ├── src/
│   │   ├── api/                 # API 接口定义
│   │   ├── components/          # 公共组件
│   │   ├── pages/               # 页面组件
│   │   ├── store/               # 状态管理
│   │   ├── types/               # TypeScript 类型
│   │   └── utils/               # 工具函数
│   └── package.json             # Node.js 依赖
│
└── README.md                     # 项目说明文档

快速开始

环境要求

  • Python 3.9+
  • Node.js 18+
  • npm 或 yarn

后端启动

  1. 进入后端目录:
cd NBATransfer-backend
  1. 安装依赖:
pip install -r requirements.txt
  1. 配置环境变量(可选): 创建 .env 文件并配置以下变量:
SECRET_KEY=your-secret-key
JWT_SECRET_KEY=your-jwt-secret-key
DATABASE_URI=sqlite:///nba_transfer.db
MAIL_SERVER=smtp.qq.com
MAIL_PORT=465
MAIL_USE_SSL=True
MAIL_USERNAME=your-email@qq.com
MAIL_PASSWORD=your-email-password
  1. 运行后端:
python app.py

或者使用批处理文件Windows

启动后端.bat

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

前端启动

  1. 进入前端目录:
cd NBATransfer-frontend
  1. 安装依赖:
npm install
  1. 配置环境变量(可选): 创建 .env 文件:
VITE_API_URL=http://localhost:5000/api
  1. 运行前端:
npm run dev

或者使用批处理文件Windows

启动前端.bat

前端服务将在 http://localhost:5173 启动Vite 默认端口)

默认账户

管理员账户

⚠️ 首次登录后请立即修改密码!

API 文档

认证相关 /api/auth

  • POST /register - 用户注册
  • POST /login - 用户登录
  • POST /refresh - 刷新令牌
  • GET /me - 获取当前用户信息
  • POST /change-password - 修改密码

用户相关 /api/user

  • GET /profile - 获取用户资料
  • PUT /profile - 更新用户资料
  • GET /balance - 获取账户余额
  • GET /transactions - 获取交易记录
  • GET /api-calls - 获取 API 调用记录
  • GET /stats - 获取统计信息

订单相关 /api/order

  • POST /create - 创建充值订单
  • GET /list - 获取订单列表
  • GET /<order_id> - 获取订单详情
  • POST /notify/<order_no> - 支付通知(测试用)

API 服务 /api/service

  • POST /text-to-image - 文生图 API
  • GET /models - 获取可用模型
  • GET /pricing - 获取价格信息
  • GET /call/<call_id> - 获取 API 调用详情

API 密钥 /api/apikey

  • GET /list - 获取 API 密钥列表
  • POST /create - 创建 API 密钥
  • PUT /<key_id>/toggle - 启用/禁用密钥
  • DELETE /<key_id> - 删除密钥

V1 API /v1

  • POST /chat/completions - 聊天完成接口
  • POST /images/generations - 图片生成接口

管理员 /api/admin

  • GET /users - 获取用户列表
  • GET /users/<user_id> - 获取用户详情
  • POST /users/<user_id>/toggle-status - 启用/禁用用户
  • POST /users/<user_id>/adjust-balance - 调整用户余额
  • GET /orders - 获取所有订单
  • GET /api-calls - 获取所有 API 调用
  • GET /stats/overview - 获取总览统计
  • GET /stats/chart - 获取图表数据

数据库结构

用户表 (users)

  • 邮箱、密码、用户名
  • 余额、激活状态、管理员标识
  • 邮箱验证状态
  • 创建时间、更新时间

订单表 (orders)

  • 订单号、用户ID、金额
  • 支付方式、订单状态
  • 第三方交易ID、支付时间

交易记录表 (transactions)

  • 用户ID、交易类型充值/消费/退款)
  • 金额、前后余额
  • 关联订单、关联API调用

API调用表 (api_calls)

  • 用户ID、API类型
  • 提示词、参数、状态
  • 结果URL、费用、错误信息

API密钥表 (api_keys)

  • 用户ID、密钥名称
  • API密钥、激活状态
  • 最后使用时间

验证码表 (verification_codes)

  • 用户ID、邮箱
  • 验证码、用途、使用状态
  • 过期时间

价格策略

  • 文生图 API: 0.15 元/张

开发说明

添加新的路由

后端

  1. routes/ 目录下创建新的蓝图文件
  2. app.py 中注册蓝图

前端

  1. src/api/modules/ 下创建 API 模块
  2. src/pages/ 下创建页面组件
  3. src/router/ 中配置路由

数据库迁移

# 进入 Python shell
python
>>> from app import create_app
>>> from models import db
>>> app = create_app()
>>> with app.app_context():
...     db.create_all()

部署建议

后端部署

使用 Gunicorn (生产环境)

pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app

使用 Docker

FROM python:3.9
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:5000", "app:app"]

前端部署

npm run build

构建产物在 dist/ 目录,可以部署到 Nginx、Vercel、Netlify 等平台。

注意事项

  1. ⚠️ 生产环境请修改所有默认密钥
  2. ⚠️ 配置实际的邮件服务器
  3. ⚠️ 接入真实的支付接口
  4. ⚠️ 配置 HTTPS
  5. ⚠️ 定期备份数据库
  6. ⚠️ 设置合适的 CORS 策略

许可证

MIT License

贡献

欢迎提交 Issue 和 Pull Request

Description
大模型API中转
Readme 133 KiB
Languages
Python 57.2%
TypeScript 34.8%
CSS 6.6%
Batchfile 0.7%
JavaScript 0.4%
Other 0.3%