feat(rvw,asl): RVW V3.0 smart review + ASL deep research history + stability
RVW module (V3.0 Smart Review Enhancement): - Add LLM data validation via PromptService (RVW_DATA_VALIDATION) - Add ClinicalAssessmentSkill with FINER-based evaluation (RVW_CLINICAL) - Remove all numeric scores from UI (editorial, methodology, overall) - Implement partial_completed status with Promise.allSettled - Add error_details JSON field to ReviewTask for granular failure info - Fix overallStatus logic: warning status now counts as success - Restructure ForensicsReport: per-table LLM results, remove top-level block - Refactor ClinicalReport: structured collapsible sections - Increase all skill timeouts to 300s for long manuscripts (20+ pages) - Increase DataForensics LLM timeout to 180s, pg-boss to 15min - Executor default fallback timeout 30s -> 60s ASL module: - Add deep research history with sidebar accordion UI - Implement waterfall flow for historical task display - Upgrade Unifuncs DeepSearch API from S2 to S3 with fallback - Add ASL_SR module seed for admin configurability - Fix new search button inconsistency Docs: - Update RVW module status to V3.0 - Update deployment changelist - Add 0305 deployment summary DB Migration: - Add error_details JSONB column to rvw_schema.review_tasks Tested: All 4 review modules verified, partial completion working Made-with: Cursor
This commit is contained in:
@@ -15,19 +15,32 @@
|
||||
|
||||
| # | 变更内容 | 迁移文件 | 优先级 | 备注 |
|
||||
|---|---------|---------|--------|------|
|
||||
| — | *暂无* | | | |
|
||||
| DB-1 | modules 表 seed 新增 ASL_SR 模块(系统综述项目) | `backend/scripts/seed-modules.js` | 高 | 部署后需执行 `node scripts/seed-modules.js`,并在运营管理端为目标用户/租户开通 |
|
||||
| DB-2 | prompt_templates 表新增 RVW_DATA_VALIDATION + RVW_CLINICAL 两个 Prompt | `backend/scripts/migrate-rvw-prompts.ts` | 高 | 部署后需执行 `npx tsx scripts/migrate-rvw-prompts.ts`,运营管理端可配置修改 |
|
||||
| DB-3 | ReviewTask 表新增 `error_details` JSONB 字段(存储 Skill 级失败详情) | `prisma/migrations/20260307_add_error_details_to_review_task/migration.sql` | 高 | 支持 partial_completed 状态,记录每个失败/超时 Skill 的名称和原因 |
|
||||
|
||||
### 后端变更 (Node.js)
|
||||
|
||||
| # | 变更内容 | 涉及文件 | 需要操作 | 备注 |
|
||||
|---|---------|---------|---------|------|
|
||||
| — | *暂无* | | | |
|
||||
| BE-1 | Deep Research V2.0 新增历史列表 + 删除接口 + getTask 鉴权修复 | `deepResearchController.ts`, `routes/index.ts` | 重新构建镜像 | GET /research/v2/tasks, DELETE /research/tasks/:taskId, getTask 增加 userId 校验 |
|
||||
| BE-2 | SR 相关路由(projects/literatures/screening/fulltext-screening/extraction/charting/meta-analysis)增加 `requireModule('ASL_SR')` 中间件 | `asl/routes/index.ts`, `extraction/routes/index.ts`, `charting/routes/index.ts`, `meta-analysis/routes/index.ts` | 重新构建镜像 | 需先完成 DB-1 seed,否则无 ASL_SR 模块会 403 |
|
||||
| BE-3 | Unifuncs DeepSearch API 从 S2 升级至 S3(新增 `language: "zh"`) | `unifuncsSseClient.ts`, `unifuncsAsyncClient.ts` | 重新构建镜像 | 通过 `UNIFUNCS_MODEL` 环境变量控制,默认 s3,设为 s2 可降级 |
|
||||
| BE-4 | RVW 数据验证增加 LLM 核查通道(DataForensicsSkill 增强) | `DataForensicsSkill.ts`, `prompt.fallbacks.ts` | 重新构建镜像 | 规则验证完成后批量调用 LLM 核查所有表格,失败时降级为纯规则验证 |
|
||||
| BE-5 | RVW 新增临床专业评估维度(ClinicalAssessmentSkill) | `clinicalService.ts`(新), `ClinicalAssessmentSkill.ts`(新), `library/index.ts`, `profile.ts`, `utils.ts`, `reviewWorker.ts`, `reviewService.ts` | 重新构建镜像 | 新增 clinical Agent + Skill,存储在 contextData.clinicalReview |
|
||||
| BE-6 | RVW 稳定性增强:SkillExecutor Promise.allSettled + partial_completed 状态 + errorDetails | `executor.ts`, `reviewWorker.ts`, `reviewService.ts`, `reviewController.ts`, `types/index.ts` | 重新构建镜像 | 并行 Skill 故障隔离,部分模块失败时仍返回成功模块结果,新增 `partial_completed` 任务状态 |
|
||||
| BE-7 | DataForensicsSkill LLM 核查增加独立 60s 超时 | `DataForensicsSkill.ts` | 重新构建镜像 | LLM 核查超时不阻塞整体 Skill,graceful 降级为纯规则验证 |
|
||||
|
||||
### 前端变更
|
||||
|
||||
| # | 变更内容 | 涉及文件 | 需要操作 | 备注 |
|
||||
|---|---------|---------|---------|------|
|
||||
| — | *暂无* | | | |
|
||||
| FE-1 | ASL 左侧导航栏重构为互斥手风琴(Deep Research 历史记录 + SR 工具导航) | `ASLLayout.tsx`, `asl-sidebar.css`(新建), `DeepResearchPage.tsx`, `asl/index.tsx` | 重新构建镜像 | Panel A: 智能文献检索历史;Panel B: 系统综述项目(5 工具) |
|
||||
| FE-2 | Deep Research 历史记录功能(API 客户端 + 类型定义 + URL 任务恢复) | `asl/api/index.ts`, `types/deepResearch.ts`, `DeepResearchPage.tsx`, `asl/index.tsx` | 重新构建镜像 | 新增 listDeepResearchTasks / deleteDeepResearchTask API;新增 /research/deep/:taskId 路由 |
|
||||
| FE-3 | Panel B SR 工具导航权限控制(hasModule('ASL_SR')) | `ASLLayout.tsx`, `asl-sidebar.css` | 重新构建镜像 | 未开通时显示"请联系管理员开通";已开通显示 5 个 SR 工具导航项 |
|
||||
| FE-4 | RVW 数据验证报告增加 LLM 核查结果展示 | `ForensicsReport.tsx`, `rvw/types/index.ts` | 重新构建镜像 | 总览展示完整 LLM 报告,每个表格卡片展开后显示对应 AI 核查结果(Markdown) |
|
||||
| FE-5 | RVW 新增临床专业评估 Tab + Agent 选择项 | `ClinicalReport.tsx`(新), `AgentModal.tsx`, `TaskDetail.tsx`, `rvw/types/index.ts` | 重新构建镜像 | 共 4 个 Tab:稿约规范性/方法学/数据验证/临床评估;Word 导出包含临床评估章节 |
|
||||
| FE-6 | RVW 前端支持 partial_completed 状态(部分完成) | `TaskDetail.tsx`, `TaskTable.tsx`, `rvw/types/index.ts` | 重新构建镜像 | 琥珀色警告横幅展示失败模块详情,列表页显示"部分完成"标签,支持查看已完成模块的报告 |
|
||||
|
||||
### Python 微服务变更
|
||||
|
||||
@@ -45,7 +58,7 @@
|
||||
|
||||
| # | 变更内容 | 服务 | 变量名 | 备注 |
|
||||
|---|---------|------|--------|------|
|
||||
| — | *暂无* | | | |
|
||||
| ENV-1 | Unifuncs 模型版本控制(可选,不配置则默认 s3) | nodejs-backend | `UNIFUNCS_MODEL=s3` | 降级时改为 `s2`,无需重新部署代码 |
|
||||
|
||||
### 基础设施变更
|
||||
|
||||
|
||||
197
docs/05-部署文档/0305部署/01-部署完成总结.md
Normal file
197
docs/05-部署文档/0305部署/01-部署完成总结.md
Normal file
@@ -0,0 +1,197 @@
|
||||
# 2026年3月5日部署完成总结
|
||||
|
||||
> **部署日期**:2026-03-05
|
||||
> **部署范围**:数据库数据更新(1项) + Node.js后端 + 前端Nginx + R统计引擎待部署
|
||||
> **部署状态**:✅ 后端/前端已完成
|
||||
> **文档日期**:2026-03-05
|
||||
|
||||
---
|
||||
|
||||
## 部署成果一览
|
||||
|
||||
### 服务版本对比
|
||||
|
||||
| 服务 | 部署前 | 部署后 | 变更类型 |
|
||||
|------|--------|--------|---------|
|
||||
| PostgreSQL(RDS) | 86 表 | 86 表(数据更新) | modules 表 seed 更新 |
|
||||
| Node.js后端 | v2.4 | **v2.6** | 登录踢人 + 权限体系 + SSA双通道 |
|
||||
| 前端Nginx | v2.0 | **v2.3** | UI优化 + 权限适配 + 批量导入重构 |
|
||||
|
||||
### 内网地址变更
|
||||
|
||||
| 服务 | 部署前地址 | 部署后地址 | 状态 |
|
||||
|------|-----------|-----------|------|
|
||||
| Node.js后端 | `172.17.197.32:3001` | `172.17.197.36:3001` | ✅ 已变更 |
|
||||
| 前端Nginx | `172.17.197.32:80` | `172.17.173.104:80` | ✅ 已变更 |
|
||||
|
||||
---
|
||||
|
||||
## 一、数据库更新
|
||||
|
||||
### 1.1 DB-1:modules 表数据更新
|
||||
|
||||
通过 `node scripts/seed-modules.js` 连接 RDS 外网执行(upsert 幂等操作):
|
||||
|
||||
| 操作 | 模块代码 | 名称 | 说明 |
|
||||
|------|---------|------|------|
|
||||
| 新增 | `RM` | 研究管理 | 排序 9 |
|
||||
| 新增 | `AIA_PROTOCOL` | 全流程研究方案制定 | 排序 100 |
|
||||
| 更新 | `IIT` | CRA质控 | 原名 IIT Manager |
|
||||
|
||||
执行结果:modules 表共 10 个模块,全部上线 ✅
|
||||
|
||||
### 1.2 未执行项
|
||||
|
||||
| 项目 | 原因 |
|
||||
|------|------|
|
||||
| DB-2:RVW Prompt 更新 | 用户指定不执行 |
|
||||
| DB-3:SSA 双通道表结构 | 待后续部署 |
|
||||
|
||||
---
|
||||
|
||||
## 二、Node.js后端更新(v2.4 → v2.6)
|
||||
|
||||
### 2.1 主要变更(9 项)
|
||||
|
||||
| 类别 | 变更内容 |
|
||||
|------|---------|
|
||||
| 登录安全 | 同一手机号登录踢人机制(JWT tokenVersion + 缓存校验) |
|
||||
| 权限体系 | `/me/modules` API 尊重 user_modules 精细化配置 |
|
||||
| 权限体系 | 用户模块配置校验放宽(模块代码存在即可,不限租户订阅) |
|
||||
| 权限体系 | user_modules 独立生效(如 AIA_PROTOCOL 可单独配给用户) |
|
||||
| 模块名称 | getModuleName 补充 RM、AIA_PROTOCOL、IIT→CRA质控 |
|
||||
| RVW | 稿约 Prompt 源文件期刊名称修正 |
|
||||
| Seed | 内部租户补充 RM、AIA_PROTOCOL 模块 |
|
||||
| SSA | 双通道架构:Agent 模式 4 服务 + ChatHandler 分流 |
|
||||
| 用户管理 | 批量导入增加 autoInheritModules + 模块校验 |
|
||||
|
||||
### 2.2 镜像信息
|
||||
|
||||
| 项目 | 值 |
|
||||
|------|---|
|
||||
| ACR 仓库 | `backend-service` |
|
||||
| 镜像版本 | v2.4 → **v2.6** |
|
||||
| Digest | `sha256:17dc3b3b6171bad891b0d366a22e1b52d79db7fc9caccedf816a7feab4cea449` |
|
||||
| 内网地址 | `http://172.17.197.36:3001` |
|
||||
|
||||
---
|
||||
|
||||
## 三、前端Nginx更新(v2.0 → v2.3)
|
||||
|
||||
### 3.1 主要变更(11 项)
|
||||
|
||||
| 类别 | 变更内容 |
|
||||
|------|---------|
|
||||
| ASL | 隐藏数据源/年限/篇数 + 去掉研究方案生成/文献管理 + 默认进入智能文献检索 |
|
||||
| AIA | 删除「已接入DeepSeek」和搜索框 + Protocol Agent 按权限动态显示 |
|
||||
| AIA | 数据评价与预处理/智能统计分析链接修正 |
|
||||
| 首页 | 重定向到 `/ai-qa`,不再显示模块卡片首页 |
|
||||
| PKB | 创建知识库时隐藏科室选择,默认 General |
|
||||
| 安全 | 被踢出时提示「账号已在其他设备登录」 |
|
||||
| 运营端 | 用户模块权限弹窗显示所有模块(含未订阅标注) |
|
||||
| 运营端 | 批量导入用户重构为 4 步流程 + 自动继承租户模块 |
|
||||
|
||||
### 3.2 镜像信息
|
||||
|
||||
| 项目 | 值 |
|
||||
|------|---|
|
||||
| ACR 仓库 | `ai-clinical_frontend-nginx` |
|
||||
| 镜像版本 | v2.0 → **v2.3** |
|
||||
| Digest | `sha256:db031053d8ac50d8f2ce39a8406534743d974a5506b7d4af5a944dd145ce8589` |
|
||||
| 内网地址 | `http://172.17.173.104:80` |
|
||||
|
||||
---
|
||||
|
||||
## 四、环境变量联动更新
|
||||
|
||||
| 服务 | 环境变量 | 旧值 | 新值 |
|
||||
|------|---------|------|------|
|
||||
| frontend-nginx-service | `BACKEND_SERVICE_HOST` | `172.17.197.32` | `172.17.197.36` |
|
||||
|
||||
> CLB 负载均衡器由阿里云自动更新,无需手动操作。
|
||||
|
||||
---
|
||||
|
||||
## 五、待后续部署项
|
||||
|
||||
| 项目 | 说明 |
|
||||
|------|------|
|
||||
| DB-3 | SSA 双通道表结构(ssa_sessions + ssa_agent_executions) |
|
||||
| R-1 | R 统计引擎新增 execute-code 端点(需重构 R 镜像) |
|
||||
|
||||
---
|
||||
|
||||
## 六、当前系统配置速查
|
||||
|
||||
### 服务内网地址
|
||||
|
||||
```
|
||||
R统计引擎: http://172.17.173.101:8080 (不变)
|
||||
Python: http://172.17.173.102:8000 (不变)
|
||||
后端: http://172.17.197.36:3001 (更新)
|
||||
前端: http://172.17.173.104:80 (更新)
|
||||
```
|
||||
|
||||
### ACR 镜像版本
|
||||
|
||||
| 仓库 | 版本 |
|
||||
|------|-----|
|
||||
| `ssa-r-statistics` | v1.0.1 |
|
||||
| `python-extraction` | v1.2 |
|
||||
| `backend-service` | **v2.6** |
|
||||
| `ai-clinical_frontend-nginx` | **v2.3** |
|
||||
|
||||
### 公网访问
|
||||
|
||||
```
|
||||
CLB: http://8.140.53.236/
|
||||
域名: https://iit.xunzhengyixue.com/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
## 七、二次热修部署(同日)
|
||||
|
||||
### 7.1 触发原因
|
||||
|
||||
- SSA 智能统计分析上传文件报错:`The column execution_mode does not exist in the current database`
|
||||
- 前端/后端其他 bug 修复(基于测试反馈)
|
||||
|
||||
### 7.2 数据库热修
|
||||
|
||||
| 操作 | 内容 | 状态 |
|
||||
|------|------|------|
|
||||
| ALTER TABLE | `ssa_sessions` 新增 `execution_mode` 列(默认 `'qper'`) | ✅ |
|
||||
| CREATE TABLE | `ssa_agent_executions` 表 + 索引 + 外键 | ✅ |
|
||||
| INSERT | Prisma 迁移记录同步注册 | ✅ |
|
||||
|
||||
### 7.3 镜像重构与部署
|
||||
|
||||
| 服务 | 版本变化 | 镜像 Digest | IP 变化 |
|
||||
|------|---------|-------------|---------|
|
||||
| Node.js 后端 | v2.6 → **v2.7** | `sha256:bfb7d3e6ce39...` | `172.17.197.36` → `172.17.197.37` |
|
||||
| 前端 Nginx | v2.3 → **v2.4** | `sha256:03fab06fb1a2...` | `172.17.173.104` → `172.17.173.105` |
|
||||
|
||||
### 7.4 最终系统配置
|
||||
|
||||
```
|
||||
后端: http://172.17.197.37:3001
|
||||
前端: http://172.17.173.105:80
|
||||
R统计引擎: http://172.17.173.101:8080
|
||||
Python: http://172.17.173.102:8000
|
||||
```
|
||||
|
||||
| ACR 仓库 | 最终版本 |
|
||||
|----------|---------|
|
||||
| `backend-service` | **v2.7** |
|
||||
| `ai-clinical_frontend-nginx` | **v2.4** |
|
||||
| `ssa-r-statistics` | v1.0.1 |
|
||||
| `python-extraction` | v1.2 |
|
||||
|
||||
---
|
||||
|
||||
> **文档版本**:v1.1
|
||||
> **最后更新**:2026-03-05
|
||||
> **维护人员**:开发团队
|
||||
Reference in New Issue
Block a user