Files
012-kaopeilian/docs/规划/系统架构.md
111 998211c483 feat: 初始化考培练系统项目
- 从服务器拉取完整代码
- 按框架规范整理项目结构
- 配置 Drone CI 测试环境部署
- 包含后端(FastAPI)、前端(Vue3)、管理端

技术栈: Vue3 + TypeScript + FastAPI + MySQL
2026-01-24 19:33:28 +08:00

10 KiB
Raw Blame History

系统架构

最后更新2026-01-21AI 配置从管理库加载)

整体架构

考培练系统
├── 前端层Vue3 + TypeScript + pnpm
│   ├── 学员端
│   ├── 管理端
│   ├── SaaS 超级管理后台admin.ireborn.com.cn
│   └── 公共组件
├── 后端层FastAPI + Python 3.11
│   ├── API网关
│   ├── 业务服务
│   ├── 租户配置管理
│   └── AI服务集成
├── AI平台层
│   ├── Python 原生 AI 服务4sapi.com → OpenRouter 降级)
│   └── Coze陪练、对话
└── 数据层
    ├── MySQL业务数据 + 管理后台数据)
    └── Redis缓存、会话、课程对话历史

技术选型

前端技术栈

参考:《瑞小美系统技术栈标准与字符标准.md》

项目 技术 版本 备注
语言 TypeScript 5.x 禁止使用 JavaScript
框架 Vue 3 3.4+ Composition API
构建 Vite 5.x 快速开发体验
包管理器 pnpm 9.x 禁止使用 npm/yarn
UI 组件库 Element Plus 2.x 企业级 UI
状态管理 Pinia 2.x 按需使用
路由 Vue Router 4.x -
代码规范 ESLint 8.x 必须配置

后端技术栈

项目 技术 版本 备注
语言 Python 3.11 -
框架 FastAPI 0.104+ -
ORM SQLAlchemy 2.0 异步支持
数据库 MySQL 8.0 utf8mb4
缓存 Redis 7.x -
认证 JWT - -

基础设施

项目 技术 备注
容器 Docker + Docker Compose 必须容器化部署
反向代理 Nginx 独立容器SSL 终止
SSL Let's Encrypt 自动续期
镜像源 阿里云 kjphlxn2.mirror.aliyuncs.com

核心模块

1. 用户认证模块

  • JWT Token认证
  • 角色权限管理RBAC
  • 单点登录支持

2. 课程管理模块

  • 课程CRUD
  • 知识点管理
  • 文件资料管理
  • AI知识提取

3. 考试系统模块

  • 动态题目生成
  • 三轮考试机制
  • 成绩分析统计
  • 错题强化练习

4. AI陪练模块

  • 场景化对话
  • 语音交互
  • 实时评估
  • 能力报告

5. 数据分析模块

  • 学习进度追踪
  • 能力雷达图
  • 团队绩效分析
  • 智能推荐

6. SaaS 超级管理后台2026-01-18 新增)

域名admin.ireborn.com.cn

功能 说明
租户管理 创建、编辑、启用/禁用租户
配置管理 统一管理 AI Key、数据库、Redis 等配置
提示词管理 查看和编辑 AI 提示词,支持版本控制
功能开关 按租户控制功能模块的启用/禁用
操作审计 记录所有管理操作日志

数据库kaopeilian_adminprod-mysql:3309

配置优先级

  1. 数据库 tenant_configs
  2. 环境变量 .env 文件
  3. 代码默认值

AI集成架构

参考《瑞小美AI接入规范.md》

更新日期2026-01-21AI 配置从管理库加载)

AI 配置加载架构(核心!)

┌─────────────────────────────────────────────────────────────┐
│  SaaS 管理后台 (admin.ireborn.com.cn)                        │
│  ┌───────────────────────────────────────────────────────┐ │
│  │  AI 配置管理页面                                        │ │
│  │  - AI_PRIMARY_API_KEY通用 Key                       │ │
│  │  - AI_ANTHROPIC_API_KEYClaude 专属 Key             │ │
│  │  - AI_PRIMARY_BASE_URL                                 │ │
│  │  - AI_FALLBACK_API_KEY备选                          │ │
│  │  - AI_DEFAULT_MODEL                                    │ │
│  └───────────────────────────────────────────────────────┘ │
│                              │                               │
│                              ▼                               │
│           kaopeilian_admin.tenant_configs 表                 │
└──────────────────────────────┬──────────────────────────────┘
                               │ 同步方式查询
       ┌───────────────────────┼───────────────────────────────┐
       │                       │                               │
       ▼                       ▼                               ▼
