# ASL 模块开发里程碑

> **文档版本：** V3.0  
> **创建日期：** 2025-11-16  
> **维护者：** AI智能文献开发团队  
> **最后更新：** 2025-11-16  
> **⭐ 重要：基于真实架构（Frontend-v2 + Backend增量演进）**

---

## 📋 文档概述

本文档定义 ASL（AI智能文献）模块的完整开发里程碑，采用 **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-16 更新）**：平台已提供基础设施服务  
> **说明**：存储、日志、异步任务等服务已在平台级实现（`backend/src/common/`），ASL模块可直接使用  
> **参考文档**：[平台基础设施规划](../../../09-架构实施/04-平台基础设施规划.md)

**平台已提供服务（无需ASL模块实现）**：
- ✅ 存储服务：`import { storage } from '@/common/storage'` - 文件上传下载
- ✅ 日志系统：`import { logger } from '@/common/logging'` - 标准化日志
- ✅ 异步任务：`import { jobQueue } from '@/common/jobs'` - 长时间任务处理
- ✅ 缓存服务：`import { cache } from '@/common/cache'` - 分布式缓存
- ✅ 数据库：`import { prisma } from '@/config/database'` - 全局Prisma实例

**任务**：
- [ ] 创建 `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/jobs等）

---

#### **M1.3 - LLM筛选核心**（Week 2, Day 1-2）

**任务**：
- [ ] 实现双模型并行调用逻辑
  - 复用 `common/llm/adapters/LLMFactory.ts`
  - 调用 DeepSeek-V3 + Qwen3-72B
- [ ] 定义JSON Schema（PICO判断结构）
- [ ] 设计提示词模板（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 质量评估逻辑

**交付物**：
- ✅ 可成功提取英文医学PDF（10-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-16: V3.0 重写，基于真实架构（Frontend-v2 + Backend增量演进 + 10个Schema）
- 2025-11-16: V2.0 重写，基于三阶段路线图详细规划里程碑
- 2025-10-29: V1.0 创建，初始版本
