Implement RVW V4.0 tenant-aware backend/frontend flow with tenant routing, config APIs, and full portal UX updates. Sync system/RVW/deployment docs to capture verified upload-review-report workflow and next-step admin configuration work. Made-with: Cursor
141 lines
13 KiB
Markdown
141 lines
13 KiB
Markdown
# **智能审稿系统 (期刊SaaS版) V4.0 产品需求文档 (PRD)**
|
||
|
||
**文档版本:** V1.6 (新增统一通行证 SSO 与动态租户登录架构)
|
||
|
||
**制定日期:** 2026-03-14
|
||
|
||
**产品名称:** RVW 智能审稿系统 (Journal AI Review SaaS)
|
||
|
||
**目标用户:** 医学期刊编辑部(主编/责编)、期刊外审专家、投稿作者
|
||
|
||
**核心定位:** 为医学期刊量身定制的、支持高度个性化配置的独立 AI 预审稿 SaaS 平台。
|
||
|
||
**💡 MVP 阶段战略提示:** 为降低初期开发成本并把控质量,系统初期采用 **Managed SaaS(代运营/配置)模式**。复杂的底层规则配置由内部运营/实施团队通过现有的 ADMIN 管理端完成。外部期刊客户只需“开箱即用”业务端。
|
||
|
||
## **1\. 产品背景与目标**
|
||
|
||
### **1.1 演进背景**
|
||
|
||
当前 RVW 模块(V3.0.1)具备了强大的 4 维审查能力。但与临床科研人员共用平台存在品牌混杂、审查标准缺乏弹性、管理权限缺失等痛点。不同期刊(如英文 SCI 期刊 JTIM vs 中文核心期刊)的稿约规范、重点审查维度截然不同,系统亟需多租户的个性化配置能力。
|
||
|
||
### **1.2 产品目标**
|
||
|
||
1. **SaaS 化业务端升级**:引入“租户(Tenant)”隔离,每个期刊作为一个独立租户,拥有独立的子域名、独立登录页、独立品牌标识的业务端工作台。
|
||
2. **建立完整的期刊工作流**:涵盖“作者投递预审 \-\> 责编复核 \-\> 勾选重组 \-\> 导出内部报告/发送作者退修信”。
|
||
3. **架构收敛的内部配置中枢 (核心)**:**不另起炉灶开发独立配置中心**,而是深度扩展现有的 ADMIN 运营管理端。利用现有的租户管理体系(Tenant),实现跨期刊的审稿流水线无缝配置。
|
||
4. **统一通行证 (SSO)**:期刊用户与现有临床研究平台用户底层互通,实现跨域无缝漫游,沉淀统一的医生/专家账号体系。
|
||
|
||
## **2\. 角色与权限体系**
|
||
|
||
| 角色类型 | 典型用户 | 核心权限清单 |
|
||
| :---- | :---- | :---- |
|
||
| **内部实施/超管** | 壹证循运营团队 | **MVP 阶段的核心主导者**。拥有 ops:user-ops 及 SUPER\_ADMIN 权限。在现有的 ADMIN 端 TenantDetailPage 中,为不同期刊租户编排 Skills 规则、配置动态 Prompt 及 Handlebars 模板。 |
|
||
| **期刊主编/管理员** | 期刊编辑部主任 | 纯业务视角。查看本刊数据仪表盘、管理责编账号、查阅本刊所有稿件审查进度。**MVP 阶段无需登录底层 ADMIN 端**。 |
|
||
| **期刊责编** | 期刊审稿编辑 | 登录期刊专属 URL,接收稿件、触发 AI 审查、人工复核确认缺陷项、导出内部报告与给作者的退修信。 |
|
||
|
||
## **3\. 核心功能需求 (Functional Requirements)**
|
||
|
||
### **3.1 期刊专属门户与统一通行证 (Business Portal & SSO)**
|
||
|
||
交付给外部期刊责编的核心业务模块。该模块在底层与临床研究主站共用同一套用户体系(platform\_schema.users),实现“统一通行证”体验,在表层依靠以下机制实现业务硬隔离:
|
||
|
||
* **子域名路由区分 (Domain Routing)**:支持按拼音或缩写生成独立 URL(例:jtim.xunzhengyixue.com)。前端应用初始化时,通过解析 window.location.hostname 自动切入“期刊工作台模式”。
|
||
* **动态定制化登录页 (Dynamic Login UI)**:用户访问子域名时,前端在未登录态下请求该租户的公开配置(公开接口)。据此渲染完全定制化的期刊专属登录页(独立的期刊 Logo、专属品牌色、独立背景图),在视觉上打造完全独立的系统心智。
|
||
* **沉浸式 4-Tab 审稿详情页**:优先渲染大模型生成的 expert\_report\_markdown (由内部团队在配置中心编写的 Handlebars 模板渲染而成)。
|
||
* **退修信自动生成与双轨导出**:基于责编在 AI 找出的“缺陷列表”中的勾选确认项,一键生成语气委婉专业、条理清晰的 Letter to Authors。
|
||
|
||
### **3.2 租户审查配置扩展 (ADMIN 模块深度集成) ——**
|
||
|
||
![][image1]**定位说明**:直接在现有的运营管理端(ADMIN)的**租户详情页 (TenantDetailPage)** 中进行能力扩展,实现“千刊千面”。
|
||
|
||
#### **3.2.1 UI 集成方案:新增“智能审稿配置” Tab**
|
||
|
||
在现有的 TenantDetailPage(目前包含“基础信息”、“模块配置”、“配额管理”等)中,新增一个名为 **【智能审稿配置 (RVW Skills)】** 的 Tab。内部人员在此进行以下 4 大 Skills 的个性化编排:
|
||
|
||
1. **稿约规范评估 (Editorial Skill) 配置**:
|
||
* **提取规则维护**:列表化维护该期刊的特有规则(如:AI署名检测、摘要字数限制)。
|
||
* **一票否决 (Fatal) 设定**:勾选致命错误项,触发时直接高亮拦截。
|
||
2. **方法学评估 (Methodology Skill) 动静分离配置**:
|
||
* **评判标准配置 (Business Criteria Prompt)**:自然语言文本框,交代该期刊的特殊审查要求(如:“必须提供 P 值的精确值”)。
|
||
* **报告展示模板 (Handlebars Template)**:利用 ADMIN 现有的模板渲染引擎,配置该期刊最终审查报告的排版样式(如 1、2、3 点列表,或特定专家语气)。
|
||
3. **数据验证 (Data Forensics Skill) 配置**:
|
||
* 验证深度下拉选项(L1 算术验证 / L2 统计学验证 / L3 双通道核查)。
|
||
4. **临床专业评估 (Clinical Skill) 配置**:
|
||
* FINER 权重配置(5 个输入框控制总和为 100% 的打分权重)。
|
||
* 专科特色补充文本。
|
||
|
||
## **4\. 技术架构影响与底层升级指南**
|
||
|
||
此次升级完美契合平台现有的 Postgres-Only 架构与 ADMIN 模块基建。
|
||
|
||
### **4.1 数据模型扩展 (Database Schema)**
|
||
|
||
在 platform\_schema 中保持现有的 tenants 表作为核心,新增 1 对 1 扩展表:
|
||
|
||
* **新增表 tenant\_rvw\_configs**:
|
||
* tenant\_id (外键,关联 tenants.id)
|
||
* editorial\_rules (JSONB: 存储稿约规则数组及 fatal 标记)
|
||
* methodology\_expert\_prompt (Text: 专家的业务评判标准)
|
||
* methodology\_handlebars\_template (Text: 报告渲染模板)
|
||
* data\_forensics\_level (Enum: L1/L2/L3)
|
||
* finer\_weights (JSONB: 临床评估的五维权重)
|
||
|
||
### **4.2 Prompt “动静分离” 与双轨输出落地**
|
||
|
||
针对 PromptService 进行架构升级,彻底解决 JSON 崩溃问题:
|
||
|
||
* **静态协议层 (系统级,不可更改)**:
|
||
* 在 capability\_schema.prompt\_templates 表中,固化一条名为 RVW\_METHODOLOGY\_SYSTEM\_BASE 的记录。
|
||
* 内容写死:强制开启 Structured Output (或 JSON Schema),必须返回 system\_metrics (含 20 项检查点状态) 和 expert\_report\_markdown 两个节点。
|
||
* **动态业务层 (租户级,内部运营可调)**:
|
||
* 内容来源于新增的 tenant\_rvw\_configs 表的 methodology\_expert\_prompt 字段。
|
||
* **运行时拼装 (Runtime Concat)**:
|
||
* SkillExecutor 执行时,先通过 promptService.get('RVW\_METHODOLOGY\_SYSTEM\_BASE') 获取底层系统约束。
|
||
* 再拉取当前 tenantId 的动态业务评判标准。
|
||
* **内存拼接后发送给 LLM**。大模型会根据专家的排版要求,将纯净的格式化文本填充至 expert\_report\_markdown 字段中。
|
||
* **展示层渲染 (Handlebars)**:
|
||
* 结合现有的 Handlebars 渲染器与租户存储的 methodology\_handlebars\_template,在前端/导出时直接渲染,实现“专家零感知 JSON”。
|
||
|
||
### **4.3 接口权限中间件复用**
|
||
|
||
* **内部配置权限**:复用现有的 ops:user-ops 与 requireModule 中间件,控制内部人员进入 TenantDetailPage 修改审稿配置。
|
||
* **外部业务权限**:所有 RVW 业务 API (/api/v2/rvw/\*) 复用租户边界校验,确保稿件数据硬隔离。
|
||
|
||
### **4.4 统一账号与鉴权体系 (SSO)**
|
||
|
||
为了实现医生专家在“临床科研平台”与“各期刊 SaaS 门户”之间的无缝漫游,架构需遵守以下设计:
|
||
|
||
* **绝对底层复用**:禁止为期刊 SaaS 业务新建独立的用户库,全面复用现有的 platform\_schema.users。同一个账号密码,既可登录主站做数据清洗(DC),也可登录 jtim. 子域名进行审稿。
|
||
* **JWT 会话隔离 (Session Isolation)**:身份认证层 auth.service.ts 需升级。在签发 JWT 时,后端必须根据登录请求携带的租户上下文(tenantId),将其压入 Payload。系统的 auth.middleware.ts 提取该 tenantId 实现全局请求的行级数据隔离。
|
||
* **模块动态过滤 (Module Filtering)**:依托平台现有的 user\_modules 体系,当识别到用户登录在某期刊租户(如 JTIM)下,由于该租户仅订阅了 RVW 模块,系统会自动隐藏左侧/顶部的 AIA、DC、PKB 等所有无关入口,为编辑提供纯粹的沉浸式工作台。
|
||
|
||
## **5\. 迭代演进路线图 (Roadmap)**
|
||
|
||
通过复用现有的 ADMIN 模块,Phase 2 的前端开发工作量将缩减 50% 以上。
|
||
|
||
### **Phase 1: 统一账号隔离与扩展表 (预计 1 周)**
|
||
|
||
* 创建 Prisma 模型 tenant\_rvw\_configs 并执行迁移。
|
||
* 开发基于域名的动态路由拦截器,实现子域名加载特定的登录 UI。
|
||
* 升级 JWT 签发逻辑,确保 Token Payload 中正确注入租户上下文。
|
||
|
||
### **Phase 2: ADMIN 运营端深度集成 (预计 1.5 周)**
|
||
|
||
* **UI 扩展**:在 frontend-v2 的 TenantDetailPage.tsx 中新增 【智能审稿配置】Tab 页及对应的表单组件。
|
||
* **后端 API**:新增 /api/admin/tenants/:id/rvw-config 的 CRUD 接口。
|
||
* **引擎改造**:重构 SkillExecutor,读取扩展表配置,并落实 Prompt 的“静态系统层 \+ 动态租户层”拼装逻辑(Hybrid Schema)。
|
||
|
||
### **Phase 3: 面向外部的业务端重构及双轨导出 (预计 2 周)**
|
||
|
||
* 沉淀通用英文审稿规范(如 ICJME/COPE 标准)至底层预制规则库。
|
||
* 上线 **作者退修信 (Author Reply Letter)** 一键生成功能。
|
||
* 全面跑通独立工作台上的全流程,交付给首批期刊客户(如 JTIM, CMJ)进行 Beta 测试。
|
||
|
||
## **6\. 验收标准**
|
||
|
||
1. **统一账号漫游**:用户在主站注册账号后,无需重新注册即可用相同账密登录专属的期刊入口(如 JTIM子域名)。
|
||
2. **架构收敛**:没有开发新的独立配置后台,所有配置均在现有的 ADMIN \-\> TenantDetailPage 中顺滑完成,权限体系(ops:user-ops)复用良好。
|
||
3. **极速生效与不冲突**:内部实施人员在 TenantDetailPage 修改某期刊的 Handlebars 模板文本。点击保存后,即刻影响客户新上传稿件的最终报告显示排版,且底层的 JSON 解析 100% 成功,系统零崩溃。
|
||
4. **双轨导出功能**:外部责编能够在查阅完全部 AI 评估后,在弹出的窗口中勾选 3 个致命错误,点击“生成退修信”,系统随即利用专属信函模板生成一封精准的专业邮件/Word。
|
||
|
||
[image1]: <data:image/png;base64,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> |