[ 开发日志 ] 我的 AI 网站
【 我的AI网站 】架构与功能报告
跳转链接:https://aether.mingder.space/
1. 平台概述与功能定位
本平台是一个集成了多种 AI 模型的内容生成服务系统,旨在为用户提供便捷的移动端与桌面端 AI 创作体验。平台打通了从用户注册、积分充值、AI 任务调度到最终资源交付的全链路流程。
核心功能矩阵:
| 功能模块 | 详细说明 |
|---|---|
| AI 创作工具集 | 集成多种生成式模型,包括Nano Banana、Qwen Image(通义万相)、Tongyi(通义千问)、Doubao(豆包/火山引擎) 以及图片转提示词 (ImageToPrompt) 等工具。 |
| 用户账户体系 | 支持邮箱注册/登录,包含详细的用户画像 (Profile) 管理。设有会员体系(月卡、年卡)及免费额度机制。 |
| 资产与支付系统 | 内置积分 (Credits) 钱包,支持在线充值。接入ZPay支付网关,支持支付宝/微信免签或低价接入。记录详细的积分流水与交易订单。 |
| 多端适配 | 基于响应式设计,提供专门的**Mobile (移动端)独立视图与Desktop (桌面端)**视图,覆盖不同设备场景。 |
| 管理后台 (Admin) | 提供可视化仪表盘,用于管理用户 (Users)、任务 (Tasks)、资产 (Assets) 及交易 (Transactions),支持系统级监控。 |
2. 基础设施架构
平台采用轻量化、高性价比的分布式架构,利用云服务商的免费额度与低价套餐构建了生产级环境。
| 层级 | 服务/组件 | 选型/供应商 | 说明 |
|---|---|---|---|
| 计算层 | 应用服务器 | 雨云 (Rainyun) | 2核 2G (Debian) 实例,托管后端 API、数据库与 Redis。 |
| 运维层 | 面板工具 | 1Panel | 提供容器化部署、可视化运维与监控能力。 |
| 存储层 | 对象存储 (OSS) | ClawCloud (S3) | 兼容 S3 协议,$5/月低成本方案,用于持久化存储用户生成的图片资源。 |
| 网络层 | CDN 加速 | 腾讯云 CDN | 利用免费流量包加速静态资源分发,同时隐藏源站 IP,提升安全性。 |
| 模型层 | AI 模型聚合 | 魔搭 (ModelScope) / API易 | 聚合主流 LLM 与绘图模型,通过 API 形式调用,降低显卡成本。 |
| 模型层 | 专有模型 | 火山引擎 (Volces) | 接入豆包 (Doubao) 等特定大模型能力。 |
| 开发层 | 辅助编程 | Antigravity (Gemini 3) | AI 辅助编码工具,加速开发迭代。 |
3. 技术栈概览
| 领域 | 核心技术 | 关键库/工具 |
|---|---|---|
| 前端 (Frontend) | Vue 3(TypeScript) | Vite, Pinia, Vue Router, TailwindCSS (推测), Axios |
| 后端 (Backend) | Python 3.11+ | FastAPI, SQLAlchemy (Async), Pydantic, Uvicorn |
| 数据库 (Database) | MySQL 8.0 | 关系型数据存储 (用户、订单、任务) |
| 缓存/队列 (Cache) | Redis | 任务队列 (Celery/Rq)、缓存、限流 |
| 部署 (DevOps) | Docker | 1Panel 容器化管理 |
4. 后端架构详解
后端采用 FastAPI 框架构建,遵循 RESTful API 规范,注重高性能与异步处理能力。
4.1 核心模块划分
根据 app/main.py 与路由配置,后端业务逻辑被拆分为以下微模块:
- Auth (认证模块): 处理注册、登录、JWT 令牌签发与刷新。
- User (用户模块): 管理用户基础信息、会员状态与个性化设置。
- Generation (生图模块): 核心业务,接收前端 AI 任务请求,调度模型接口(Gemini, ModelScope, Volces),并将结果异步回调。
- Payment (支付模块): 集成 ZPay 接口,处理
/payment/create(创建订单) 与/payment/notify(异步回调),保障资金安全。 - Transaction (流水模块): 记录每一次积分变动(充值增加、生图扣减)。
- Upload (上传模块): 处理图片上传至 S3 兼容存储 (ClawCloud) 的逻辑,并对接新图床 API。
- Admin (管理模块): 提供超级管理员权限的 API,用于数据统计与全站管理。
4.2 数据模型设计 (Schema)
基于 app/db/models.py,核心实体关系如下:
- User (用户表): 存储账号、密码哈希、状态、最后登录信息。
- UserProfile (用户资产表): 1:1 关联 User,存储积分 (credits)、会员过期时间、免费额度。引入了乐观锁 (
version) 防止并发扣费异常。 - ImageTask (任务表): 存储 AI 生成任务详情(Prompt、模型参数、执行状态 PENDING/SUCCESS/FAIL、成本耗时),关联至 User。
- PaymentOrder (订单表): 存储支付流水号、金额、支付方式及支付二维码链接 (
qrcode_url)。 - CreditTransaction (积分流水表): 记录每一次积分变更的来源 (
source) 和变动后余额,确保账目可追溯。
4.3 关键中间件与机制
- CORS 策略: 严格配置了
allow_origins,仅允许生产域名 (*.mingder.space) 及开发环境 (localhost) 跨域访问。 - 统一日志系统: 自定义
log_requests中间件,记录每个请求的耗时、状态码。 - 异常监控: 集成了 飞书 (Feishu) 报警 机制。当发生 500 错误时,自动捕获堆栈并通过飞书机器人推送到开发群。
- 统一异常处理: 覆盖
RequestValidationError和StarletteHTTPException,将默认的英文报错(如 "Field required")转化为中文友好提示返回给前端。 - 启动/关闭钩子: 在应用启动时自动检查 MySQL 与 Redis 连接,并启动后台调度器 (
scheduler)。
5. 前端架构详解
前端采用 Vue 3 + TypeScript + Vite 的现代化技术栈,实现了 SPA (单页应用) 架构。
5.1 路由与页面结构
根据 src/router/index.ts,前端路由设计具有明显的端侧分离特征:
- 通用页面: Login, Home, NotFound.
- Tools (工具页):
/nano-banana: 特定风格生图工具。/qwen-image: 通义万相生图。/tongyi&/doubao: 接入通义千问与豆包的大语言模型/生图界面。
- Mobile 专属视图:
/mobile/create,/mobile/profile,/mobile/task/:id等,针对移动端触摸操作优化。 - Admin 后台: 包含
/admin(桌面) 与/mobile/admin/*(移动端管理后台),涵盖用户、任务、资金、交易四大管理板块。
5.2 状态管理 (Pinia)
- AuthStore: 封装用户登录状态、JWT Token 存储与刷新逻辑。
- ModalStore: 控制全局弹窗(如登录框、支付框)的显示与隐藏。
- 路由守卫 (Guards):
requiresAuth: 拦截未登录访问,自动弹出登录框。requiresAdmin: 校验用户 ID (如id===1),确保仅管理员可访问后台路由。
5.3 样式与资源
- 引入了
admin.css与main.css分离管理前台与后台样式。 - 构建时通过 Vite 进行代码分割与打包优化。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 爱喝可乐