系统架构
整体架构
┌──────────────────────────────────────────────────────────────────┐
│ 用户层 │
│ Web界面 / 移动端 / API客户端 │
└─────────────────────────┬────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────┐
│ Nginx (可选) │
│ 反向代理 / SSL / 静态资源 │
└─────────────────────────┬────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────┐
│ FastAPI 应用服务 │
│ (Uvicorn/Gunicorn) │
├──────────────────────────────────────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 认证模块 │ │ 16S分析 │ │ 多组学 │ │ 体检报告 │ │
│ │ JWT/OAuth│ │ DADA2 │ │ DIABLO │ │ OCR解析 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
├──────────────────────────────────────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ LLM服务 │ │ 缓存服务 │ │ 文件存储 │ │
│ │ Ollama │ │ Redis │ │ Local/S3 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
└──────────────────────────────────────────────────────────────────┘
目录结构
bioinfo-system-new/
├── main.py # 应用入口
├── config.py # 配置文件
├── routers/ # API路由
│ ├── auth.py # 认证路由
│ ├── api.py # API路由
│ └── ...
├── services/ # 业务逻辑
│ ├── analysis/ # 分析服务
│ ├── llm/ # LLM服务
│ └── storage/ # 存储服务
├── models/ # 数据模型
├── static/ # 静态文件
├── templates/ # HTML模板
├── data/ # 数据目录
│ ├── uploads/ # 上传文件
│ ├── results/ # 分析结果
│ └── models/ # 模型文件
└── docs_site/ # 文档站点
└── docs/ # 文档源文件
核心模块
1. 认证模块
- JWT Token 认证
- OAuth 2.0 支持
- 限流中间件
- 安全头设置
2. 16S 分析模块
- DADA2 流程
- QIIME2 集成
- 物种注释
- 多样性分析
3. 多组学整合模块
- 报告自动识别
- LLM 智能解读
- DIABLO/MOFA 整合
- 健康方案生成
4. LLM 服务
- Ollama 本地模型
- MiniMax 云端模型
- 多模型路由
- 降级策略
数据流
用户上传 → 文件验证 → 存储 → 任务队列 → 分析处理 → 结果存储 → 报告生成
│ │
└───────────── 通知用户 ◄──────────────────────┘
技术栈
| 层级 |
技术 |
说明 |
| 后端 |
FastAPI |
高性能 API 框架 |
| 数据库 |
SQLite/PostgreSQL |
关系型数据 |
| 缓存 |
Redis |
缓存和队列 |
| LLM |
Ollama/MiniMax |
大语言模型 |
| 前端 |
HTML/JS |
Jinja2 模板 |
| 部署 |
Docker/Systemd |
容器化/服务化 |
返回开发文档