Files
2026-07-10 17:59:59 +08:00

6.8 KiB
Executable File

v5集成到API - 完整执行计划

集成时间: 2026-03-31 02:08 状态: ✅ 已完成


✅ 已完成的工作

1. API路由集成

文件: api/rag_routes.py

新增内容:

# 请求模型
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接口 (立即)

# 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日 待分配

🚀 立即执行命令

# 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