214 lines
6.8 KiB
Markdown
214 lines
6.8 KiB
Markdown
# v5集成到API - 完整执行计划
|
|||
|
|
|
||
|
|
> 集成时间: 2026-03-31 02:08
|
||
|
|
> 状态: ✅ 已完成
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ✅ 已完成的工作
|
||
|
|
|
||
|
|
### 1. API路由集成
|
||
|
|
|
||
|
|
**文件**: `api/rag_routes.py`
|
||
|
|
|
||
|
|
**新增内容**:
|
||
|
|
```python
|
||
|
|
# 请求模型
|
||
|
|
class PhylogenyExtractionRequest(BaseModel):
|
||
|
|
pdf_path: str
|
||
|
|
doi: Optional[str] = None
|
||
|
|
pmcid: Optional[str] = None
|
||
|
|
auto_fetch_supplementary: bool = True
|
||
|
|
|
||
|
|
# 提取接口
|
||
|
|
@router.post("/rag/phylogeny/extract")
|
||
|
|
async def extract_phylogeny(request: PhylogenyExtractionRequest)
|
||
|
|
|
||
|
|
# 状态查询接口
|
||
|
|
@router.get("/rag/phylogeny/status/{pdf_name}")
|
||
|
|
async def get_phylogeny_status(pdf_name: str)
|
||
|
|
```
|
||
|
|
|
||
|
|
**功能**:
|
||
|
|
- ✅ 接收PDF路径、DOI、PMCID
|
||
|
|
- ✅ 调用v5提取器
|
||
|
|
- ✅ 自动获取补充材料
|
||
|
|
- ✅ 返回提取结果
|
||
|
|
- ✅ 查询提取状态
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📋 下一步执行计划
|
||
|
|
|
||
|
|
### 步骤1: 测试API接口 (立即)
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 1. 启动API服务
|
||
|
|
cd /home/xia-lab/gene-family-mas-v2
|
||
|
|
conda activate gfpy312
|
||
|
|
python -m api.main
|
||
|
|
|
||
|
|
# 2. 测试提取接口
|
||
|
|
curl -X POST http://localhost:8000/rag/phylogeny/extract \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{
|
||
|
|
"pdf_path": "/home/xia-lab/gene-family-mas-v2/paper/ceshi/番茄p450基因家族BMCgenomics2020.pdf",
|
||
|
|
"doi": "10.1186/s12864-019-5483-x",
|
||
|
|
"pmcid": "PMC6367802"
|
||
|
|
}'
|
||
|
|
|
||
|
|
# 3. 测试状态查询
|
||
|
|
curl http://localhost:8000/rag/phylogeny/status/番茄p450基因家族BMCgenomics2020
|
||
|
|
```
|
||
|
|
|
||
|
|
### 步骤2: 前端集成 (明天)
|
||
|
|
|
||
|
|
**修改**: `frontend/main.py` 或 Vue前端
|
||
|
|
|
||
|
|
**新增功能**:
|
||
|
|
- 上传PDF文件
|
||
|
|
- 输入DOI/PMCID
|
||
|
|
- 显示提取进度
|
||
|
|
- 展示分组结果
|
||
|
|
- 可视化系统发育树
|
||
|
|
|
||
|
|
### 步骤3: 批量处理 (本周)
|
||
|
|
|
||
|
|
**脚本**: `scripts/batch_phylogeny_extract.py`
|
||
|
|
|
||
|
|
**功能**:
|
||
|
|
- 读取论文列表CSV
|
||
|
|
- 批量调用提取API
|
||
|
|
- 结果存入数据库
|
||
|
|
- 生成统计报告
|
||
|
|
|
||
|
|
### 步骤4: 扩展到更多期刊 (下周)
|
||
|
|
|
||
|
|
**优先级**:
|
||
|
|
1. Springer适配器 (2-3天)
|
||
|
|
2. Elsevier适配器 (2-3天)
|
||
|
|
3. Wiley适配器 (2-3天)
|
||
|
|
|
||
|
|
### 步骤5: 与RAG检索集成 (第2周)
|
||
|
|
|
||
|
|
**功能**:
|
||
|
|
- 提取结果存入Qdrant
|
||
|
|
- RAG回答时引用系统发育信息
|
||
|
|
- 支持系统发育相关问答
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🎯 完整Pipeline架构
|
||
|
|
|
||
|
|
```
|
||
|
|
用户请求
|
||
|
|
↓
|
||
|
|
┌─────────────────────────────────────────┐
|
||
|
|
│ API Layer (FastAPI) │
|
||
|
|
│ ┌─────────────┐ ┌─────────────────┐ │
|
||
|
|
│ │ /rag/chat │ │ /rag/phylogeny │ │
|
||
|
|
│ │ (原有) │ │ /extract (v5) │ │
|
||
|
|
│ └──────┬──────┘ └────────┬────────┘ │
|
||
|
|
└─────────┼────────────────────┼──────────┘
|
||
|
|
↓ ↓
|
||
|
|
┌─────────┴────────────────────┴──────────┐
|
||
|
|
│ Extraction Layer (v5) │
|
||
|
|
│ ┌─────────────┐ ┌─────────────────┐ │
|
||
|
|
│ │ PDF Extract │ │ Universal │ │
|
||
|
|
│ │ (基础信息) │ │ Supplementary │ │
|
||
|
|
│ └──────┬──────┘ │ Fetcher │ │
|
||
|
|
│ ↓ └────────┬────────┘ │
|
||
|
|
│ ┌─────────────┐ ↓ │
|
||
|
|
│ │ Excel Parse │ ┌─────────────────┐ │
|
||
|
|
│ │ (分组详情) │←───│ Europe PMC │ │
|
||
|
|
│ └─────────────┘ │ Springer │ │
|
||
|
|
│ │ Crawler │ │
|
||
|
|
└─────────────────────────────────────────┘
|
||
|
|
↓
|
||
|
|
┌─────────────────────────────────────────┐
|
||
|
|
│ Storage Layer │
|
||
|
|
│ ┌─────────────┐ ┌─────────────────┐ │
|
||
|
|
│ │ JSON Results│ │ Qdrant Vector │ │
|
||
|
|
│ │ (文件系统) │ │ Store (可选) │ │
|
||
|
|
│ └─────────────┘ └─────────────────┘ │
|
||
|
|
└─────────────────────────────────────────┘
|
||
|
|
↓
|
||
|
|
┌─────────────────────────────────────────┐
|
||
|
|
│ Response Layer │
|
||
|
|
│ ┌─────────────┐ ┌─────────────────┐ │
|
||
|
|
│ │ 分组详情 │ │ Confidence │ │
|
||
|
|
│ │ 基因列表 │ │ Score 100/100 │ │
|
||
|
|
│ └─────────────┘ └─────────────────┘ │
|
||
|
|
└─────────────────────────────────────────┘
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📊 时间节点
|
||
|
|
|
||
|
|
| 阶段 | 任务 | 时间 | 负责人 |
|
||
|
|
|:---|:---|:---|:---|
|
||
|
|
| ✅ 已完成 | API集成 | 3月31日 | xialab的幸运星 |
|
||
|
|
| ⏳ 今天 | 接口测试 | 3月31日 | xialab的幸运星 |
|
||
|
|
| 📅 明天 | 前端集成 | 4月1日 | 待分配 |
|
||
|
|
| 📅 本周 | 批量处理 | 4月1-5日 | 待分配 |
|
||
|
|
| 📅 下周 | 多期刊扩展 | 4月8-12日 | 待分配 |
|
||
|
|
| 📅 第2周 | RAG集成 | 4月15-19日 | 待分配 |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🚀 立即执行命令
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 1. 进入项目目录
|
||
|
|
cd /home/xia-lab/gene-family-mas-v2
|
||
|
|
|
||
|
|
# 2. 激活环境
|
||
|
|
conda activate gfpy312
|
||
|
|
|
||
|
|
# 3. 启动API服务
|
||
|
|
python -m api.main
|
||
|
|
|
||
|
|
# 4. 测试接口 (新终端)
|
||
|
|
curl -X POST http://localhost:8000/rag/phylogeny/extract \
|
||
|
|
-H "Content-Type: application/json" \
|
||
|
|
-d '{
|
||
|
|
"pdf_path": "/home/xia-lab/gene-family-mas-v2/paper/ceshi/番茄p450基因家族BMCgenomics2020.pdf",
|
||
|
|
"doi": "10.1186/s12864-019-5483-x",
|
||
|
|
"pmcid": "PMC6367802"
|
||
|
|
}'
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📁 相关文件
|
||
|
|
|
||
|
|
```
|
||
|
|
gene-family-mas-v2/
|
||
|
|
├── api/
|
||
|
|
│ └── rag_routes.py # ✅ 已集成v5接口
|
||
|
|
├── extract_phylogeny_v5_universal.py # v5提取器
|
||
|
|
├── universal_supplementary_fetcher.py # 通用获取器
|
||
|
|
├── INTEGRATION_PLAN.md # 本计划文档
|
||
|
|
└── evaluation/auto_results/ # 提取结果目录
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 💡 关键决策
|
||
|
|
|
||
|
|
### 已完成
|
||
|
|
- ✅ v5集成到API
|
||
|
|
- ✅ 支持自动补充材料获取
|
||
|
|
- ✅ 支持状态查询
|
||
|
|
|
||
|
|
### 待决策
|
||
|
|
- [ ] 是否立即启动API测试?
|
||
|
|
- [ ] 是否明天开始前端集成?
|
||
|
|
- [ ] 是否本周开始批量处理?
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
*计划制定: 2026-03-31 02:08*
|
||
|
|
*集成完成: 2026-03-31 02:08*
|