docs(asl): Update module and system status documentation
ASL Module Status Update (v1.2 -> v1.3): - Update development stage: backend completed (Day 2-5) - Add fulltext-screening backend structure (controllers, services, routes, tests) - Add 5 new API endpoints for fulltext screening - Update milestone: Day 4-5 completed (database + batch service + API) - Mark Day 6-8 as pending (frontend development) System Status Update (v2.4.0 -> v2.5.0): - Update ASL module progress across all sections - Update database schema: 4 tables -> 6 tables (add fulltext screening tables) - Update API endpoints: 10 -> 15 (add 5 fulltext screening APIs) - Update backend structure to include fulltext-screening module - Reflect 2500+ lines of code added in Day 2-5
This commit is contained in:
@@ -1,13 +1,14 @@
|
|||||||
# AI临床研究平台 - 系统当前状态与开发指南
|
# AI临床研究平台 - 系统当前状态与开发指南
|
||||||
|
|
||||||
> **版本:** V2.4.0
|
> **版本:** V2.5.0
|
||||||
> **创建日期:** 2025-11-17
|
> **创建日期:** 2025-11-17
|
||||||
> **更新日期:** 2025-11-18
|
> **更新日期:** 2025-11-23
|
||||||
> **适用对象:** 新开发人员、AI助手、技术决策者
|
> **适用对象:** 新开发人员、AI助手、技术决策者
|
||||||
> **阅读时间:** 20分钟
|
> **阅读时间:** 20分钟
|
||||||
> **文档定位:** 系统真实状态 + 核心开发规范 ⭐ 必读
|
> **文档定位:** 系统真实状态 + 核心开发规范 ⭐ 必读
|
||||||
|
|
||||||
**📝 版本历史:**
|
**📝 版本历史:**
|
||||||
|
- V2.5.0 (2025-11-23): 更新ASL模块状态(全文复筛后端完成,Day 2-5,2500+行代码)
|
||||||
- V2.4.0 (2025-11-18): 更新ASL模块状态(Week 1完成,4个表+10个API+双模型筛选)
|
- V2.4.0 (2025-11-18): 更新ASL模块状态(Week 1完成,4个表+10个API+双模型筛选)
|
||||||
- V2.3.1 (2025-11-18): 更新LLM模型支持(添加CloseAI集成说明)
|
- V2.3.1 (2025-11-18): 更新LLM模型支持(添加CloseAI集成说明)
|
||||||
- V2.3.0 (2025-11-17): 初始创建,基于平台基础设施完成后的真实状态
|
- V2.3.0 (2025-11-17): 初始创建,基于平台基础设施完成后的真实状态
|
||||||
@@ -99,7 +100,7 @@ frontend-v2/src/
|
|||||||
├── modules/ # 📦 业务模块(7个目录,6个已注册)
|
├── modules/ # 📦 业务模块(7个目录,6个已注册)
|
||||||
│ ├── aia/ # ✅ AI智能问答(占位)
|
│ ├── aia/ # ✅ AI智能问答(占位)
|
||||||
│ │ └── index.tsx
|
│ │ └── index.tsx
|
||||||
│ ├── asl/ # 🚧 AI智能文献(Week 1后端完成✅,Week 2前端开发中)
|
│ ├── asl/ # 🚧 AI智能文献(标题摘要初筛完成✅,全文复筛后端完成✅,待前端)
|
||||||
│ │ └── index.tsx
|
│ │ └── index.tsx
|
||||||
│ ├── pkb/ # ✅ 个人知识库(占位)
|
│ ├── pkb/ # ✅ 个人知识库(占位)
|
||||||
│ │ └── index.tsx
|
│ │ └── index.tsx
|
||||||
@@ -137,7 +138,7 @@ frontend-v2/src/
|
|||||||
- 1个预留(rvw - 稿件审查,未来开发)
|
- 1个预留(rvw - 稿件审查,未来开发)
|
||||||
- ✅ 模块注册表:6个模块已注册(moduleRegistry.ts)
|
- ✅ 模块注册表:6个模块已注册(moduleRegistry.ts)
|
||||||
- AI问答(aia)
|
- AI问答(aia)
|
||||||
- AI智能文献(asl)- Week 1后端完成✅,Week 2前端开发中
|
- AI智能文献(asl)- 标题摘要初筛完成✅,全文复筛后端完成✅,待前端开发
|
||||||
- 知识库(pkb)
|
- 知识库(pkb)
|
||||||
- 智能数据清洗(dc)
|
- 智能数据清洗(dc)
|
||||||
- 智能统计分析(ssa)- Java团队
|
- 智能统计分析(ssa)- Java团队
|
||||||
@@ -145,7 +146,7 @@ frontend-v2/src/
|
|||||||
- 📋 预留模块:稿件审查(rvw)- 目录已创建,待添加到注册表
|
- 📋 预留模块:稿件审查(rvw)- 目录已创建,待添加到注册表
|
||||||
- ✅ 权限系统:3级版本控制(basic/advanced/premium)
|
- ✅ 权限系统:3级版本控制(basic/advanced/premium)
|
||||||
- ✅ 错误边界:模块级错误隔离
|
- ✅ 错误边界:模块级错误隔离
|
||||||
- 🚧 模块开发:ASL模块Week 1完成✅,Week 2前端开发中
|
- 🚧 模块开发:ASL模块Day 2-5完成✅(全文复筛后端2500+行代码),Day 6-8待前端开发
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -223,12 +224,14 @@ backend/src/
|
|||||||
│ └── jsonParser.ts
|
│ └── jsonParser.ts
|
||||||
│
|
│
|
||||||
├── modules/ # 🌟 新模块开发区(标准化架构)
|
├── modules/ # 🌟 新模块开发区(标准化架构)
|
||||||
│ └── asl/ # 🚧 AI智能文献(Week 1完成✅)
|
│ └── asl/ # 🚧 AI智能文献(标题摘要初筛完成✅,全文复筛后端完成✅)
|
||||||
│ ├── controllers/ # ✅ 项目、文献控制器
|
│ ├── controllers/ # ✅ 3个控制器(项目、文献、标题初筛、全文复筛)
|
||||||
│ ├── services/ # ✅ LLM筛选服务(双模型+三种风格)
|
│ ├── services/ # ✅ LLM筛选服务(双模型+三种风格+全文12字段)
|
||||||
│ ├── routes/ # ✅ 10个API接口
|
│ ├── routes/ # ✅ 15个API接口(10个标题初筛 + 5个全文复筛)
|
||||||
│ ├── schemas/ # ✅ JSON Schema + Prompt生成
|
│ ├── schemas/ # ✅ JSON Schema + Prompt生成
|
||||||
│ └── types/ # ✅ TypeScript类型定义
|
│ ├── types/ # ✅ TypeScript类型定义
|
||||||
|
│ ├── common/ # ✅ 全文复筛通用能力层(PDF、LLM、验证)
|
||||||
|
│ └── fulltext-screening/ # ✅ 全文复筛模块(Day 2-5完成,2500+行代码)
|
||||||
│
|
│
|
||||||
├── config/ # ⚙️ 配置层
|
├── config/ # ⚙️ 配置层
|
||||||
│ ├── database.ts # ⭐ 数据库配置(Serverless连接池优化)
|
│ ├── database.ts # ⭐ 数据库配置(Serverless连接池优化)
|
||||||
@@ -435,7 +438,7 @@ CLOSEAI_CLAUDE_BASE_URL=https://api.openai-proxy.org/anthropic
|
|||||||
- ✅ Legacy模块:AIA/PKB/RVW 正常运行
|
- ✅ Legacy模块:AIA/PKB/RVW 正常运行
|
||||||
- ✅ **平台基础设施:8个模块测试通过(100%)**
|
- ✅ **平台基础设施:8个模块测试通过(100%)**
|
||||||
- ✅ 数据库连接:1/400(正常)
|
- ✅ 数据库连接:1/400(正常)
|
||||||
- ✅ ASL模块:Week 1完成(数据库+后端API+LLM筛选服务),Week 2前端开发中
|
- ✅ ASL模块:标题摘要初筛完成✅,全文复筛后端完成✅(Day 2-5,2500+行代码),待前端开发
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -449,11 +452,13 @@ CLOSEAI_CLAUDE_BASE_URL=https://api.openai-proxy.org/anthropic
|
|||||||
✅ platform_schema -- 平台层:用户、角色、权限
|
✅ platform_schema -- 平台层:用户、角色、权限
|
||||||
✅ aia_schema -- AI问答:项目、对话、消息
|
✅ aia_schema -- AI问答:项目、对话、消息
|
||||||
✅ pkb_schema -- 知识库:文档、批处理、知识图谱
|
✅ pkb_schema -- 知识库:文档、批处理、知识图谱
|
||||||
✅ asl_schema -- AI智能文献:4个表已创建(2025-11-18)
|
✅ asl_schema -- AI智能文献:6个表已创建(2025-11-23)
|
||||||
- screening_projects(筛选项目)
|
- screening_projects(筛选项目)
|
||||||
- literatures(文献条目)
|
- literatures(文献条目,+13个全文字段)
|
||||||
- screening_results(筛选结果,含双模型理由)
|
- screening_results(标题摘要初筛结果)
|
||||||
- screening_tasks(筛选任务)
|
- screening_tasks(标题摘要初筛任务)
|
||||||
|
- fulltext_screening_tasks(全文复筛任务)
|
||||||
|
- fulltext_screening_results(全文复筛结果,12字段)
|
||||||
📋 rvw_schema -- 稿件审查:预留
|
📋 rvw_schema -- 稿件审查:预留
|
||||||
📋 dc_schema -- 数据清洗:预留
|
📋 dc_schema -- 数据清洗:预留
|
||||||
📋 admin_schema -- 运营管理:预留
|
📋 admin_schema -- 运营管理:预留
|
||||||
@@ -538,7 +543,7 @@ MAX_INSTANCES=20 # SAE最大实例数
|
|||||||
|
|
||||||
**⚠️ 注意:** 测试API仅用于开发验证,生产部署前需删除
|
**⚠️ 注意:** 测试API仅用于开发验证,生产部署前需删除
|
||||||
|
|
||||||
### ASL模块API(标准化架构)⭐ **2025-11-18新增**
|
### ASL模块API(标准化架构)⭐ **2025-11-23更新**
|
||||||
|
|
||||||
**前缀:** `/api/v1/asl`
|
**前缀:** `/api/v1/asl`
|
||||||
|
|
||||||
@@ -546,18 +551,28 @@ MAX_INSTANCES=20 # SAE最大实例数
|
|||||||
|---------|------|------|------|
|
|---------|------|------|------|
|
||||||
| 项目管理 | 5个 | CRUD项目(含PICOS、纳排标准、筛选风格) | ✅ 已测试 |
|
| 项目管理 | 5个 | CRUD项目(含PICOS、纳排标准、筛选风格) | ✅ 已测试 |
|
||||||
| 文献管理 | 4个 | 导入文献(JSON/Excel)、查询、删除 | ✅ 已测试 |
|
| 文献管理 | 4个 | 导入文献(JSON/Excel)、查询、删除 | ✅ 已测试 |
|
||||||
|
| 标题摘要初筛 | 4个 | 任务创建、进度查询、结果获取、人工复核 | ✅ 已测试 |
|
||||||
|
| **全文复筛(NEW)** | **5个** | **任务管理、进度、结果、决策、Excel导出** | **✅ 已完成** |
|
||||||
| 健康检查 | 1个 | 模块健康状态 | ✅ 已测试 |
|
| 健康检查 | 1个 | 模块健康状态 | ✅ 已测试 |
|
||||||
|
|
||||||
**核心接口**:
|
**核心接口**:
|
||||||
```
|
```
|
||||||
|
# 项目与文献
|
||||||
POST /api/v1/asl/projects # 创建项目(含PICOS、筛选风格)
|
POST /api/v1/asl/projects # 创建项目(含PICOS、筛选风格)
|
||||||
GET /api/v1/asl/projects # 项目列表
|
GET /api/v1/asl/projects # 项目列表
|
||||||
GET /api/v1/asl/projects/:id # 项目详情
|
|
||||||
POST /api/v1/asl/projects/:id/literatures/import-excel # 导入Excel文献
|
POST /api/v1/asl/projects/:id/literatures/import-excel # 导入Excel文献
|
||||||
GET /api/v1/asl/projects/:id/literatures # 文献列表
|
|
||||||
|
# 全文复筛(Day 5新增)
|
||||||
|
POST /api/v1/asl/fulltext-screening/tasks # 创建任务
|
||||||
|
GET /api/v1/asl/fulltext-screening/tasks/:taskId/progress # 获取进度
|
||||||
|
GET /api/v1/asl/fulltext-screening/tasks/:taskId/results # 获取结果
|
||||||
|
PUT /api/v1/asl/fulltext-screening/results/:resultId/decision # 更新决策
|
||||||
|
GET /api/v1/asl/fulltext-screening/tasks/:taskId/export # 导出Excel
|
||||||
```
|
```
|
||||||
|
|
||||||
**测试报告**: `backend/ASL-API-测试报告.md` (7/10接口,100%通过)
|
**测试报告**:
|
||||||
|
- 标题摘要初筛: `backend/ASL-API-测试报告.md` (10/10接口,100%通过)
|
||||||
|
- 全文复筛: `backend/src/modules/asl/fulltext-screening/__tests__/` (31个测试用例)
|
||||||
|
|
||||||
### API文档
|
### API文档
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
# AI智能文献模块 - 当前状态与开发指南
|
# AI智能文献模块 - 当前状态与开发指南
|
||||||
|
|
||||||
> **文档版本:** v1.2
|
> **文档版本:** v1.3
|
||||||
> **创建日期:** 2025-11-21
|
> **创建日期:** 2025-11-21
|
||||||
> **维护者:** AI智能文献开发团队
|
> **维护者:** AI智能文献开发团队
|
||||||
> **最后更新:** 2025-11-23
|
> **最后更新:** 2025-11-23 (Day 5完成后)
|
||||||
> **文档目的:** 反映模块真实状态,帮助新开发人员快速上手
|
> **文档目的:** 反映模块真实状态,帮助新开发人员快速上手
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -26,12 +26,12 @@
|
|||||||
AI智能文献模块是一个基于大语言模型(LLM)的文献筛选系统,用于帮助研究人员根据PICOS标准自动筛选文献。
|
AI智能文献模块是一个基于大语言模型(LLM)的文献筛选系统,用于帮助研究人员根据PICOS标准自动筛选文献。
|
||||||
|
|
||||||
### 当前状态
|
### 当前状态
|
||||||
- **开发阶段**:🚧 标题摘要初筛MVP已完成,全文复筛开发中
|
- **开发阶段**:🚧 标题摘要初筛MVP已完成,全文复筛后端已完成,待前端开发
|
||||||
- **已完成功能**:
|
- **已完成功能**:
|
||||||
- ✅ 标题摘要初筛(Title & Abstract Screening)
|
- ✅ 标题摘要初筛(Title & Abstract Screening)- 完整流程
|
||||||
- ✅ 全文复筛核心LLM服务(Day 2-3,后端)
|
- ✅ 全文复筛后端(Day 2-5)- LLM服务 + API + Excel导出
|
||||||
- **开发中功能**:
|
- **开发中功能**:
|
||||||
- 🚧 全文复筛批处理与前端UI(Day 4-6)
|
- 🚧 全文复筛前端UI(Day 6-8,预计2.5天)
|
||||||
- **模型支持**:DeepSeek-V3 + Qwen-Max 双模型筛选
|
- **模型支持**:DeepSeek-V3 + Qwen-Max 双模型筛选
|
||||||
- **部署状态**:✅ 本地开发环境运行正常
|
- **部署状态**:✅ 本地开发环境运行正常
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@ AI智能文献模块是一个基于大语言模型(LLM)的文献筛选系统
|
|||||||
- 初筛结果页面(混合方案)
|
- 初筛结果页面(混合方案)
|
||||||
- Excel批量导出(云原生)
|
- Excel批量导出(云原生)
|
||||||
|
|
||||||
**全文复筛(开发中)**:
|
**全文复筛(后端已完成,待前端开发)**:
|
||||||
- ✅ 2025-11-22:**Day 2-3完成(LLM服务与验证系统)**
|
- ✅ 2025-11-22:**Day 2-3完成(LLM服务与验证系统)**
|
||||||
- 提示词工程体系(System/User Prompt + JSON Schema)
|
- 提示词工程体系(System/User Prompt + JSON Schema)
|
||||||
- PromptBuilder服务(动态Prompt组装)
|
- PromptBuilder服务(动态Prompt组装)
|
||||||
@@ -64,10 +64,25 @@ AI智能文献模块是一个基于大语言模型(LLM)的文献筛选系统
|
|||||||
- 创建 fulltext_screening_results 表
|
- 创建 fulltext_screening_results 表
|
||||||
- 手动SQL迁移脚本(安全执行,不影响其他模块)
|
- 手动SQL迁移脚本(安全执行,不影响其他模块)
|
||||||
- 数据库迁移状态文档(详细记录Schema隔离情况)
|
- 数据库迁移状态文档(详细记录Schema隔离情况)
|
||||||
- 🚧 2025-11-23:**Day 4下午进行中(批处理服务)**
|
- ✅ 2025-11-23:**Day 4下午完成(批处理服务)**
|
||||||
- AsyncTaskService(异步任务管理)
|
- FulltextScreeningService(批量处理逻辑,716行)
|
||||||
- FulltextScreeningService(批量处理逻辑)
|
- 异步任务管理(后台处理LLM调用)
|
||||||
- API控制器(RESTful接口)
|
- 并发控制(p-queue)
|
||||||
|
- 进度跟踪和错误处理
|
||||||
|
- ✅ 2025-11-23:**Day 5完成(后端API开发)**
|
||||||
|
- FulltextScreeningController(5个核心API,652行)
|
||||||
|
- ExcelExporter服务(4-Sheet报告生成,352行)
|
||||||
|
- Zod参数验证
|
||||||
|
- 路由注册(/api/v1/asl/fulltext-screening)
|
||||||
|
- 31个REST Client测试用例
|
||||||
|
- API文档更新到v3.0
|
||||||
|
- PDF提取fallback机制
|
||||||
|
- 🚧 2025-11-24:**Day 6-8待开发(前端UI)**
|
||||||
|
- 4个核心页面(设置、进度、工作台、结果)
|
||||||
|
- PDF上传和预览功能
|
||||||
|
- 双模型判断对比UI
|
||||||
|
- 实时进度监控(轮询机制)
|
||||||
|
- 详细前端开发计划已制定
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -179,14 +194,26 @@ backend/src/modules/asl/
|
|||||||
│ └── index.ts
|
│ └── index.ts
|
||||||
│
|
│
|
||||||
└── fulltext-screening/ # ✅ 全文复筛模块(NEW)
|
└── fulltext-screening/ # ✅ 全文复筛模块(NEW)
|
||||||
└── prompts/ # 提示词体系
|
├── controllers/
|
||||||
├── system_prompt.md # System Prompt(6601字符)
|
│ └── FulltextScreeningController.ts # 5个核心API(652行)
|
||||||
├── user_prompt_template.md # User Prompt模板(199行)
|
├── services/
|
||||||
├── json_schema.json # JSON Schema(12字段约束)
|
│ ├── FulltextScreeningService.ts # 批处理服务(716行)
|
||||||
└── cochrane_standards/ # Cochrane标准(MVP暂不加载)
|
│ └── ExcelExporter.ts # Excel导出服务(352行)
|
||||||
├── 随机化方法.md
|
├── routes/
|
||||||
├── 盲法.md
|
│ └── fulltext-screening.ts # 路由注册(73行)
|
||||||
└── 结果完整性.md
|
├── prompts/ # 提示词体系
|
||||||
|
│ ├── system_prompt.md # System Prompt(6601字符)
|
||||||
|
│ ├── user_prompt_template.md # User Prompt模板(199行)
|
||||||
|
│ ├── json_schema.json # JSON Schema(12字段约束)
|
||||||
|
│ └── cochrane_standards/ # Cochrane标准(MVP暂不加载)
|
||||||
|
│ ├── 随机化方法.md
|
||||||
|
│ ├── 盲法.md
|
||||||
|
│ └── 结果完整性.md
|
||||||
|
└── __tests__/ # 测试文件
|
||||||
|
├── fulltext-screening-api.http # REST Client测试(31个用例)
|
||||||
|
├── api-integration-test.ts # 自动化集成测试
|
||||||
|
├── e2e-real-test.ts # 端到端测试(真实PDF)
|
||||||
|
└── e2e-real-test-v2.ts # 端到端测试(简化版)
|
||||||
|
|
||||||
backend/prisma/
|
backend/prisma/
|
||||||
└── schema.prisma # 数据库Schema定义
|
└── schema.prisma # 数据库Schema定义
|
||||||
@@ -224,7 +251,7 @@ GET /projects/:projectId/literatures # 获取文献列表
|
|||||||
DELETE /literatures/:literatureId # 删除文献
|
DELETE /literatures/:literatureId # 删除文献
|
||||||
```
|
```
|
||||||
|
|
||||||
### 筛选相关
|
### 筛选相关(标题摘要初筛)
|
||||||
```http
|
```http
|
||||||
GET /projects/:projectId/screening-task # 获取任务进度
|
GET /projects/:projectId/screening-task # 获取任务进度
|
||||||
GET /projects/:projectId/screening-results # 获取筛选结果
|
GET /projects/:projectId/screening-results # 获取筛选结果
|
||||||
@@ -232,6 +259,15 @@ GET /screening-results/:resultId # 获取结果详情
|
|||||||
POST /screening-results/:resultId/review # 提交人工复核
|
POST /screening-results/:resultId/review # 提交人工复核
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 全文复筛(NEW - Day 5)
|
||||||
|
```http
|
||||||
|
POST /fulltext-screening/tasks # 创建全文复筛任务
|
||||||
|
GET /fulltext-screening/tasks/:taskId/progress # 获取任务进度
|
||||||
|
GET /fulltext-screening/tasks/:taskId/results # 获取任务结果
|
||||||
|
PUT /fulltext-screening/results/:resultId/decision # 更新人工决策
|
||||||
|
GET /fulltext-screening/tasks/:taskId/export # 导出Excel报告
|
||||||
|
```
|
||||||
|
|
||||||
### 关键参数说明
|
### 关键参数说明
|
||||||
|
|
||||||
#### 创建项目
|
#### 创建项目
|
||||||
|
|||||||
Reference in New Issue
Block a user