Files
AIclinicalresearch/docs/03-业务模块/ASL-AI智能文献/04-开发计划/01-开发里程碑.md
HaHafeng 3634933ece refactor(asl): ASL frontend architecture refactoring with left navigation
- feat: Create ASLLayout component with 7-module left navigation
- feat: Implement Title Screening Settings page with optimized PICOS layout
- feat: Add placeholder pages for Workbench and Results
- fix: Fix nested routing structure for React Router v6
- fix: Resolve Spin component warning in MainLayout
- fix: Add QueryClientProvider to App.tsx
- style: Optimize PICOS form layout (P+I left, C+O+S right)
- style: Align Inclusion/Exclusion criteria side-by-side
- docs: Add architecture refactoring and routing fix reports

Ref: Week 2 Frontend Development
Scope: ASL module MVP - Title Abstract Screening
2025-11-18 21:51:51 +08:00

561 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ASL 模块开发里程碑
> **文档版本:** V3.0
> **创建日期:** 2025-11-16
> **维护者:** AI智能文献开发团队
> **最后更新:** 2025-11-16
> **⭐ 重要基于真实架构Frontend-v2 + Backend增量演进**
---
## 📋 文档概述
本文档定义 ASLAI智能文献模块的完整开发里程碑采用 **MVP → V1.0 → V2.0** 三阶段渐进式演进策略。
**架构前提:**
- ✅ Frontend-v2 全新架构(顶部导航 + 模块注册)- Week 2 Day 6-7 已完成
- ✅ Backend 增量演进架构legacy/ + common/ + modules/- Week 2 Day 8-9 已完成
- ✅ 数据库 10个Schema隔离 - Week 1 已完成
- 🚧 ASL 模块占位就绪,等待 Week 3 开发
---
## 🏗️ 当前架构基础(已完成)
### Frontend-v2 真实架构
```
frontend-v2/src/
├── framework/ # ✅ 已实现Week 2 Day 6-7
│ ├── layout/
│ │ ├── MainLayout.tsx # ✅ 主布局(顶部导航)
│ │ └── TopNavigation.tsx # ✅ 顶部导航栏6个模块
│ ├── modules/
│ │ ├── moduleRegistry.ts # ✅ 模块注册中心
│ │ ├── ErrorBoundary.tsx # ✅ 错误边界
│ │ └── types.ts # ✅ 模块类型定义
│ ├── router/
│ │ └── RouteGuard.tsx # ✅ 路由守卫
│ └── permission/
│ ├── PermissionContext.tsx # ✅ 权限控制
│ └── usePermission.ts # ✅ 权限Hook
└── modules/ # 📦 业务模块
├── asl/ # 🚧 ASL模块占位Week 3开发
│ └── index.tsx # ✅ 占位页面
├── aia/ # ✅ AI问答占位
├── pkb/ # ✅ 知识库(占位)
├── dc/ # ✅ 数据清洗(占位)
├── ssa/ # ✅ 统计分析(占位)
└── st/ # ✅ 统计工具(占位)
```
### Backend 真实架构
```
backend/src/
├── legacy/ # ✅ 现有业务Week 2 Day 8-9完成迁移
│ ├── routes/ # 7个路由文件
│ │ ├── projects.ts # AIA: 项目路由
│ │ ├── agents.ts # AIA: 智能体路由
│ │ ├── conversations.ts # AIA: 对话路由
│ │ ├── chatRoutes.ts # AIA: 通用对话
│ │ ├── knowledgeBases.ts # PKB: 知识库路由
│ │ ├── batchRoutes.ts # PKB: 批处理路由
│ │ └── reviewRoutes.ts # RVW: 稿件审查路由
│ ├── controllers/ # 控制器
│ └── services/ # 服务
├── common/ # ✅ 通用能力层(已实现)
│ ├── llm/adapters/ # LLM适配器
│ │ ├── DeepSeekAdapter.ts # ✅ DeepSeek-V3
│ │ ├── QwenAdapter.ts # ✅ Qwen3-72B
│ │ └── LLMFactory.ts # ✅ 工厂类
│ ├── rag/
│ │ └── DifyClient.ts # ✅ RAG客户端
│ ├── document/
│ │ └── ExtractionClient.ts # ✅ 文档提取客户端
│ ├── middleware/
│ │ └── validateProject.ts # ✅ 验证中间件
│ └── utils/
│ └── jsonParser.ts # ✅ JSON解析工具
└── modules/ # 🌟 新模块开发区
└── asl/ # 🚧 ASL模块空目录Week 3开发
└── (待创建)
```
### Database Schema已隔离
```
PostgreSQL 15 + Prisma 6.17.0
✅ platform_schema - 用户表users
✅ aia_schema - AI问答projects, conversations, messages等
✅ pkb_schema - 知识库knowledge_bases, documents, batch_tasks等
🚧 asl_schema - AI智能文献Week 3 定义表结构)
📋 common_schema - 通用能力层(预留)
📋 dc_schema - 数据清洗(预留)
📋 rvw_schema - 稿件审查(预留)
📋 admin_schema - 运营管理(预留)
📋 ssa_schema - 统计分析(预留)
📋 st_schema - 统计工具(预留)
```
---
## 🎯 总体战略
```
┌──────────────────────────────────────────────────────────────┐
│ ASL 三阶段演进路线图 │
├──────────────────────────────────────────────────────────────┤
│ MVP (4周) V1.0 (6周) V2.0 (8周) │
│ ├─ 基础可用 ├─ 高质量 ├─ 医学级 │
│ ├─ 快速验证 ├─ 智能优化 ├─ 自动审计 │
│ ├─ 成本优先 ├─ 质量提升 ├─ 完整追溯 │
│ └─ 人工复核 └─ 规则验证 └─ HITL智能分流 │
└──────────────────────────────────────────────────────────────┘
核心设计原则:
1. 架构先行:在已完成的 Frontend-v2 和 Backend 架构基础上开发
2. 分步实施:每阶段交付可用功能
3. 质量可控准确率从85% → 90% → 95%
4. 成本可控优先使用DeepSeek+Qwen3可切换高端模型
```
---
## 📊 三阶段里程碑对比
| 维度 | MVP (4周) | V1.0 (6周) | V2.0 (8周) |
|------|----------|-----------|-----------|
| **交付范围** | 标题摘要初筛 | + 全文复筛 + PDF提取 | + 数据提取 + 质量审计 |
| **准确率目标** | ≥ 85% | ≥ 90% | ≥ 95% |
| **模型组合** | DeepSeek + Qwen3 | 成本优化策略 | 三模型仲裁 |
| **质量控制** | 双模型验证 + JSON Schema | + Few-shot + 规则引擎 | + HITL + 自动审计 |
| **可追溯性** | 基本日志 | 完整证据链 | 审计级记录 |
| **前端** | 基础工作台Frontend-v2 | 优化交互 | 完整UI |
| **后端** | modules/asl/核心功能 | + PDF服务集成 | + 高级质量保障 |
| **成本/1000篇** | ¥5 | ¥21 | ¥24 + 仲裁 |
---
## 🚀 MVP 阶段(第 1-4 周)
### 阶段目标
**交付标准**
- ✅ 标题摘要初筛功能完整可用
- ✅ Excel 导入、AI 双模型筛选、人工复核
- ✅ 准确率 ≥ 85%
- ✅ 成本控制:≤ ¥50/1000 篇
- ✅ 前端集成到 Frontend-v2 顶部导航
- ✅ 后端 API 注册到 /api/v1/asl/*
### 里程碑划分
#### **M1.1 - 数据库Schema设计**Week 1, Day 1
**任务**
- [ ] 设计 asl_schema 表结构4张核心表
- `asl_screening_projects`(筛选项目表)
- `asl_literatures`(文献条目表)
- `asl_screening_results`(筛选结果表)
- `asl_screening_tasks`(筛选任务表)
- [ ]`backend/prisma/schema.prisma` 中添加模型定义
- 使用 `@@schema("asl_schema")` 指定Schema
- 定义外键关系(引用 `platform_schema.users`
- **添加 OSS 相关字段**(支持云原生部署):
- `pdfUrl` - PDF访问URL
- `pdfOssKey` - OSS存储Key
- `pdfFileSize` - 文件大小
- [ ] 运行 Prisma 迁移
```bash
cd backend
npx prisma migrate dev --name add_asl_tables
npx prisma generate
```
**交付物**
- ✅ asl_schema 表创建完成
- ✅ Prisma Client 生成成功
- ✅ 数据库迁移成功
- ✅ OSS 字段预留完成
---
#### **M1.2 - 后端API搭建**Week 1, Day 2-3
> **⭐ 前置条件2025-11-17 更新)**:平台基础设施已完成实施 ✅
> **完成状态**8个核心模块100%测试通过
> **完成报告**[平台基础设施实施完成报告](../../../08-项目管理/03-每周计划/2025-11-17-平台基础设施实施完成报告.md)
> **使用指南**[backend/src/common/README.md](../../../../backend/src/common/README.md)
**平台已提供的8个核心模块无需ASL模块实现**
| # | 模块 | 路径 | 使用方式 | 说明 |
|---|------|------|---------|------|
| 1 | **存储服务** | `common/storage/` | `import { storage } from '@/common/storage'` | 文件上传下载(本地/OSS切换 |
| 2 | **日志系统** | `common/logging/` | `import { logger } from '@/common/logging'` | 结构化JSON日志 |
| 3 | **缓存服务** | `common/cache/` | `import { cache } from '@/common/cache'` | 内存/Redis缓存 |
| 4 | **异步任务** | `common/jobs/` | `import { jobQueue } from '@/common/jobs'` | 长时间任务处理 |
| 5 | **健康检查** | `common/health/` | `import { registerHealthRoutes } from '@/common/health'` | SAE健康检查 |
| 6 | **监控指标** | `common/monitoring/` | `import { Metrics } from '@/common/monitoring'` | 性能监控和告警 |
| 7 | **数据库连接池** | `config/database.ts` | `import { prisma } from '@/config/database'` | 全局Prisma实例 |
| 8 | **环境配置** | `config/env.ts` | `import { env } from '@/config/env'` | 统一配置管理 |
**任务**
- [ ] 创建 `backend/src/modules/asl/` 目录结构
```
modules/asl/
├── routes/
│ └── index.ts # 路由注册
├── controllers/
│ ├── projectController.ts # 项目控制器
│ ├── literatureController.ts # 文献控制器
│ └── screeningController.ts # 筛选控制器
├── services/
│ ├── projectService.ts # 项目业务逻辑
│ ├── literatureService.ts # 文献业务逻辑
│ └── llmScreeningService.ts # LLM筛选服务
├── schemas/
│ └── screening.schema.ts # JSON Schema定义
└── types/
└── screening.types.ts # TypeScript类型
```
- [ ] 在 `backend/src/index.ts` 中注册ASL路由
```typescript
import { aslRoutes } from './modules/asl/routes/index.js'
await app.register(aslRoutes, { prefix: '/api/v1/asl' })
```
- [ ] 实现核心API参考 API设计规范文档
- `POST /api/v1/asl/projects` - 创建项目
- `POST /api/v1/asl/projects/:id/literatures/import` - 导入文献
- `POST /api/v1/asl/projects/:id/screening/start` - 启动筛选
- `GET /api/v1/asl/projects/:id/screening/results` - 获取结果
- [ ] **配置环境变量**
```bash
# .env.development本地开发
STORAGE_TYPE=local
# .env.production生产环境SAE配置
STORAGE_TYPE=oss
OSS_REGION=oss-cn-hangzhou
OSS_BUCKET=aiclinical-prod
```
**交付物**
- ✅ ASL后端目录结构完整
- ✅ API路由注册成功
- ✅ 核心API可调用Postman测试通过
- ✅ 正常使用平台服务storage/logger/cache/jobQueue/prisma等8个模块
---
#### **M1.3 - LLM筛选核心**Week 2, Day 1-2
**任务**
- [ ] 实现双模型并行调用逻辑
- 复用 `common/llm/adapters/LLMFactory.ts`
- 调用 DeepSeek-V3 + Qwen3-72B
- [ ] 定义JSON SchemaPICO判断结构
- [ ] 设计提示词模板v1.0.0
- 存放在 `backend/prompts/asl/screening/v1.0.0-basic.txt`
- [ ] 实现冲突检测算法
- [ ] 实现自动分流规则(置信度 < 0.7 → 人工复核)
**交付物**
- ✅ 双模型可成功调用
- ✅ JSON Schema验证通过率 > 95%
- ✅ 冲突检测准确
---
#### **M1.4 - 前端模块开发**Week 2-3
**任务**
- [ ] 更新 `frontend-v2/src/modules/asl/index.tsx`
```typescript
// 移除占位标记,实现真实模块
const ASLModule: ModuleDefinition = {
id: 'literature-platform',
name: 'AI智能文献',
path: '/literature',
icon: FileSearchOutlined,
component: lazy(() => import('./routes')),
placeholder: false, // ← 改为 false
requiredVersion: 'advanced',
}
```
- [ ] 创建 `frontend-v2/src/modules/asl/` 子目录
```
asl/
├── index.tsx # 模块定义
├── routes.tsx # 路由配置
├── pages/
│ ├── ProjectList.tsx # 项目列表
│ ├── ScreeningSettings.tsx # 设置与启动
│ ├── ScreeningWorkbench.tsx # 审核工作台
│ └── ScreeningResults.tsx # 初筛结果
├── components/
│ ├── ExcelUploader.tsx # Excel上传
│ ├── ScreeningTable.tsx # 筛选表格
│ ├── DualModelModal.tsx # 双视图模态框
│ └── ResultsExport.tsx # 结果导出
├── api/
│ ├── projectApi.ts # 项目API
│ ├── screeningApi.ts # 筛选API
│ └── index.ts
├── hooks/
│ ├── useScreening.ts # 筛选Hook
│ └── useLiterature.ts # 文献Hook
└── types/
└── screening.ts # 类型定义
```
- [ ] 实现Excel上传功能使用 `xlsx` 库)
- [ ] 实现审核工作台(表格化布局,参考原型图)
- [ ] 实现双视图原文审查模态框
- [ ] 实现结果展示和导出
**交付物**
- ✅ ASL模块在顶部导航显示并可点击
- ✅ 前端3个主要页面完整
- ✅ 前后端联调成功
---
#### **M1.5 - 集成测试与验收**Week 4
**任务**
- [ ] 端到端完整流程测试
- 上传 199篇文献 Excel → 筛选 → 复核 → 导出
- [ ] 准确率测试(使用金标准数据集)
- 目标:≥ 85%
- [ ] 性能测试
- 100篇文献筛选 ≤ 10分钟
- [ ] 修复Bug和优化
**交付物**
- ✅ 准确率 ≥ 85%
- ✅ 双模型一致率 ≥ 80%
- ✅ JSON Schema验证通过率 ≥ 95%
- ✅ 人工复核队列 ≤ 20%
---
## 📈 V1.0 阶段(第 5-10 周)
### 阶段目标
**交付标准**
- ✅ 新增全文复筛功能
- ✅ PDF 提取集成Nougat + PyMuPDF
- ✅ Unpaywall API 集成(自动下载全文)
- ✅ Few-shot 示例库
- ✅ 规则引擎验证
- ✅ 准确率 ≥ 90%
### 里程碑划分
#### **M2.1 - PDF 提取服务集成**Week 5
**任务**
- [ ] 封装 `ExtractionClient`(已有 `common/document/ExtractionClient.ts`,需优化)
- [ ] 实现自动语言检测和策略选择
- [ ] Python 微服务优化(`extraction_service/`
- 优化 Nougat 调用性能
- 添加超时和错误处理
- [ ] 实现 PDF 质量评估逻辑
**交付物**
- ✅ 可成功提取英文医学PDF10-30页
- ✅ 提取准确率 > 90%
---
#### **M2.2 - Unpaywall API 集成**Week 5
**任务**
- [ ] 创建 `backend/src/common/literature/UnpaywallClient.ts`
- [ ] 实现批量查询 DOI 可下载性
- [ ] 实现 PDF 下载功能
- [ ] 文件存储管理
**交付物**
- ✅ 用户可一键检查 100 篇文献的可下载性
- ✅ 可自动下载 OA 全文
---
#### **M2.3 - 全文复筛功能**Week 6-7
**任务**
- [ ] 扩展数据库表(`asl_full_text_screening_results`
- [ ] 后端全文复筛API
- [ ] 前端全文审核工作台(复用组件 + PDF查看器
**交付物**
- ✅ 用户可对初筛纳入文献进行全文复筛
- ✅ 支持 PDF 在线查看和标注
---
#### **M2.4 - 质量增强功能**Week 8-10
**任务**
- [ ] 人工标注 20-30 个 Few-shot 示例
- [ ] 定义验证规则样本量、P值、必填字段
- [ ] 实现成本优化策略(快速初筛 + 高价值复核)
- [ ] 完善证据链记录
**交付物**
- ✅ Few-shot 示例库 ≥ 20 个
- ✅ 规则引擎覆盖率 ≥ 80%
- ✅ 证据链完整性 100%
- ✅ 准确率 ≥ 90%
---
## 🏆 V2.0 阶段(第 11-18 周)
### 阶段目标
**交付标准**
- ✅ 新增全文数据提取功能
- ✅ 三模型共识仲裁
- ✅ HITL 智能分流
- ✅ 提示词版本管理
- ✅ 自动质量审计
- ✅ 准确率 ≥ 95%(医学级)
### 里程碑划分
#### **M3.1 - 全文数据提取模块**Week 11-13
**任务**
- [ ] 扩展数据库表(`asl_extraction_results`, `asl_extraction_revisions`
- [ ] 后端分段提取逻辑
- [ ] 前端表格化数据审查台(文献×变量矩阵)
**交付物**
- ✅ 用户可配置提取变量清单
- ✅ 批量提取 50 篇文献的结构化数据
- ✅ 提取准确率 ≥ 92%
---
#### **M3.2 - 医学级质量保障**Week 14-16
**任务**
- [ ] 三模型仲裁(冲突 → 启用 Claude-4.5
- [ ] HITL 智能分流(优先级评分)
- [ ] 提示词版本管理Git + 语义化版本)
- [ ] 自动质量审计系统
**交付物**
- ✅ 三模型仲裁成功率 > 95%
- ✅ HITL 分流准确率 > 85%
- ✅ 提示词版本管理系统上线
- ✅ 自动质量审计每周运行
---
#### **M3.3 - 高级功能与优化**Week 17-18
**任务**
- [ ] Chain of Thought (CoT) 推理
- [ ] 动态示例选择(语义相似度)
- [ ] 批处理性能优化Bull + Redis
- [ ] 用户体验优化实时进度、PDF标注、快捷键
**交付物**
- ✅ 系统稳定性测试通过
- ✅ 性能测试1000 篇文献 < 30 分钟
- ✅ 用户验收测试通过
- ✅ 准确率 ≥ 95%
---
## 📋 交付物检查清单
### MVP 阶段
- [ ] **数据库**
- [ ] asl_schema 4张表创建
- [ ] Prisma 迁移成功
- [ ] **后端**
- [ ] `modules/asl/` 目录结构完整
- [ ] API 路由注册到 `/api/v1/asl/*`
- [ ] LLM筛选服务可用
- [ ] **前端**
- [ ] ASL模块注册到 `moduleRegistry.ts`
- [ ] 顶部导航显示"AI智能文献"
- [ ] 3个主页面完整
- [ ] **测试**
- [ ] 准确率测试 ≥ 85%
- [ ] 端到端测试通过
### V1.0 阶段
- [ ] **新增功能**
- [ ] PDF 提取服务
- [ ] Unpaywall API 集成
- [ ] 全文复筛
- [ ] Few-shot 示例库
- [ ] **测试**
- [ ] 准确率 ≥ 90%
### V2.0 阶段
- [ ] **新增功能**
- [ ] 全文数据提取
- [ ] 三模型仲裁
- [ ] HITL 智能分流
- [ ] 自动质量审计
- [ ] **测试**
- [ ] 准确率 ≥ 95%
- [ ] 医学专家验证
---
## 📊 关键指标跟踪
### 质量指标
| 指标 | MVP 目标 | V1.0 目标 | V2.0 目标 |
|------|---------|----------|----------|
| 提取准确率 | ≥ 85% | ≥ 90% | ≥ 95% |
| 双模型一致率 | ≥ 80% | ≥ 85% | ≥ 90% |
| JSON Schema 验证通过率 | ≥ 95% | ≥ 98% | ≥ 99% |
| 人工复核队列占比 | ≤ 20% | ≤ 15% | ≤ 10% |
### 成本指标
| 场景 | MVP | V1.0 | V2.0 |
|------|-----|------|------|
| 标题摘要筛选1000篇 | ¥5 | ¥21 | ¥24 |
| 全文复筛200篇 | - | ¥30 | ¥35 |
| 数据提取50篇 | - | ¥60 | ¥80 |
---
## 📚 相关文档
- [质量保障与可追溯策略](../02-技术设计/06-质量保障与可追溯策略.md)
- [文献处理技术选型](../02-技术设计/07-文献处理技术选型.md)
- [数据库设计](../02-技术设计/01-数据库设计.md)
- [API 设计规范](../02-技术设计/02-API设计规范.md)
- [前后端模块化架构设计-V2](../../../00-系统总体设计/前后端模块化架构设计-V2.md)
- [Schema隔离架构设计](../../../09-架构实施/01-Schema隔离架构设计10个.md)
---
**更新日志**
- 2025-11-18: V3.1 更新补充平台基础设施完成状态8个核心模块
- 2025-11-16: V3.0 重写基于真实架构Frontend-v2 + Backend增量演进 + 10个Schema
- 2025-11-16: V2.0 重写,基于三阶段路线图详细规划里程碑
- 2025-10-29: V1.0 创建,初始版本