408 lines
16 KiB
Markdown
Executable File
408 lines
16 KiB
Markdown
Executable File
# Gene Family RAG 系统建设总计划
|
|
|
|
> 版本: Master Plan v1.0
|
|
> 制定时间: 2026-03-31
|
|
> 目标: 构建世界一流的基因家族分析RAG系统
|
|
|
|
---
|
|
|
|
## 🎯 系统愿景
|
|
|
|
### 最终目标
|
|
构建一个**具备领域推理能力的基因家族分析虚拟合作者**,能够:
|
|
1. 理解复杂的基因家族分析问题
|
|
2. 自动从文献中提取结构化知识
|
|
3. 提供可溯源、可验证的专业回答
|
|
4. 支持多轮对话和深度推理
|
|
|
|
### 核心能力
|
|
```
|
|
用户提问: "SPL基因家族在苦荞中的系统发育分组及其表达模式"
|
|
↓
|
|
┌─────────────────────────────────────────┐
|
|
│ 意图识别 → 查询分解 → 多源检索 → 知识整合 │
|
|
│ ↓ ↓ ↓ ↓ │
|
|
│ 系统发育 表达数据 文献证据 综合分析 │
|
|
│ 分组信息 时空模式 实验方法 结论生成 │
|
|
└─────────────────────────────────────────┘
|
|
↓
|
|
回答: "苦荞SPL家族分为6组(24基因),其中Group_VI在花期高表达..."
|
|
[引用: PMID:31286919 Fig.2, Table S1]
|
|
```
|
|
|
|
---
|
|
|
|
## 🏗️ 总体架构
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ 用户交互层 (Frontend) │
|
|
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
|
|
│ │ Web界面 │ │ API接口 │ │ 批量处理工具 │ │
|
|
│ │ (Vue3) │ │ (FastAPI) │ │ (CLI/GUI) │ │
|
|
│ └──────┬──────┘ └──────┬──────┘ └──────────┬──────────┘ │
|
|
└─────────┼────────────────┼────────────────────┼─────────────┘
|
|
↓ ↓ ↓
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ 编排控制层 (Orchestrator) │
|
|
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
|
|
│ │ 意图识别 │ │ 查询分解 │ │ 路由决策 │ │
|
|
│ │ Intent │ │ Query │ │ Router │ │
|
|
│ │ Classifier │ │ Decomposer │ │ (技能选择) │ │
|
|
│ └──────┬──────┘ └──────┬──────┘ └──────────┬──────────┘ │
|
|
└─────────┼────────────────┼────────────────────┼─────────────┘
|
|
↓ ↓ ↓
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ 技能执行层 (Skills) │
|
|
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
|
|
│ │ 文献检索 │ │ 系统发育 │ │ 表达分析 │ │
|
|
│ │ RAG Search │ │ Phylogeny │ │ Expression │ │
|
|
│ │ │ │ Extraction │ │ Analysis │ │
|
|
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
|
|
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
|
|
│ │ 基因结构 │ │ 共线性分析 │ │ 功能注释 │ │
|
|
│ │ Gene │ │ Synteny │ │ Functional │ │
|
|
│ │ Structure │ │ Analysis │ │ Annotation │ │
|
|
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
↓
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ 数据获取层 (Data Fetcher) │
|
|
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
|
|
│ │ 向量检索 │ │ 补充材料 │ │ 外部数据库 │ │
|
|
│ │ Vector │ │ Supplement │ │ External APIs │ │
|
|
│ │ Store │ │ Fetcher │ │ (NCBI/Ensembl) │ │
|
|
│ │ (Qdrant) │ │ (v5) │ │ │ │
|
|
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
↓
|
|
┌─────────────────────────────────────────────────────────────┐
|
|
│ 知识存储层 (Knowledge Base) │
|
|
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
|
|
│ │ 向量数据库 │ │ 图数据库 │ │ 文档存储 │ │
|
|
│ │ Qdrant │ │ (可选) │ │ JSON/Excel │ │
|
|
│ │ (Embedding) │ │ │ │ │ │
|
|
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
|
|
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
|
|
│ │ 实体数据库 │ │ 记忆存储 │ │ 缓存层 │ │
|
|
│ │ SQLite │ │ Mem0/SQLite │ │ Redis (可选) │ │
|
|
│ │ (Genes/Papers)│ │ (对话历史) │ │ │ │
|
|
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
|
|
└─────────────────────────────────────────────────────────────┘
|
|
```
|
|
|
|
---
|
|
|
|
## 📅 完整建设计划
|
|
|
|
### Phase 0: 基础设施 (已完成 ✅)
|
|
|
|
| 模块 | 功能 | 状态 | 文件 |
|
|
|:---|:---|:---|:---|
|
|
| 向量存储 | FAISS/Qdrant索引 | ✅ | `src/rag/vector_store*.py` |
|
|
| 嵌入模型 | BGE-M3本地模型 | ✅ | `src/rag/embeddings.py` |
|
|
| LLM集成 | 多提供商支持 | ✅ | `src/llm/providers/` |
|
|
| API框架 | FastAPI基础 | ✅ | `api/main.py` |
|
|
| 基础检索 | 关键词+向量 | ✅ | `src/rag/hybrid_retriever.py` |
|
|
|
|
---
|
|
|
|
### Phase 1: 记忆与对话 (2026-03-19 已完成 ✅)
|
|
|
|
| 模块 | 功能 | 状态 | 文件 |
|
|
|:---|:---|:---|:---|
|
|
| 对话记忆 | 跨对话上下文 | ✅ | `src/rag/memory/memory_manager.py` |
|
|
| 会话存储 | SQLite持久化 | ✅ | `src/rag/memory/conversation_store.py` |
|
|
| 查询增强 | 历史上下文注入 | ✅ | 已集成到orchestrator |
|
|
| Qdrant迁移 | Docker持久化 | ✅ | `src/rag/vector_store_qdrant.py` |
|
|
|
|
**交付物**:
|
|
- 支持连续对话
|
|
- 自动上下文增强
|
|
- 生产级向量存储
|
|
|
|
---
|
|
|
|
### Phase 2: 检索增强 (2026-03-19 部分完成 🔄)
|
|
|
|
| 模块 | 功能 | 状态 | 优先级 |
|
|
|:---|:---|:---|:---|
|
|
| 引用数加权 | 高引论文优先 | ✅ | P1 |
|
|
| 时效性排序 | 新论文优先 | ✅ | P1 |
|
|
| 自我反思 | 检查缺失→二次检索 | ⏳ | P2 |
|
|
| 外部API | Semantic Scholar | ⏳ | P2 |
|
|
| 多跳推理 | 关联论文追踪 | ⏳ | P3 |
|
|
|
|
**交付物**:
|
|
- 更智能的排序算法
|
|
- 自动补全缺失信息
|
|
- 实时文献补充
|
|
|
|
---
|
|
|
|
### Phase 3: 系统发育提取 (2026-03-30 已完成 ✅)
|
|
|
|
| 模块 | 功能 | 状态 | 文件 |
|
|
|:---|:---|:---|:---|
|
|
| 基础提取 | PDF文本提取 | ✅ | `extract_phylogeny_v*.py` |
|
|
| 补充材料获取 | Europe PMC API | ✅ | `universal_supplementary_fetcher.py` |
|
|
| 多期刊支持 | 通用适配器架构 | ✅ | 适配器模式 |
|
|
| Excel解析 | 自动分组提取 | ✅ | pandas集成 |
|
|
| API集成 | 提取接口 | ✅ | `api/rag_routes.py` |
|
|
|
|
**交付物**:
|
|
- v5 Universal提取系统
|
|
- 支持所有PMC期刊 (60%覆盖率)
|
|
- Confidence 100/100
|
|
|
|
---
|
|
|
|
### Phase 4: 知识图谱构建 (计划 4月)
|
|
|
|
| 模块 | 功能 | 状态 | 预计时间 |
|
|
|:---|:---|:---|:---|
|
|
| 实体识别 | 基因/物种/家族 | ⏳ | 3天 |
|
|
| 关系抽取 | 基因-分组-表达 | ⏳ | 5天 |
|
|
| 知识融合 | 多源数据对齐 | ⏳ | 3天 |
|
|
| 图数据库 | Neo4j集成 (可选) | ⏳ | 5天 |
|
|
| 可视化 | 知识图谱展示 | ⏳ | 3天 |
|
|
|
|
**交付物**:
|
|
- 基因家族知识图谱
|
|
- 实体关系数据库
|
|
- 可视化探索工具
|
|
|
|
---
|
|
|
|
### Phase 5: 高级分析技能 (计划 4-5月)
|
|
|
|
| 技能 | 功能 | 状态 | 预计时间 |
|
|
|:---|:---|:---|:---|
|
|
| 表达分析 | 时空表达模式 | ⏳ | 5天 |
|
|
| 基因结构 | 内含子/外显子 | ⏳ | 3天 |
|
|
| 启动子分析 | 顺式元件 | ⏳ | 5天 |
|
|
| 共线性分析 | 基因组共线性 | ⏳ | 5天 |
|
|
| 功能注释 | GO/KEGG富集 | ⏳ | 5天 |
|
|
| 比较基因组 | 多物种比较 | ⏳ | 7天 |
|
|
|
|
**交付物**:
|
|
- 11个标准分析阶段全覆盖
|
|
- 自动从文献提取分析结果
|
|
- 支持跨文献比较
|
|
|
|
---
|
|
|
|
### Phase 6: 智能推理 (计划 5-6月)
|
|
|
|
| 模块 | 功能 | 状态 | 预计时间 |
|
|
|:---|:---|:---|:---|
|
|
| 假设生成 | 基于证据的推断 | ⏳ | 7天 |
|
|
| 矛盾检测 | 识别文献冲突 | ⏳ | 5天 |
|
|
| 证据综合 | 多源证据加权 | ⏳ | 5天 |
|
|
| 不确定性量化 | 置信度评估 | ⏳ | 5天 |
|
|
| 可解释性 | 推理路径展示 | ⏳ | 5天 |
|
|
|
|
**交付物**:
|
|
- 类人推理能力
|
|
- 可解释的回答
|
|
- 不确定性管理
|
|
|
|
---
|
|
|
|
### Phase 7: 生产化 (计划 6月)
|
|
|
|
| 模块 | 功能 | 状态 | 预计时间 |
|
|
|:---|:---|:---|:---|
|
|
| 性能优化 | 毫秒级响应 | ⏳ | 7天 |
|
|
| 缓存系统 | Redis多层缓存 | ⏳ | 5天 |
|
|
| 监控告警 | 全链路监控 | ⏳ | 5天 |
|
|
| 自动化测试 | CI/CD集成 | ⏳ | 5天 |
|
|
| 文档完善 | 完整技术文档 | ⏳ | 5天 |
|
|
| 用户反馈 | 反馈收集迭代 | ⏳ | 持续 |
|
|
|
|
**交付物**:
|
|
- 生产级稳定系统
|
|
- 完整运维体系
|
|
- 持续迭代能力
|
|
|
|
---
|
|
|
|
## 📊 数据资源规划
|
|
|
|
### 文献数据
|
|
|
|
| 阶段 | 数量 | 来源 | 时间 |
|
|
|:---|:---|:---|:---|
|
|
| 当前 | 87篇 | 手动收集 | 已完成 |
|
|
| 短期 | 1,000篇 | Q1期刊批量下载 | 4月 |
|
|
| 中期 | 10,000篇 | 基因家族相关 | 5月 |
|
|
| 长期 | 50,000篇 | 植物基因组全量 | 6月+ |
|
|
|
|
### 知识库规模
|
|
|
|
| 指标 | 当前 | 目标 | 存储 |
|
|
|:---|:---|:---|:---|
|
|
| Chunks | 5,107 | 500,000 | ~10GB |
|
|
| Embeddings | 5,107 | 500,000 | ~20GB |
|
|
| 实体 | ~1,000 | 1,000,000 | ~5GB |
|
|
| 关系 | ~5,000 | 10,000,000 | ~50GB |
|
|
|
|
---
|
|
|
|
## 🛠️ 技术栈总览
|
|
|
|
### 核心组件
|
|
|
|
| 层级 | 技术 | 用途 |
|
|
|:---|:---|:---|
|
|
| 前端 | Vue 3 + Element Plus | 用户界面 |
|
|
| API | FastAPI | 后端服务 |
|
|
| 编排 | 自研Orchestrator | 流程控制 |
|
|
| 向量 | Qdrant + BGE-M3 | 语义检索 |
|
|
| 图库 | Neo4j (可选) | 知识图谱 |
|
|
| 缓存 | Redis (可选) | 性能优化 |
|
|
| LLM | GLM/Kimi/Ollama | 文本生成 |
|
|
| 部署 | Docker + Nginx | 生产部署 |
|
|
|
|
### 关键依赖
|
|
|
|
```python
|
|
# 核心
|
|
fastapi==0.104.1
|
|
qdrant-client==1.7.0
|
|
sentence-transformers==2.2.2
|
|
pandas==2.1.3
|
|
|
|
# LLM
|
|
openai==1.3.0
|
|
httpx==0.25.2
|
|
|
|
# 数据处理
|
|
PyMuPDF==1.23.8
|
|
openpyxl==3.1.2
|
|
|
|
# 可选
|
|
redis==5.0.1
|
|
neo4j==5.14.0
|
|
```
|
|
|
|
---
|
|
|
|
## 📈 里程碑
|
|
|
|
| 日期 | 里程碑 | 交付物 |
|
|
|:---|:---|:---|
|
|
| 2026-03-31 | Phase 0-3 完成 | 系统发育提取v5上线 |
|
|
| 2026-04-15 | Phase 4 完成 | 知识图谱v1.0 |
|
|
| 2026-04-30 | Phase 5 完成 | 11个分析技能全量 |
|
|
| 2026-05-15 | Phase 6 完成 | 智能推理v1.0 |
|
|
| 2026-05-31 | Phase 7 完成 | 生产级系统 |
|
|
| 2026-06-30 | v2.0 发布 | 完整产品 |
|
|
|
|
---
|
|
|
|
## 💰 资源需求
|
|
|
|
### 计算资源
|
|
|
|
| 组件 | 配置 | 成本/月 |
|
|
|:---|:---|:---|
|
|
| API服务器 | 8核16GB | ¥500 |
|
|
| GPU推理 | RTX 4090 | ¥1,500 |
|
|
| 向量数据库 | 4核8GB | ¥300 |
|
|
| 存储 | 500GB SSD | ¥200 |
|
|
| **总计** | | **¥2,500/月** |
|
|
|
|
###
|
|
|
|
### 人力资源
|
|
|
|
| 角色 | 人数 | 投入时间 |
|
|
|:---|:---|:---|
|
|
| 系统架构师 | 1 | 全职 |
|
|
| 后端工程师 | 1-2 | 全职 |
|
|
| 算法工程师 | 1 | 兼职 |
|
|
| 前端工程师 | 1 | 兼职 |
|
|
| 测试工程师 | 1 | 兼职 |
|
|
|
|
---
|
|
|
|
## 🎯 关键成功指标 (KPI)
|
|
|
|
### 技术指标
|
|
|
|
| 指标 | 当前 | 目标 | 验收标准 |
|
|
|:---|:---|:---|:---|
|
|
| 检索准确率 | 60% | 90% | Top-5相关度 |
|
|
| 回答置信度 | 40% | 85% | 人工评估 |
|
|
| 响应时间 | 5s | <1s | P95延迟 |
|
|
| 系统可用性 | 95% | 99.9% | 月度统计 |
|
|
|
|
### 业务指标
|
|
|
|
| 指标 | 当前 | 目标 |
|
|
|:---|:---|:---|
|
|
| 支持文献数 | 87 | 50,000 |
|
|
| 覆盖基因家族 | 3 | 200+ |
|
|
| 支持物种 | 5 | 100+ |
|
|
| 日活跃用户 | 1 | 100+ |
|
|
|
|
---
|
|
|
|
## 🚀 立即行动项
|
|
|
|
### 今天 (3月31日)
|
|
|
|
- [ ] 启动API服务测试
|
|
- [ ] 验证v5集成接口
|
|
- [ ] 测试番茄P450提取
|
|
|
|
### 本周 (3月31日-4月6日)
|
|
|
|
- [ ] 前端集成v5提取
|
|
- [ ] 批量处理脚本
|
|
- [ ] 测试10篇论文
|
|
|
|
### 本月 (4月)
|
|
|
|
- [ ] Phase 4: 知识图谱
|
|
- [ ] 扩展期刊支持 (Springer/Elsevier)
|
|
- [ ] 1,000篇文献索引
|
|
|
|
---
|
|
|
|
## 📁 相关文档
|
|
|
|
```
|
|
gene-family-mas-v2/
|
|
├── RAG_MASTER_PLAN.md # 本总计划
|
|
├── INTEGRATION_PLAN.md # v5集成计划
|
|
├── memory/ # 历史记录
|
|
│ ├── 2026-03-19-v2-phase1-complete.md
|
|
│ ├── 2026-03-19-v2-phase2-3-complete.md
|
|
│ └── 2026-03-30.md
|
|
├── api/ # API层
|
|
│ └── rag_routes.py # ✅ 已集成v5
|
|
├── src/ # 核心代码
|
|
│ ├── rag/ # RAG模块
|
|
│ └── llm/ # LLM模块
|
|
└── evaluation/ # 评估结果
|
|
└── auto_results/ # 提取结果
|
|
```
|
|
|
|
---
|
|
|
|
## 💡 核心设计原则
|
|
|
|
1. **技能化架构** - 每个分析阶段独立技能
|
|
2. **通用提取** - 支持所有期刊的补充材料
|
|
3. **可解释性** - 每个回答可溯源到文献
|
|
4. **持续学习** - 从用户反馈中改进
|
|
5. **生产优先** - 从设计之初考虑稳定性
|
|
|
|
---
|
|
|
|
*总计划制定: 2026-03-31*
|
|
*版本: Master Plan v1.0*
|
|
*下次评审: 2026-04-07*
|