🏗️ 系统架构
Build AI Template 采用现代化的微服务架构设计,前后端分离,支持水平扩展和高可用部署。
📐 整体架构图
🔧 技术栈详解
前端技术栈
⚛️ 核心框架
- Next.js 15.3 - React 全栈框架,支持 SSR/SSG
- React 19 - 最新的 React 版本,支持并发特性
- TypeScript - 类型安全的 JavaScript 超集
- App Router - Next.js 新一代路由系统
🎨 UI 和样式
- Shadcn UI - 高质量的 React 组件库
- Tailwind CSS - 原子化 CSS 框架
- Radix UI - 无障碍的底层 UI 组件
- Lucide React - 现代化图标库
🌍 国际化和状态
- next-intl - Next.js 国际化解决方案
- React Hooks - 状态管理和副作用处理
- Context API - 全局状态共享
- SWR - 数据获取和缓存(可选)
🛠️ 开发工具
- pnpm - 高效的包管理器
- ESLint - 代码质量检查
- Prettier - 代码格式化
- Turbopack - 快速的构建工具
后端技术栈
🐍 核心框架
- FastAPI - 现代化的 Python Web 框架
- Python 3.12 - 最新的 Python 版本
- Pydantic v2 - 数据验证和序列化
- Uvicorn - ASGI 服务器
🗄️ 数据库和 ORM
- SQLModel - 类型安全的 ORM
- PostgreSQL - 关系型数据库
- Alembic - 数据库迁移工具
- Redis - 内存数据库和缓存
🔐 认证和安全
- JWT - JSON Web Token 认证
- bcrypt - 密码哈希(如需要)
- CORS - 跨域资源共享
- Rate Limiting - 请求频率限制
🤖 AI 集成
- OpenAI API - GPT 模型集成
- httpx - 异步 HTTP 客户端
- SSE - 服务器发送事件(流式响应)
- 多平台适配 - 支持多种 AI 平台
🏛️ 架构设计原则
1. 分层架构
优势:
- 清晰的职责分离
- 易于测试和维护
- 支持独立演进
2. 微服务理念
虽然当前是单体应用,但架构设计支持未来拆分为微服务:
- 用户服务:用户管理、认证授权
- 对话服务:聊天功能、消息处理
- AI 服务:AI 平台集成、模型调用
- 管理服务:后台管理、数据统计
3. 事件驱动
使用事件驱动模式处理异步操作:
# 示例:用户注册事件
@event_handler("user.registered")
async def on_user_registered(event: UserRegisteredEvent):
# 发送欢迎邮件
await send_welcome_email(event.user_id)
# 初始化用户配置
await init_user_settings(event.user_id)
🔄 数据流架构
1. 用户认证流程
2. AI 对话流程
3. 数据同步流程
📊 数据库设计
核心实体关系图
数据库表结构
📋 主要数据表
users - 用户基本信息和权限
agents - AI 助手配置和状态
chats - 对话会话信息
messages - 具体的消息内容
memberships - 会员计划和权益
orders - 订单和支付记录
🔌 API 设计
RESTful API 规范
GET /api/v1/users # 获取用户列表
POST /api/v1/users # 创建用户
GET /api/v1/users/{id} # 获取特定用户
PUT /api/v1/users/{id} # 更新用户信息
DELETE /api/v1/users/{id} # 删除用户
GET /api/v1/chats # 获取对话列表
POST /api/v1/chats # 创建新对话
GET /api/v1/chats/{id} # 获取对话详情
POST /api/v1/chats/{id}/messages # 发送消息
流式 API 设计
@router.post("/chats/{chat_id}/stream")
async def stream_chat(chat_id: int, message: MessageCreate):
"""流式对话 API"""
async def generate():
async for chunk in ai_service.stream_chat(chat_id, message):
yield f"data: {json.dumps(chunk)}\n\n"
return StreamingResponse(generate(), media_type="text/plain")
🔒 安全架构
1. 认证和授权
2. 数据安全
- 传输加密:HTTPS/TLS 1.3
- 存储加密:敏感数据加密存储
- 访问控制:基于角色的权限控制(RBAC)
- 审计日志:完整的操作日志记录
3. API 安全
- 请求限流:防止 API 滥用
- 输入验证:Pydantic 数据验证
- SQL 注入防护:ORM 参数化查询
- CORS 配置:跨域请求控制
📈 性能优化
1. 缓存策略
2. 数据库优化
- 索引优化:关键字段建立索引
- 查询优化:避免 N+1 查询问题
- 连接池:数据库连接池管理
- 读写分离:支持主从数据库(可选)
3. 前端优化
- 代码分割:按路由分割 JavaScript 代码
- 懒加载:组件和图片懒加载
- 预加载:关键资源预加载
- 压缩优化:Gzip/Brotli 压缩
🚀 部署架构
1. 容器化部署
version: '3.8'
services:
nginx:
image: nginx:alpine
ports: ["80:80", "443:443"]
web:
build: ./web
environment:
- NODE_ENV=production
api:
build: ./api
environment:
- ENV=production
postgres:
image: postgres:15
volumes: ["./data/postgres:/var/lib/postgresql/data"]
redis:
image: redis:7-alpine
volumes: ["./data/redis:/data"]
2. 高可用部署
🔍 监控和日志
1. 应用监控
- 性能监控:响应时间、吞吐量
- 错误监控:异常捕获和告警
- 资源监控:CPU、内存、磁盘使用
- 业务监控:用户活跃度、对话统计
2. 日志系统
# 结构化日志示例
logger.info(
"用户登录成功",
extra={
"user_id": user.id,
"email": user.email,
"ip_address": request.client.host,
"user_agent": request.headers.get("user-agent")
}
)
🔮 扩展性设计
1. 水平扩展
- 无状态设计:API 服务无状态,支持水平扩展
- 数据库分片:支持数据库水平分片
- 缓存集群:Redis 集群部署
- CDN 加速:静态资源 CDN 分发
2. 功能扩展
- 插件系统:支持第三方插件开发
- API 网关:统一 API 管理和路由
- 消息队列:异步任务处理
- 微服务拆分:按业务域拆分服务