Files
AIclinicalresearch/docs/[AI对接] 项目状态与下一步指南.md
HaHafeng 88cc049fb3 feat(asl): Complete Day 5 - Fulltext Screening Backend API Development
- Implement 5 core API endpoints (create task, get progress, get results, update decision, export Excel)
- Add FulltextScreeningController with Zod validation (652 lines)
- Implement ExcelExporter service with 4-sheet report generation (352 lines)
- Register routes under /api/v1/asl/fulltext-screening
- Create 31 REST Client test cases
- Add automated integration test script
- Fix PDF extraction fallback mechanism in LLM12FieldsService
- Update API design documentation to v3.0
- Update development plan to v1.2
- Create Day 5 development record
- Clean up temporary test files
2025-11-23 10:52:07 +08:00

690 lines
20 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.
# [AI对接] 项目状态与下一步指南
> **更新时间:** 2025-11-12 18:00
> **当前阶段:** Week 1 完成79%Week 2 Day 6 完成33%
> **总体进度:** 13/25 任务完成52%
> **下一步:** Week 2 Day 7 - 完善模块注册机制
---
## 📋 项目概况5分钟了解
### 项目名称
**AI临床研究平台** - 覆盖医学科研全流程的智能化平台
### 核心目标
打造8个业务模块优先开发3个核心模块
1. **ASL** - AI智能文献Week 3-4开发最高优先级
2. **AIA** - AI智能问答已有技术验证代码后续重写
3. **PKB** - 个人知识库(已有技术验证代码,后续重写)
### 技术栈
**后端:**
- Node.js + Fastify + TypeScript
- PostgreSQL 15+ (10个Schema隔离)
- Prisma ORM (多Schema支持)
- 4个LLMDeepSeek-V3、GPT-5-Pro、Claude-4.5、Qwen-Max
**前端:**
- **Frontend-v2**新架构2025-11-12创建
- React 19 + TypeScript + Vite
- Ant Design 5 + Tailwind CSS 3
- 模块化架构6个业务模块
- 顶部导航布局
- Frontend旧代码保留作为参考不再开发
**数据库:**
- PostgreSQL 15+
- 10个Schema隔离3个详细+7个空
- 11个表已迁移完成
---
## 🎯 当前架构状态
### 数据库架构 ✅ 已完成
**10个Schema3详细+7空**
| Schema | 状态 | 表数量 | 说明 |
|--------|------|--------|------|
| platform_schema | ✅ 详细 | 1 | 用户管理 |
| aia_schema | ✅ 详细 | 5 | AI智能问答已迁移 |
| pkb_schema | ✅ 详细 | 5 | 个人知识库(已迁移) |
| asl_schema | 📋 空 | 0 | AI智能文献Week 3设计 |
| common_schema | 📋 空 | 0 | 通用能力层 |
| dc_schema | 📋 空 | 0 | 数据清洗 |
| rvw_schema | 📋 空 | 0 | 审稿系统 |
| admin_schema | 📋 空 | 0 | 运营管理 |
| ssa_schema | 📋 空 | 0 | 智能统计分析 |
| st_schema | 📋 空 | 0 | 统计分析工具 |
**Schema迁移** ✅ 100%成功Prisma已配置现有功能正常运行
---
### 前端架构 ✅ 框架完成
**Frontend-v2项目结构**
```
frontend-v2/
├── src/
│ ├── framework/ # ✅ 框架层
│ │ ├── layout/ # 顶部导航+主布局
│ │ └── modules/ # 模块注册中心
│ │
│ ├── modules/ # 📦 6个业务模块
│ │ ├── aia/ # AI问答占位
│ │ ├── asl/ # AI智能文献Week 3开发
│ │ ├── pkb/ # 知识库(占位)
│ │ ├── dc/ # 数据清洗(占位)
│ │ ├── ssa/ # 智能统计分析(外部集成)
│ │ └── st/ # 统计分析工具(外部集成)
│ │
│ ├── shared/ # 共享资源
│ ├── pages/ # 首页
│ └── App.tsx
└── 配置文件 ✅
```
**访问地址:** http://localhost:3000
---
### 后端架构 ⏳ 待分层
**当前状态:** 代码平铺,功能正常
**计划:** Week 2 Day 8-9 进行轻度分层重构
```
backend/
└── src/
├── platform/ # 📋 待创建:认证、用户管理
├── common/ # 📋 待创建:中间件、工具函数
└── modules/ # 📋 待创建aia/pkb/asl等模块
```
---
## ✅ 已完成工作Week 1 + Week 2 Day 6
### Week 1数据库Schema隔离 ✅
| 任务 | 状态 | 交付物 |
|------|------|--------|
| Schema架构设计 | ✅ | `09-架构实施/01-Schema隔离架构设计10个.md` |
| SQL迁移脚本编写 | ✅ | 5个SQL脚本001-005 |
| 执行Schema迁移 | ✅ | 10个Schema创建11个表迁移 |
| Prisma多Schema配置 | ✅ | `backend/prisma/schema.prisma`已更新 |
| 功能验证 | ✅ | 所有API正常工作无需修改代码 |
| AIA数据库文档 | ✅ | `03-业务模块/AIA-AI智能问答/02-技术设计/01-数据库设计.md` |
| PKB数据库文档 | ✅ | `03-业务模块/PKB-个人知识库/02-技术设计/01-数据库设计.md` |
**核心发现:** Prisma自动处理Schema路由代码无需修改🎉
---
### Week 2 Day 6前端架构 ✅
| 任务 | 状态 | 交付物 |
|------|------|--------|
| 前端架构设计 | ✅ | `00-系统总体设计/前后端模块化架构设计-V2.md`867行 |
| Frontend-v2创建 | ✅ | 全新项目,模块化架构 |
| 顶部导航实现 | ✅ | 6个模块导航 |
| 模块注册系统 | ✅ | moduleRegistry.ts |
| 6个模块占位 | ✅ | 所有模块目录和组件 |
| 首页和路由 | ✅ | HomePage + 动态路由 |
---
## 🚀 下一步工作(明确且具体)
### 立即开始Week 2 Day 7
**任务17实现模块注册机制** ⏰ 半天
- [ ] 完善权限控制逻辑
- [ ] 实现错误边界
- [ ] 优化模块加载机制
**任务18整合和测试** ⏰ 半天
- [ ] 测试所有导航功能
- [ ] 优化UI细节
- [ ] 添加面包屑导航(可选)
---
### 后续计划Week 2-4
**Week 2 Day 8-9后端代码分层** ⏰ 1-2天
- [ ] 创建 platform/common/modules 三层目录
- [ ] 迁移现有代码
- [ ] 统一错误处理和日志
**Week 3-4ASL模块开发** ⏰ 2周最重要
- [ ] Day 1上午4个LLM集成测试
- [ ] Day 1下午ASL数据库设计asl_schema
- [ ] Day 2ASL API + 前端页面设计
- [ ] Day 3-5 + Week 4ASL核心功能开发
- 文献项目管理
- 文献导入CSV
- **4模型智能筛选**DeepSeek + GPT-5 + Claude-4.5 + Qwen
- 筛选结果管理
---
## 📚 必读核心文档5个
### 1. 项目计划 ⭐⭐⭐
**`docs/08-项目管理/下一阶段行动计划-V2.2-完整版.md`**
- 完整的4周开发计划
- 25项详细任务清单
- 实时进度追踪
### 2. 架构设计 ⭐⭐⭐
**`docs/00-系统总体设计/前后端模块化架构设计-V2.md`**
- 前后端完整目录结构
- 模块化设计规范
- 开发流程和规范
### 3. Schema设计 ⭐⭐
**`docs/09-架构实施/01-Schema隔离架构设计10个.md`**
- 10个Schema详细设计
- SQL建表语句
- 迁移策略
### 4. 数据库文档 ⭐
**AIA数据库** `docs/03-业务模块/AIA-AI智能问答/02-技术设计/01-数据库设计.md`
**PKB数据库** `docs/03-业务模块/PKB-个人知识库/02-技术设计/01-数据库设计.md`
### 5. LLM配置 ⭐
**`docs/02-通用能力层/01-LLM大模型网关/03-CloseAI集成指南.md`**
- 4个LLM配置DeepSeek/GPT-5/Claude-4.5/Qwen
- CloseAI API Key`sk-cu0iepbXYGGx2jc7BqP6ogtSWmP6fk918qV3RUdtGC3Edlpo`
- 双模型筛选策略
---
## 🔑 关键技术信息
### 数据库连接
```
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/ai_clinical_research
```
### API端口
- 后端http://localhost:3001
- 前端http://localhost:3000
- 前端(旧):不再使用
### CloseAI配置
```env
# OpenAI (GPT-5-Pro)
CLOSEAI_API_KEY=sk-cu0iepbXYGGx2jc7BqP6ogtSWmP6fk918qV3RUdtGC3Edlpo
CLOSEAI_OPENAI_BASE_URL=https://api.openai-proxy.org/v1
# Claude (Claude-4.5-Sonnet)
CLOSEAI_CLAUDE_BASE_URL=https://api.openai-proxy.org/anthropic
```
**可用模型:**
- OpenAI: `gpt-5-pro`
- Claude: `claude-sonnet-4-5-20250929`
---
## 💡 重要决策和发现
### 决策1前端架构调整V2.2版核心)
**决策:** 前端统一架构提前到Week 2LLM网关推迟到Week 5
**原因:** 避免ASL开发后返工前端架构是真正的瓶颈
### 决策2创建Frontend-v2不修改旧代码
**决策:** 全新创建frontend-v2项目保留旧frontend作为参考
**原因:** 彻底的架构改造,互不干扰,降低风险
### 决策3后端代码轻度分层
**决策:** platform/common/modules三层架构
**时机:** Week 2 Day 8-9不急于Week 1
### 发现1Prisma自动处理Schema路由 🎉
**发现:** Schema迁移后代码无需修改Prisma自动路由到正确Schema
**影响:** 节省了任务11代码适配的3-4小时
### 发现210个Schema一次性完成更高效
**决策:** 3个详细迁移 + 7个空Schema只CREATE SCHEMA
**原因:** 额外成本仅6小时架构一次到位避免二次迁移
---
## 📊 项目文件位置导航
### 核心规划文档
```
docs/
├── 08-项目管理/
│ └── 下一阶段行动计划-V2.2-完整版.md ⭐⭐⭐ 必读!
└── 00-系统总体设计/
└── 前后端模块化架构设计-V2.md ⭐⭐⭐ 必读!
```
### 数据库相关
```
docs/
├── 09-架构实施/
│ ├── 01-Schema隔离架构设计10个.md ⭐⭐ 详细设计
│ ├── 02-数据库连接配置.md ⭐ 连接信息
│ ├── Schema迁移完成报告.md ✅ 已完成
│ ├── Prisma配置完成报告.md ✅ 已完成
│ └── migration-scripts/ ✅ 5个SQL脚本
└── 03-业务模块/
├── AIA-AI智能问答/02-技术设计/
│ └── 01-数据库设计.md ✅ 5个表
└── PKB-个人知识库/02-技术设计/
└── 01-数据库设计.md ✅ 5个表
```
### 前端架构
```
docs/
└── 01-平台基础层/06-前端架构/
├── 01-前端总体架构设计.md ⭐⭐ 理论设计
└── 02-导航结构设计.md ⭐⭐ 导航规范
```
### LLM配置
```
docs/
├── 02-通用能力层/01-LLM大模型网关/
│ └── 03-CloseAI集成指南.md ⭐⭐⭐ 4个LLM
└── 07-运维文档/
├── 01-环境配置指南.md ⭐ 所有配置
└── 02-环境变量配置模板.md ⭐ .env模板
```
---
## 🔄 快速上手流程
### 对于新的AI对话
**第1步5分钟** 阅读本文档
- 了解项目概况
- 了解当前进度
- 了解下一步任务
**第2步10分钟** 阅读核心文档
- `下一阶段行动计划-V2.2-完整版.md`(了解整体计划)
- `前后端模块化架构设计-V2.md`(了解架构设计)
**第3步按需** 阅读专项文档
- 如果要开发数据库读Schema设计文档
- 如果要开发前端:读前端架构文档
- 如果要集成LLM读CloseAI集成指南
---
## 📋 待办事项To Do List
### 优先级 P0必须完成
**Week 2 剩余任务:**
- [ ] **任务17**:完善模块注册机制(权限控制)
- [ ] **任务18**:整合测试
- [ ] **任务19**:后端代码分层(可选)
- [ ] **任务20**Week 2验收
**Week 3-4 核心任务:**
- [ ] **任务21**4个LLM集成测试
- [ ] **任务22**ASL数据库设计asl_schema
- [ ] **任务23**ASL API设计
- [ ] **任务24**ASL前端页面设计
- [ ] **任务25**ASL核心功能开发2周最重要
### 延后任务
- ⏸️ **任务12**补充API设计文档边开发边完善
- ⏸️ **任务13**Week 1总结验收可与Week 2一起
---
## 🎯 关键里程碑
### 已达成 ✅
-**2025-11-12**10个Schema隔离完成
-**2025-11-12**Prisma多Schema配置完成
-**2025-11-12**Frontend-v2项目创建完成
-**2025-11-12**:前端顶部导航和模块注册系统完成
### 即将达成 🎯
- 🎯 **2025-11-14**Week 2完成前端架构+后端分层)
- 🎯 **2025-11-21**开始ASL模块开发
- 🎯 **2025-12-04**ASL Phase 1完成文献筛选功能
---
## ⚠️ 注意事项
### 1. 前端项目有两个
- **frontend/** - 旧的,保留作为参考,**不再开发**
- **frontend-v2/** - 新的,**主力开发** ⭐
### 2. Schema迁移后
- ✅ 数据已100%迁移到新Schema
- ✅ public schema中的原始表仍保留作为备份
- ✅ Prisma已配置代码自动工作
- ⚠️ 清理public表等Week 2完成后再决定
### 3. LLM网关
- 现状各模块直接调用LLMDeepSeek、CloseAI
- 计划Week 5统一抽取LLM网关
- 原因:先有实践再抽象,避免过度设计
### 4. 模块开发优先级
1. **ASL**AI智能文献- Week 3-4最高优先级
2. **AIA**AI智能问答- Week 5+,后续重写
3. **PKB**(个人知识库)- Week 5+,后续重写
4. 其他模块:按需开发
---
## 🔧 常见问题速查
### Q1: 如何启动项目?
**后端:**
```bash
cd backend
npm run dev # 端口 3001
```
**前端(新):**
```bash
cd frontend-v2
npm run dev # 端口 3000
```
### Q2: 数据库如何连接?
**连接信息:**
- 主机localhost:5432
- 数据库ai_clinical_research
- 用户postgres
- 密码postgres
**验证连接:**
```bash
cd backend
npx prisma migrate status
```
### Q3: 如何添加新模块?
1. 创建 `frontend-v2/src/modules/[模块名]/index.tsx`
2.`moduleRegistry.ts` 中注册模块
3. 创建后端 `backend/src/modules/[模块名]/` 目录
4. 设计数据库表在对应的Schema中
### Q4: 如何使用CloseAI调用LLM
参考:`docs/02-通用能力层/01-LLM大模型网关/03-CloseAI集成指南.md`
**快速示例:**
```typescript
import OpenAI from 'openai'
// GPT-5
const gpt5 = new OpenAI({
apiKey: 'sk-cu0iepbXYGGx2jc7BqP6ogtSWmP6fk918qV3RUdtGC3Edlpo',
baseURL: 'https://api.openai-proxy.org/v1',
})
// Claude-4.5
const claude = new OpenAI({
apiKey: 'sk-cu0iepbXYGGx2jc7BqP6ogtSWmP6fk918qV3RUdtGC3Edlpo',
baseURL: 'https://api.openai-proxy.org/anthropic',
})
```
---
## 📈 进度统计
### 总体进度
- **总任务:** 25项
- **已完成:** 13项52%
- **进行中:** 0项
- **待完成:** 11项
- **已取消:** 1项代码适配Prisma自动处理
### 时间统计
- **Week 1用时** 约5小时原计划2天
- **Week 2 Day 6用时** 约3小时原计划半天
- **提前完成:** 节省了约2天时间 🎉
---
## 🎉 技术亮点
1.**10个Schema一次性完成** - 3详细+7空架构预留
2.**Prisma自动路由** - 无需修改代码
3.**模块化架构** - 前后端完全独立的模块设计
4.**4个LLM就绪** - DeepSeek、GPT-5、Claude-4.5、Qwen
5.**Frontend-v2** - 全新前端架构,顶部导航+模块注册
6.**Just-in-time设计** - 聚焦当前,架构预留,避免过度设计
---
## 💬 给下一个AI的建议
### 理解项目的最快路径
1. **先读本文档**5分钟 - 了解全貌
2. **再读V2.2计划**15分钟- 了解具体任务
3. **边做边查专项文档**(按需)- 深入细节
### 继续开发的注意事项
1. **前端开发**:在 `frontend-v2/` 中进行,不要改 `frontend/`
2. **后端开发**当前代码可用Week 2 Day 8-9再分层
3. **数据库**新表创建在对应的Schema中如asl_schema
4. **LLM调用**直接使用CloseAIWeek 5再统一网关
5. **文档同步**:开发新功能时同步更新文档
### 常用命令
```bash
# 前端开发
cd frontend-v2
npm run dev
# 后端开发
cd backend
npm run dev
# 数据库
cd backend
npx prisma studio # 可视化数据库
npx prisma migrate status # 查看迁移状态
npx prisma generate # 生成Prisma Client
```
---
## 🗂️ 文档体系结构
```
docs/
├── [AI对接] 项目状态与下一步指南.md ⭐⭐⭐ 本文档新AI必读
├── 00-系统总体设计/ # 架构级文档
│ ├── 前后端模块化架构设计-V2.md ⭐⭐⭐ 架构总纲
│ └── 01-系统架构分层设计.md
├── 01-平台基础层/ # 前端架构
│ └── 06-前端架构/
│ ├── 01-前端总体架构设计.md ⭐⭐ 理论设计
│ └── 02-导航结构设计.md
├── 02-通用能力层/ # LLM等能力
│ └── 01-LLM大模型网关/
│ └── 03-CloseAI集成指南.md ⭐⭐⭐ LLM配置
├── 03-业务模块/ # 各模块设计
│ ├── AIA-AI智能问答/
│ ├── ASL-AI智能文献/
│ └── PKB-个人知识库/
├── 07-运维文档/ # 环境配置
│ ├── 01-环境配置指南.md ⭐ 所有配置
│ └── 02-环境变量配置模板.md
├── 08-项目管理/ # 计划和进度
│ ├── 下一阶段行动计划-V2.2-完整版.md ⭐⭐⭐ 主计划
│ └── V2.2版本变化说明.md
└── 09-架构实施/ # 实施记录
├── 01-Schema隔离架构设计10个.md ⭐⭐ SQL设计
├── Schema迁移完成报告.md ✅ 已完成
├── Prisma配置完成报告.md ✅ 已完成
├── Frontend-v2创建完成报告.md ✅ 已完成
└── 模块配置更新报告.md ✅ 已完成
```
---
## 🚀 如何开始下一步工作
### 场景1继续Week 2 Day 7
**目标:** 完善模块注册机制
**操作:**
1. 打开 `frontend-v2/src/framework/modules/`
2. 实现权限控制逻辑
3. 添加错误边界
4. 测试模块加载
**参考:**
- `docs/08-项目管理/下一阶段行动计划-V2.2-完整版.md`任务17-18
- `docs/00-系统总体设计/前后端模块化架构设计-V2.md`(权限控制章节)
---
### 场景2开始Week 3 ASL开发
**前置条件:**
- Week 2 完成(或基本完成)
**第一步4个LLM集成测试**
1. 阅读 `docs/02-通用能力层/01-LLM大模型网关/03-CloseAI集成指南.md`
2. 测试 DeepSeek、GPT-5、Claude-4.5、Qwen连接
3. 编写统一调用服务
**第二步ASL数据库设计**
1. 参考 AIA/PKB 数据库设计文档
2. 设计 asl_schema 的3个表
- literature_projects文献项目
- pico_configsPICO配置
- literature_items文献条目含4个模型结果字段
3. 编写SQL建表语句
**第三步ASL API和前端设计**
1. 设计API接口
2.`frontend-v2/src/modules/asl/` 下设计页面结构
3. 自动接入统一导航
**参考:**
- `docs/03-业务模块/ASL-AI智能文献/01-需求分析/`
- `docs/08-项目管理/下一阶段行动计划-V2.2-完整版.md`Week 3任务
---
### 场景3后端代码分层
**时机:** Week 2 Day 8-9
**操作:**
1. 创建 `backend/src/platform/`
2. 创建 `backend/src/common/`
3. 创建 `backend/src/modules/`
4. 迁移现有代码
**参考:**
- `docs/00-系统总体设计/前后端模块化架构设计-V2.md`(后端架构章节)
---
## 📝 开发规范速查
### 命名规范
**前端:**
- 组件PascalCase`ProjectList.tsx`
- HookscamelCase + use前缀`useProject.ts`
- 工具camelCase`formatDate.ts`
**后端:**
- ControllercamelCase + Controller后缀`projectController.ts`
- ServicecamelCase + Service后缀`projectService.ts`
- Routes`index.ts`
### API设计规范
```
GET /api/v1/[module]/resources # 列表
GET /api/v1/[module]/resources/:id # 详情
POST /api/v1/[module]/resources # 创建
PUT /api/v1/[module]/resources/:id # 更新
DELETE /api/v1/[module]/resources/:id # 删除
```
---
## 🌟 成功经验总结
### 架构设计经验
1.**架构先行** - 花时间在设计上,后续开发事半功倍
2.**Just-in-time** - 聚焦当前,架构预留,避免过度设计
3.**渐进式改造** - 新旧并存,降低风险
4.**完整文档** - 详细记录决策和实施过程
### 技术经验
1.**Prisma多Schema** - 自动路由,代码无需修改
2.**模块化架构** - 前后端独立模块,易于扩展
3.**配置文件格式** - 注意ES Module vs CommonJS
4.**LLM集成** - CloseAI提供稳定的GPT-5和Claude-4.5访问
---
**最后更新:** 2025-11-12 18:00
**下次更新:** Week 2 Day 7 完成后
**维护者:** 开发团队
**🎯 祝新的AI对话顺利所有信息已梳理完毕可以无缝衔接** ⭐⭐⭐