Week 3 Development Summary: - Implement negative sign normalization (6 Unicode variants) - Enhance T-test validation with smart sample size extraction - Enhance SE triangle and CI-P consistency validation with subrow support - Add precise sub-cell highlighting for P-values in multi-line cells - Add frontend issue type Chinese translations (6 new types) - Add file format tips for PDF/DOC uploads Technical improvements: - Add _clean_statistical_text() in extractor.py - Add _safe_float() wrapper in validator.py - Add ForensicsReport.tsx component - Update ISSUE_TYPE_LABELS translations Documentation: - Add 2026-02-18 development record - Update RVW module status (v5.1) - Update system status (v5.2) Status: Week 3 complete, ready for Week 4 testing Co-authored-by: Cursor <cursoragent@cursor.com>
436 lines
16 KiB
Markdown
436 lines
16 KiB
Markdown
# RVW稿件审查模块 - 当前状态与开发指南
|
||
|
||
> **文档版本:** v5.1
|
||
> **创建日期:** 2026-01-07
|
||
> **最后更新:** 2026-02-18
|
||
> **维护者:** 开发团队
|
||
> **当前状态:** 🚀 **V2.0 "数据侦探" Week 3 完成(统计验证扩展+用户体验优化)**
|
||
> **文档目的:** 快速了解RVW模块状态,为新AI助手提供上下文
|
||
>
|
||
> **🎉 V2.0 进展(2026-02-18 Week 3):**
|
||
> - ✅ **负号归一化**:防止 float() 崩溃,覆盖 6 种负号变体
|
||
> - ✅ **T 检验验证增强**:智能样本量提取 + subrow 精确高亮
|
||
> - ✅ **SE 三角验证增强**:多行单元格 subrow 支持
|
||
> - ✅ **CI vs P 值验证增强**:subrow 支持 + 灵活 P 值解析
|
||
> - ✅ **前端翻译映射**:新增 6 种 IssueType 中文翻译
|
||
> - ✅ **文件格式提示**:PDF/.doc 上传时提示无法数据验证
|
||
>
|
||
> **🎉 V2.0 进展(Week 1-2):**
|
||
> - ✅ **L1 算术验证器**:行列加总、百分比验证(Day 3)
|
||
> - ✅ **L2 统计验证器**:CI↔P 值一致性、卡方检验逆向验证(Day 6)
|
||
> - ✅ **L2.5 一致性取证**:SE三角验证、SD>Mean检查(Day 6 终审提权)
|
||
> - ✅ **Word 文档解析**:python-docx 表格提取 + 特殊符号提取(Day 2)
|
||
> - ✅ **Skills 核心框架**:types、registry、executor、profile、context(Day 7)
|
||
> - ✅ **DataForensicsSkill**:OSS 集成、依赖注入、优雅降级(Day 8)
|
||
> - ✅ **EditorialSkill + MethodologySkill**:封装现有服务(Day 9)
|
||
> - ✅ **ReviewWorker 改造**:集成 SkillExecutor,支持 V1/V2 切换(Day 10)
|
||
> - ✅ **前端数据验证 Tab**:ForensicsReport 组件、精确单元格高亮(Week 3)
|
||
|
||
---
|
||
|
||
## 📊 模块概览
|
||
|
||
### 基本信息
|
||
|
||
| 项目 | 信息 |
|
||
|------|------|
|
||
| **模块名称** | RVW - 稿件审查系统 (Review) |
|
||
| **模块定位** | 智能期刊审稿辅助系统(可独立销售) |
|
||
| **商业价值** | ⭐⭐⭐⭐⭐ 极高 |
|
||
| **独立性** | ⭐⭐⭐⭐⭐ 极高(用户群完全不同) |
|
||
| **目标用户** | 期刊初审编辑 |
|
||
| **开发状态** | ✅ **核心功能100%完成,支持Word导出,已集成到 frontend-v2** |
|
||
|
||
### 核心目标
|
||
|
||
> 打造一个**"开箱即用"**的智能审稿工具。编辑上传稿件,系统自动运行双重检查(规范性+方法学),输出可供参考的审稿报告。
|
||
>
|
||
> **核心指标**:上传到出报告 < 2分钟;规范性问题检出率 > 80%
|
||
|
||
### 功能规格
|
||
|
||
#### 核心AI能力(已完成 ✅)
|
||
|
||
1. **稿约规范性评估**(11项标准)
|
||
- 文题字数、摘要结构、参考文献、图片DPI等
|
||
- 基于《中华医学超声杂志》稿约标准
|
||
|
||
2. **方法学评估**(3部分,20个检查点)
|
||
- 科研设计评估(9个检查点)
|
||
- 统计学方法描述评估(5个检查点)
|
||
- 统计分析评估(6个检查点)
|
||
|
||
3. **综合评分 + PICO提取**
|
||
- 规范性分数(0-100)
|
||
- 方法学状态(🔴错误 🟡存疑 🟢通过)
|
||
- PICO结构化提取(P/I/C/O)
|
||
|
||
#### 交互功能(✅ 已完成)
|
||
|
||
| 功能 | 旧版本 | 新版本 | 状态 |
|
||
|------|--------|--------|------|
|
||
| 单文件上传 | ✅ | ✅ | ✅ 已完成 |
|
||
| 批量上传 | ❌ | ✅ | ✅ 已完成 |
|
||
| 审稿工作台(宽表) | ❌ | ✅ | ✅ 已完成 |
|
||
| 智能体选择 | 自动 | 用户可选 | ✅ 已完成 |
|
||
| 批量操作 | ❌ | ✅ | ✅ 已完成 |
|
||
| 状态筛选 | ❌ | ✅ | ✅ 已完成 |
|
||
| 历史归档 | ❌ | ✅ | ⏸️ 数据库已支持,UI暂缓 |
|
||
| 系统设置 | ❌ | ✅ | ⏸️ 暂不开发 |
|
||
| 登录页面 | ❌ | ⏸️ | ⏸️ 复用平台登录 |
|
||
| PICO卡片 | ❌ | ✅ | ⏸️ 数据库已支持,UI暂缓 |
|
||
|
||
---
|
||
|
||
## 🏗️ 架构状态
|
||
|
||
### ✅ 已完成迁移(Modules)
|
||
|
||
```
|
||
后端(✅ 已完成):
|
||
backend/src/modules/rvw/
|
||
├── routes/index.ts # v2 API路由(/api/v2/rvw)
|
||
├── controllers/reviewController.ts # 控制器(含批量操作、智能体选择)
|
||
├── services/
|
||
│ ├── reviewService.ts # 核心服务(任务创建、执行)
|
||
│ ├── editorialService.ts # 稿约规范性评估
|
||
│ ├── methodologyService.ts # 方法学评估
|
||
│ └── utils.ts # 工具函数
|
||
├── workers/
|
||
│ └── reviewWorker.ts # pg-boss异步任务处理(V2.0 Skills集成)
|
||
├── skills/ # 🆕 V2.0 Skills 架构
|
||
│ ├── core/ # 核心框架(types, registry, executor等)
|
||
│ ├── library/ # Skill 实现(Forensics, Editorial, Methodology)
|
||
│ └── index.ts # 模块入口
|
||
├── types/index.ts # TypeScript类型定义
|
||
└── __tests__/ # API测试脚本
|
||
|
||
前端(✅ 已完成):
|
||
frontend-v2/src/modules/rvw/
|
||
├── index.tsx # 模块入口
|
||
├── api/index.ts # API接口
|
||
├── types/index.ts # 类型定义
|
||
├── styles/index.css # 样式文件
|
||
├── pages/
|
||
│ └── Dashboard.tsx # 审稿工作台(任务列表、筛选)
|
||
└── components/
|
||
├── Header.tsx # 页头(上传按钮)
|
||
├── Sidebar.tsx # 侧边栏导航
|
||
├── TaskTable.tsx # 任务列表表格
|
||
├── TaskDetail.tsx # 任务详情(进度条+报告+Word导出)
|
||
├── EditorialReport.tsx # 稿约规范性报告
|
||
├── MethodologyReport.tsx # 方法学评估报告
|
||
├── AgentModal.tsx # 智能体选择弹窗
|
||
└── ScoreRing.tsx # 评分环组件
|
||
|
||
旧版本(保留兼容):
|
||
backend/src/legacy/
|
||
├── routes/reviewRoutes.ts # v1 API路由(保留)
|
||
├── controllers/reviewController.ts
|
||
└── services/reviewService.ts
|
||
|
||
Prompt(保持不变):
|
||
backend/prompts/
|
||
├── review_editorial_system.txt # 稿约评估(266行)
|
||
└── review_methodology_system.txt # 方法学评估(257行)
|
||
|
||
数据库(✅ 已完成):
|
||
- ReviewTask表已添加新字段:selectedAgents, editorialScore, methodologyScore, methodologyStatus, picoExtract, isArchived, archivedAt
|
||
- ✅ Schema已迁移到 rvw_schema(2026-01-10完成)
|
||
```
|
||
|
||
---
|
||
|
||
## 📋 开发进度
|
||
|
||
| Phase | 任务 | 状态 | 完成日期 |
|
||
|-------|------|------|---------|
|
||
| Phase 1 | 后端模块迁移与扩展 | ✅ 已完成 | 2026-01-07 |
|
||
| Phase 2 | 数据库字段扩展 | ✅ 已完成 | 2026-01-07 |
|
||
| Phase 3 | 前端重构(frontend-v2) | ✅ 已完成 | 2026-01-07 |
|
||
| Phase 4 | 集成测试与Bug修复 | ✅ 已完成 | 2026-01-10 |
|
||
| Phase 5 | 报告导出(Word) | ✅ 已完成 | 2026-01-10 |
|
||
| Phase 6 | Schema隔离迁移 | ✅ 已完成 | 2026-01-10 |
|
||
| Phase 7 | 系统设置与归档 | ⏸️ 暂缓 | - |
|
||
| **总计** | - | **95%** | - |
|
||
|
||
### Phase 1-5 完成内容
|
||
|
||
**后端(Phase 1):**
|
||
- ✅ 创建 `backend/src/modules/rvw/` 模块结构
|
||
- ✅ 迁移并优化 reviewService、editorialService、methodologyService
|
||
- ✅ 实现智能体选择(selectedAgents:editorial/methodology/both)
|
||
- ✅ 实现批量运行API(batchRunReviewTasks)
|
||
- ✅ 替换 console.log 为 logger 服务
|
||
- ✅ 注册 v2 API路由(/api/v2/rvw)
|
||
- ✅ 实现 pg-boss 异步任务处理(reviewWorker)
|
||
|
||
**数据库(Phase 2):**
|
||
- ✅ 添加 selectedAgents 字段(String[])
|
||
- ✅ 添加 editorialScore 字段(Float?)
|
||
- ✅ 添加 methodologyScore 字段(Float?)- 2026-01-10新增
|
||
- ✅ 添加 methodologyStatus 字段(String?)
|
||
- ✅ 添加 picoExtract 字段(Json?)
|
||
- ✅ 添加 isArchived、archivedAt 字段(归档支持)
|
||
- ✅ 使用 prisma db push 同步到数据库
|
||
|
||
**前端(Phase 3):**
|
||
- ✅ 创建 `frontend-v2/src/modules/rvw/` 模块目录结构
|
||
- ✅ 实现 Dashboard 页面(任务列表、筛选、批量操作)
|
||
- ✅ 实现 TaskDetail 组件(审稿进度条、实时状态轮询)
|
||
- ✅ 实现 EditorialReport 组件(稿约规范性评估报告)
|
||
- ✅ 实现 MethodologyReport 组件(方法学评估报告)
|
||
- ✅ 实现 AgentModal 组件(智能体选择弹窗)
|
||
- ✅ 注册到 moduleRegistry.ts
|
||
|
||
**集成测试与Bug修复(Phase 4):**
|
||
- ✅ 修复方法学分数不显示问题(列表页显示"warn"而不是分数)
|
||
- ✅ 修复只选方法学时详情页不显示报告问题
|
||
- ✅ 修复 activeTab 默认值导致的显示问题
|
||
- ✅ 完整测试单智能体和双智能体审稿流程
|
||
|
||
**报告导出(Phase 5):**
|
||
- ✅ 安装 docx 和 file-saver 库
|
||
- ✅ 实现 Word 文档导出功能
|
||
- ✅ 支持结构化报告(标题、基本信息表格、稿约规范性、方法学评估)
|
||
- ✅ 问题和建议使用不同颜色标记
|
||
|
||
**Schema隔离迁移(Phase 6):**
|
||
- ✅ 将 review_tasks 表从 public 迁移到 rvw_schema
|
||
- ✅ 更新 Prisma schema 中的 @@schema 指令
|
||
- ✅ 重新生成 Prisma Client
|
||
- ✅ 验证所有查询和关联正常工作
|
||
|
||
详细任务清单见:[RVW模块迁移计划](./04-开发计划/RVW模块迁移计划.md)
|
||
|
||
---
|
||
|
||
## 🔧 技术依赖
|
||
|
||
### 复用的平台能力
|
||
|
||
| 能力 | 位置 | 用途 |
|
||
|------|------|------|
|
||
| **LLM网关** | `@/common/llm/LLMFactory` | AI评估 |
|
||
| **文档处理** | `ExtractionClient` | Word/PDF文本提取 |
|
||
| **存储** | `@/common/storage` | 文件存储 |
|
||
| **日志** | `@/common/logging` | 结构化日志 |
|
||
| **任务队列** | `jobQueue` | 异步任务处理 |
|
||
|
||
### LLM模型
|
||
|
||
| 模型 | 用途 | 说明 |
|
||
|------|------|------|
|
||
| DeepSeek-V3 | 默认 | 性价比高,推理能力强 |
|
||
| DeepSeek-R1 | 备选 | 深度推理 |
|
||
| Qwen3-72B | 备选 | 中文理解好 |
|
||
|
||
---
|
||
|
||
## 📚 相关文档
|
||
|
||
### 需求文档
|
||
|
||
- [智能期刊审稿系统MVP PRD](./01-需求分析/智能期刊审稿系统%20MVP%20产品需求文档.md)
|
||
- [智能审稿V7原型](./01-需求分析/智能审稿V7.html) - 可直接浏览器打开
|
||
|
||
### 开发文档
|
||
|
||
- [迁移计划(v2.0整合版)](./04-开发计划/RVW模块迁移计划.md) ⬅️ **主要开发文档**
|
||
|
||
### 参考文档
|
||
|
||
- [现有系统技术摸底报告](../../00-项目概述/现有系统技术摸底报告.md) - Line 578-748
|
||
- [云原生开发规范](../../04-开发规范/08-云原生开发规范.md)
|
||
- [系统架构分层设计](../../00-系统总体设计/01-系统架构分层设计.md)
|
||
|
||
### Prompt文件
|
||
|
||
- [稿约规范性评估标准](./稿约规范性评估标准.txt)
|
||
- [稿件方法学评估标准](./稿件方法学评估标准.txt)
|
||
|
||
---
|
||
|
||
## 🎯 快速开始
|
||
|
||
### 访问审稿模块
|
||
|
||
1. **启动后端**
|
||
```bash
|
||
cd backend
|
||
npm run dev
|
||
```
|
||
|
||
2. **启动前端(新版 frontend-v2)**
|
||
```bash
|
||
cd frontend-v2
|
||
npm run dev
|
||
```
|
||
|
||
3. **访问审稿页面**
|
||
- 打开 `http://localhost:3000`
|
||
- 点击顶部导航栏的 **"预审稿"** 标签
|
||
- 或直接访问 `http://localhost:3000/rvw`
|
||
|
||
4. **测试流程**
|
||
- 点击"上传稿件"按钮
|
||
- 选择Word/PDF文档(≤5MB)
|
||
- 选择智能体(稿约规范性/方法学/两者都选)
|
||
- 点击"运行"按钮
|
||
- 等待AI评估完成(约1-2分钟)
|
||
- 查看评估报告
|
||
|
||
### API测试(新版 v2 API)
|
||
|
||
```http
|
||
### 获取任务列表
|
||
GET http://localhost:3001/api/v2/rvw/tasks
|
||
|
||
### 按状态筛选
|
||
GET http://localhost:3001/api/v2/rvw/tasks?status=pending
|
||
|
||
### 上传稿件
|
||
POST http://localhost:3001/api/v2/rvw/tasks
|
||
Content-Type: multipart/form-data
|
||
# file: 文件
|
||
# selectedAgents: ["editorial", "methodology"]
|
||
|
||
### 运行单个任务
|
||
POST http://localhost:3001/api/v2/rvw/tasks/{{taskId}}/run
|
||
Content-Type: application/json
|
||
{"selectedAgents": ["editorial", "methodology"]}
|
||
|
||
### 批量运行任务
|
||
POST http://localhost:3001/api/v2/rvw/tasks/batch-run
|
||
Content-Type: application/json
|
||
{"taskIds": ["id1", "id2"], "selectedAgents": ["editorial"]}
|
||
|
||
### 获取任务详情
|
||
GET http://localhost:3001/api/v2/rvw/tasks/{{taskId}}
|
||
|
||
### 获取报告
|
||
GET http://localhost:3001/api/v2/rvw/tasks/{{taskId}}/report
|
||
```
|
||
|
||
### 旧版API(保持兼容)
|
||
|
||
```http
|
||
### 上传稿件(旧API)
|
||
POST http://localhost:3001/api/v1/review/upload
|
||
Content-Type: multipart/form-data
|
||
```
|
||
|
||
---
|
||
|
||
## ⚠️ 注意事项
|
||
|
||
### 对新AI助手
|
||
|
||
1. ✅ **核心功能已完成**:前后端已迁移到新架构,可正常使用
|
||
2. ✅ **已集成到 frontend-v2**:通过顶部导航栏"预审稿"进入
|
||
3. ✅ **v2 API 已就绪**:/api/v2/rvw/* 路由可用
|
||
4. ✅ **遵循云原生规范**:使用 logger 服务替代 console.log
|
||
5. ⚠️ **保留旧API**:v1路由保持兼容,支持旧前端
|
||
|
||
### 已完成改造
|
||
|
||
| 问题 | 改造前 | 改造后 | 状态 |
|
||
|------|--------|--------|------|
|
||
| 日志 | console.log | logger服务 | ✅ 已完成 |
|
||
| 用户认证 | Mock用户ID | getUserId(request) | ✅ 已完成 |
|
||
| 智能体选择 | 自动 | 用户可选 | ✅ 已完成 |
|
||
| 批量操作 | 无 | batchRunReviewTasks | ✅ 已完成 |
|
||
|
||
### 待后续改造
|
||
|
||
| 问题 | 当前 | 目标 | 优先级 |
|
||
|------|------|------|--------|
|
||
| Schema位置 | ✅ rvw_schema | - | ✅ 已完成 |
|
||
| 任务处理 | ✅ pg-boss | - | ✅ 已完成 |
|
||
| 报告导出 | ✅ Word (.docx) | PDF优化 | P3 |
|
||
|
||
---
|
||
|
||
## 📈 验收标准
|
||
|
||
根据MVP PRD,验收标准如下:
|
||
|
||
1. **流程通**:用户能成功上传5个PDF,勾选双模型运行,等待3分钟内,状态全部变为"已完成"
|
||
|
||
2. **报告准**:
|
||
- 上传一篇故意删掉"摘要结论"的稿件,规范性智能体必须报错
|
||
- 上传一篇故意混淆"t检验"和"卡方检验"的稿件,方法学智能体必须报"存疑"或"错误"
|
||
|
||
3. **无崩溃**:连续上传20个文件,系统不卡死,不白屏
|
||
|
||
---
|
||
|
||
## 🚀 未来规划
|
||
|
||
### ✅ 已完成(2026-01-07 ~ 2026-01-10)- V1.x
|
||
|
||
- [x] 架构迁移到 modules/rvw(后端)
|
||
- [x] 架构迁移到 modules/rvw(前端 frontend-v2)
|
||
- [x] 整合MVP新功能(批量上传、工作台、智能体选择)
|
||
- [x] 云原生改造(logger服务)
|
||
- [x] v2 API 路由注册
|
||
- [x] 数据库字段扩展
|
||
- [x] pg-boss异步任务处理(2026-01-10)
|
||
- [x] Word报告导出(2026-01-10)
|
||
- [x] 方法学分数显示修复(2026-01-10)
|
||
- [x] 单智能体审稿显示修复(2026-01-10)
|
||
- [x] Schema迁移到 rvw_schema(2026-01-10)
|
||
|
||
### 🚀 V2.0 "数据侦探" 开发进度(2026-02-12 ~ 进行中)
|
||
|
||
| 阶段 | 任务 | 状态 | 完成日期 |
|
||
|------|------|------|---------|
|
||
| Week 1 Day 1 | Python 服务搭建 | ✅ 已完成 | 2026-02-12 |
|
||
| Week 1 Day 2 | Word 表格提取 + 特殊符号 | ✅ 已完成 | 2026-02-13 |
|
||
| Week 1 Day 3 | L1 算术验证器 | ✅ 已完成 | 2026-02-14 |
|
||
| Week 1 Day 4 | 数据结构设计 | ✅ 已完成 | 2026-02-15 |
|
||
| Week 1 Day 5 | API 集成 | ✅ 已完成 | 2026-02-16 |
|
||
| Week 2 Day 6 | L2 统计验证器 + L2.5 一致性取证 | ✅ 已完成 | 2026-02-17 |
|
||
| Week 2 Day 7 | Skills 核心框架 | ✅ 已完成 | 2026-02-18 |
|
||
| Week 2 Day 8 | DataForensicsSkill | ✅ 已完成 | 2026-02-18 |
|
||
| Week 2 Day 9 | EditorialSkill 封装 | ✅ 已完成 | 2026-02-18 |
|
||
| Week 2 Day 10 | ReviewWorker 改造 | ✅ 已完成 | 2026-02-18 |
|
||
| **Week 3** | **统计验证扩展 + 用户体验优化** | **✅ 已完成** | **2026-02-18** |
|
||
| Week 4 | 功能测试 + Bug 修复 | 📋 待开始 | - |
|
||
|
||
**V2.0 核心功能(已完成)**:
|
||
- **L1 算术验证**:行列加总、百分比验证
|
||
- **L2 统计验证**:CI↔P 一致性、T检验逆向、卡方检验(含 subrow 精确高亮)
|
||
- **L2.5 一致性取证**(终审提权):SE三角验证、SD>Mean检查
|
||
- **Skills 架构**:Skill Registry、Skill Executor、Journal Profiles
|
||
- **负号归一化**:6 种 Unicode 负号变体支持
|
||
- **文件格式提示**:PDF/.doc 无法数据验证的用户提示
|
||
|
||
**Week 3 完成内容(2026-02-18)**:
|
||
- ✅ 负号归一化(防止 float() 崩溃)
|
||
- ✅ T 检验验证增强(智能样本量提取)
|
||
- ✅ SE 三角验证增强(subrow 支持)
|
||
- ✅ CI vs P 值验证增强(subrow 支持)
|
||
- ✅ 前端翻译映射更新(6 种新 IssueType)
|
||
- ✅ 文件格式提示(Header、ReportDetail、TaskDetail)
|
||
|
||
### 后续版本(V2.1+)
|
||
|
||
- [ ] Week 4 功能测试和 Bug 修复
|
||
- [ ] ANOVA 验证(多组比较)
|
||
- [ ] 配对 T 检验验证
|
||
- [ ] 非参数检验(Mann-Whitney、Wilcoxon)
|
||
- [ ] .doc 格式支持(Pandoc 方案评估)
|
||
- [ ] Profile 管理 UI(期刊配置界面)
|
||
- [ ] PDF报告导出优化
|
||
- [ ] PICO卡片UI实现
|
||
- [ ] 历史归档UI实现
|
||
- [ ] 独立产品打包
|
||
|
||
---
|
||
|
||
**文档版本:** v5.1
|
||
**最后更新:** 2026-02-18
|
||
**当前状态:** 🚀 V2.0 "数据侦探" Week 3 完成,Skills 架构 + 统计验证 + 用户体验优化
|
||
**下一步:** Week 4 功能测试和 Bug 修复
|