技术栈文档
画颜 : 您的在线 AI 照相馆 - 技术栈文档
1. 核心架构概述
采用分层微服务架构,实现高并发、低延迟的AI图像生成流水线,核心模块包括:
- 用户交互层(前端)
- 业务逻辑层(后端)
- AI推理服务层
- 数据存储层
- 运维监控层
2. 技术选型及版本说明
模块 | 技术栈 | 版本 | 选型理由 |
---|---|---|---|
前端 | React + Next.js | 18.2 | SSR支持SEO,动态加载优化用户体验 |
Tailwind CSS | 3.3 | 高效构建响应式UI | |
React Dropzone | 14.3 | 支持大文件分块上传/断点续传 | |
后端 | Python + FastAPI | 0.95+ | 异步高性能框架,OpenAPI原生支持 |
Celery + Redis | 5.3/7.0 | 分布式任务队列,处理AI生成异步任务 | |
AI引擎 | PyTorch + Diffusers | 2.0/0.18 | Stable Diffusion XL 1.0基础模型,LoRA微调实现风格化 |
ONNX Runtime | 1.15 | 模型推理加速(比原生PyTorch快40%) | |
存储 | AWS S3/MinIO | - | 用户原始图存储 |
Cloudflare R2 + CDN | - | 生成结果全球加速分发 | |
PostgreSQL (RDS) | 15 | 用户/订单元数据 | |
运维 | Kubernetes (EKS) | 1.26+ | 容器编排,支持GPU节点弹性伸缩 |
Prometheus + Grafana | 2.40/9.4 | 全链路监控 |
3. 关键技术实施流程
3.1 用户请求处理流
🔄 正在加载流程图...
graph TD
A[用户上传照片] --> B[前端分块加密上传]
B --> C[API网关路由]
C --> D[人脸检测服务]
D -->|通过| E[Celery异步任务队列]
E --> F[AI生成集群]
F --> G[结果存储至R2+CDN]
G --> H[邮件/短信通知]
3.2 AI生成优化方案
- 推理加速:
- TensorRT量化(FP16精度)
- 使用
torch.compile
优化模型图 - 批处理(Batch=4时 TPS提升300%)
- 风格扩展:
- 基于LoRA的轻量微调(每个风格仅需10张样本)
- 风格库版本化管理(Git LFS)
3.3 安全设计
# 图像上传安全示例
def sanitize_image(file):
# 1. 文件头校验
if not filemagic.from_buffer(file[0:1024]).startswith('image'):
raise InvalidFileTypeError
# 2. 像素级内容审查
if DeepDanbooruAPI.detect_nsfw(file) > 0.85:
raise ContentPolicyViolation
# 3. 人脸模糊处理
return anonymize_faces(file, k=5) # k-匿名化保护
4. 扩展性与性能指标
4.1 横向扩展能力
- AI集群:通过K8s HPA实现GPU节点动态扩容(CPU利用率>70%触发)
- 存储分层:
热数据:Redis缓存(最近1小时生成结果) 温数据:NVMe SSD本地缓存 冷数据:S3 Glacier归档
4.2 性能基准(测试环境:NVIDIA A10G)
操作 | P50延迟 | 吞吐量 |
---|---|---|
512x512头像检测 | 120ms | 150QPS |
写真生成(标准模式) | 8.7s | 12RPS |
风格迁移(LoRA) | 3.2s | 28RPS |
5. 运维保障体系
- 灾难恢复:
- 多AZ部署(us-east-1, ap-northeast-1)
- 数据库时间点恢复(RPO<15s)
- CI/CD:
# GitLab CI示例 deploy_prod: stage: deploy only: - main script: - kubectl rollout restart deployment/ai-inference -n prod rules: - if: $CI_COMMIT_TAG =~ /^v\d+\.\d+\.\d+$/
技术决策注释:
- 弃用Flask选择FastAPI:ASGI协议支持WebSocket实时进度通知
- 采用ONNX而非TensorFlow Serving:统一PyTorch/TensorFlow模型部署接口
- Cloudflare R2替代传统CDN:零出口费用降低带宽成本87%
- 人脸数据加密:使用AES-256-GCM加密存储,密钥由AWS KMS管理
此方案支持单日百万级生成请求,端到端P99延迟<15s,年度运维成本预估降低65%对比传统架构。