┌─────────────┐        ┌─────────────┐                ┌─────────────┐
│  ex-backend │        │  hua-backend│                │  yy-backend │
│  AIService  │        │  AIService  │                │  AIService  │
│  TENANT=ex  │        │  TENANT=hua │                │  TENANT=yy  │
└─────────────┘        └─────────────┘                └─────────────┘

配置加载优先级

  1. 管理库 kaopeilian_admin.tenant_configs 表(按 TENANT_CODE 查询)
  2. 环境变量 .env 文件fallback
  3. 代码默认值

容器必须的环境变量

TENANT_CODE=ex                          # 租户编码
ADMIN_DB_HOST=prod-mysql                # 管理库主机
ADMIN_DB_PASSWORD=ProdMySQL2025!@#      # 管理库密码
ADMIN_DB_NAME=kaopeilian_admin          # 管理库名称

AI 服务商策略

首选 4sapi.com → 备选 OpenRouter自动降级

优先级 服务商 API 地址
1首选 4sapi.com https://4sapi.com/v1
2备选 OpenRouter https://openrouter.ai/api/v1

Python 原生 AI 服务

前端 → 后端API → AIService → 管理库加载配置 → 4sapi/OpenRouter → JSON解析 → 返回结果

已实现的服务

  • 知识点分析 (knowledge_analysis_v2.py)
  • 试题生成器 (exam_generator_service.py)
  • 陪练场景提取 (practice_scene_service.py)
  • 课程对话 (course_chat_service.py)
  • 能力分析 (ability_analysis_service.py)
  • 答案判断 (answer_judge_service.py)
  • 陪练分析报告 (practice_analysis_service.py)

Coze 集成

前端 → Coze网关 → Coze Bot → 流式响应 → 前端展示

主要功能

  • AI 陪练对话
  • 语音交互
  • 播课生成

数据流设计

业务数据流

  1. 用户请求 → API网关 → 业务服务
  2. 业务服务 → 数据验证 → 数据库操作
  3. 数据库 → 缓存更新 → 响应返回

AI处理流

  1. 用户触发 → 参数构建 → AI平台调用
  2. AI处理 → 结果解析 → 业务存储
  3. 结果返回 → 前端展示 → 用户反馈

部署架构

详见:《部署架构-统一版.md》

多租户架构

                    ┌─────────────────────────────────────┐
                    │        kaopeilian-nginx             │
                    │       (入口反向代理服务器)            │
                    │      80/443 端口                    │
                    └───────────────┬─────────────────────┘
                                    │
    ┌───────────────────────────────┼───────────────────────────────┐
    │               │               │               │               │
    ▼               ▼               ▼               ▼               ▼
┌─────────┐  ┌───────────┐  ┌───────────┐  ┌───────────┐  ┌───────────┐
│管理后台  │  │ 演示版    │  │ 多客户版   │  │ 瑞小美    │  │陪练试用版  │
│admin.*  │  │ aiedu.*  │  │yy/hl/xy.. │  │ kpl.*    │  │ pl.*     │
└─────────┘  └───────────┘  └───────────┘  └───────────┘  └───────────┘

开发环境

  • Docker 容器化
  • 代码热重载HMR/auto-reload
  • 统一端口配置
  • 共享代码库

生产环境

  • 前后端分离容器
  • 共享 dist 方案(一次构建,多租户更新)
  • 日志轮转max-size: 10m
  • 资源限制(前端 256M后端 512M

安全设计

接口安全

  • JWT Token 认证
  • 请求签名
  • 频率限制
  • SQL 注入防护SQLAlchemy ORM

数据安全

  • 敏感数据加密存储
  • 传输层加密HTTPS / Let's Encrypt
  • 每日自动备份(保留 7 天)
  • 操作审计日志

敏感信息管理

参考:《瑞小美系统技术栈标准与字符标准.md》

规范 说明
禁止硬编码 密码、密钥禁止写入代码或镜像
环境变量 通过 .env 文件管理
文件权限 .env 文件权限设为 600
生产环境 使用 Docker env_file 方式

性能优化

前端优化

  • 组件懒加载
  • 资源压缩
  • CDN加速
  • 缓存策略

后端优化

  • 数据库索引
  • 查询优化
  • 异步处理
  • 连接池管理

缓存策略

  • Redis缓存热数据
  • 本地缓存静态资源
  • API响应缓存
  • 分布式缓存

扩展性设计

水平扩展

  • 无状态服务设计
  • 数据库读写分离
  • 缓存集群
  • 消息队列

垂直扩展

  • 模块化设计
  • 插件化架构
  • API版本管理
  • 配置中心