Files
AIclinicalresearch/docs/03-业务模块/RVW-稿件审查系统/00-系统设计/V3.0/RVW V4.0 期刊租户配置中心开发需求0315.md
HaHafeng 83e395824b feat(rvw): complete journal config center MVP and tenant login routing
Deliver the RVW V4.0 journal configuration center across backend, frontend, migration, and docs with zh/en editorial baseline support and tenant-level prompt/template overrides. Unify tenant login to /:tenantCode/login and auto-enable RVW module when tenant type is JOURNAL to prevent post-login access gaps.

Made-with: Cursor
2026-03-15 11:51:35 +08:00

161 lines
10 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.
# **RVW V4.0 期刊租户配置中心开发需求**
**模块定位:** 依托现有 ADMIN 运营端 TenantDetailPage为每个期刊客户建立独立的配置中枢。
**核心目标:** 实现期刊 SaaS 的“千刊千面”。
**架构原则:**
1. **配置继承模式 (Config Inheritance)**:系统提供【标准默认配置】。期刊默认继承系统标准;需要个性化时,可开启【自定义覆盖】。
2. **中英双轨基线 (Dual-Baseline)**:针对稿约规范,系统提供“英文期刊”与“中文期刊”两套底层标准,供租户自主选择绑定。
3. **全面 Prompt 化 (All-in-Prompt)**:取消细颗粒度表单,采用“专家评判标准 (Prompt) \+ 报告展示模板 (Handlebars)”的开放式极简架构。
## **🎯 一、 前端 UI 与功能分区要求**
在现有的 ADMIN 租户详情页TenantDetailPage构建两大核心配置区块
### **区块 1期刊基础信息与门户配置 (Basic Info & Portal)**
用于定义该期刊的对外面貌和访问入口。
| 配置项名称 | 阶段 | 字段类型 | UI 组件 | 功能说明 |
| :---- | :---- | :---- | :---- | :---- |
| **期刊全称** | \[P0\] | String | 文本输入框 | 如:*Journal of Translational Internal Medicine*。显示在登录页及工作台顶部。 |
| **访问路径(Slug)** | \[P0\] | String | 文本输入框(需正则) | **极重要**:用于生成 review.xunzhengyixue.com/{slug}。仅允许小写字母、数字和连字符。 |
| **期刊 Logo** | \[P1\] | String | 图片上传组件 | 上传至 OSS 后保存 URL。用于替换默认的系统 Logo。 |
| **品牌主色调** | \[P1\] | String | 颜色拾取器 | 支持 HEX 色值。用于动态渲染按钮和高亮文字。 |
| **登录页背景图** | \[P2\] | String | 图片上传组件 | (暂不开发) 替换登录页的默认背景。 |
### **区块 2智能审稿配置 (RVW Skills Config) —— 【全维度 Prompt 架构】**
这是该模块的核心。对于 4 个配置面板,顶部必须增加一个全局切换组件:
* 🔘 **选项 A: 继承系统默认配置 (Inherit System Default)** \[P0\] —— 选中时,下方大文本框置灰只读。
* 🔘 **选项 B: 启用个性化自定义 (Custom Override)** \[P0\] —— 选中时,解锁下方大文本框,允许大面积修改。
#### **Panel A: 稿约规范评估 (Editorial) —— 【支持中英标准选择】**
作为特殊的规范模块,当选择 **“继承系统默认配置”** 时,必须提供一个**下拉单选框**供运营人员选择:
* 🔘 **标准版英文期刊规范 (English Standard)** \[P0\]:自动绑定英文 SCI 级审查标准(严查伦理声明等)。
* 🔘 **标准版中文稿约规范 (Chinese Standard)** \[P0\]:自动绑定中文核心期刊审查标准(查中英文摘要对照等)。
当选择 **“启用个性化自定义”** 时,展示下方的通用组件。
#### **统一的面板配置项(适用于 Panel B / C / D 及自定义状态下的 Panel A**
* **1\. 专家评判标准 (Expert Prompt)** \[P0\]:大文本框。自由输入该期刊特有的审查要求(大模型读取)。
* **2\. 报告展示模板 (Handlebars Template)** \[P0\]:大文本框。用于配置最终输出给责编的 Markdown 格式。
* ⚠️ **3\. 测试渲染 (Test Render)** \[P1\]:在模板编辑区提供“预览”按钮。使用假 JSON 数据在右侧实时渲染 Markdown 结果,防语法写错导致线上白屏。(MVP 阶段若来不及,可由运营人员去前台真实传 PDF 测试兜底)。
## **💾 二、 数据库 Schema 设计 (Prisma) \[P0\]**
**DB 要求**:即便 UI 是分阶段开发,数据库字段必须在 \[P0\] 阶段一次性建好,避免后续频繁 Migrate。
利用数据库的 null 语义表达“继承”。取消原有的 JSON 数组,统一为 Text 类型的 Prompt 和 Template 字段。
重点新增 editorialBaseStandard 字段,用于持久化期刊的中英文基线选择。
model TenantRvwConfig {
id String @id @default(uuid())
tenantId String @unique
tenant Tenant @relation(fields: \[tenantId\], references: \[id\])
// Panel A: 稿约规范评估
// 'en' 代表选用标准英文规范,'zh' 代表选用标准中文规范。
editorialBaseStandard String @default("en")
editorialExpertPrompt String? @db.Text
editorialHandlebarsTemplate String? @db.Text
// Panel B: 方法学评估
methodologyExpertPrompt String? @db.Text
methodologyHandlebarsTemplate String? @db.Text
// Panel C: 数据验证评估
dataForensicsExpertPrompt String? @db.Text
dataForensicsHandlebarsTemplate String? @db.Text
// Panel D: 临床专业评估
clinicalExpertPrompt String? @db.Text
clinicalHandlebarsTemplate String? @db.Text
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@schema("platform\_schema")
}
## **🔌 三、 后端 API 与底层引擎继承逻辑 (核心)**
### **1\. 内部 ADMIN 配置接口 (需要 ops:user-ops 权限) \[P0\]**
* PUT /api/admin/tenants/:id/basic-info更新期刊名称、Slug (P1阶段再接 Logo 等)。
* GET /api/admin/tenants/:id/rvw-config获取指定期刊的 Skills 配置(若不存在,返回 {})。
* PUT /api/admin/tenants/:id/rvw-configUPSERT 期刊 Skills 配置。**若前端选择“继承系统默认”,对应的 ExpertPrompt 和 Template 传 null但 editorialBaseStandard 必须传选中的值('en'或'zh'**。
### **2\. 底层引擎运行时的“降级合并 (Fallback Merge)”逻辑 \[P0\]**
后端重构 SkillExecutor 时,实施深度合并策略。以 **稿约规范 (EditorialSkill)** 为例:
async function executeEditorialSkill(manuscript, tenantConfig) {
let promptToApply;
// 1\. 如果租户自定义了稿约 Prompt直接使用租户的开放式配置 (优先级最高)
if (tenantConfig && tenantConfig.editorialExpertPrompt) {
promptToApply \= tenantConfig.editorialExpertPrompt;
}
// 2\. 租户未自定义(为 null触发系统默认降级逻辑
else {
// 2.1 读取该期刊在后台配置的“标准语言基线”
const baseStandard \= tenantConfig?.editorialBaseStandard || 'en';
// 2.2 根据基线拉取对应的【系统标准版规范】Prompt
if (baseStandard \=== 'en') {
promptToApply \= await promptService.get('SYSTEM\_DEFAULT\_EDITORIAL\_EN');
} else if (baseStandard \=== 'zh') {
promptToApply \= await promptService.get('SYSTEM\_DEFAULT\_EDITORIAL\_ZH');
}
}
// 3\. 将 promptToApply 喂给 LLM 执行,并使用对应 Handlebars 模板渲染...
}
方法学、数据验证和临床评估的逻辑同理:最终提示词 \= 租户自定义 Prompt ?? 系统默认 Prompt。
## **👥 四、 实施 SOP用户与期刊绑定无需开发**
1. 客户在主站注册账号(或由超管分配账号)。
2. 内部超管在 ADMIN 端的 **【用户管理 \-\> 租户成员管理】** 页面,将该用户的账号添加到目标期刊租户(如 JTIM下。
3. 确保该用户拥有 RVW 模块的使用权限。
4. **验证**:此后该用户访问 review.xunzhengyixue.com/jtim 时JWT 中会自动带上该租户身份,接口方可放行。
## **✅ 五、 验收标准 (Definition of Done \- P0 阶段)**
1. ADMIN 后台成功渲染出只包含大文本框Textarea的极简配置界面。
2. **中英基线验证**
* 将 JTIM 的【稿约规范】设置为“继承系统默认”并选择\*\*【标准版英文期刊规范】\*\*,上传稿件时,系统严格核查伦理声明等英文规则。
* 将 CMJ 设置为“继承系统默认”并选择\*\*【标准版中文稿约规范】\*\*,系统重点核查中英文摘要对应等中文规则。
3. 当某期刊在【临床专业评估】开启自定义后,运营人员在大文本框中修改提示词并保存,新上传的稿件严格按该设定执行评估。
## **🚀 六、 分阶段实施与 MVP 裁剪指南 (给 PM 与研发团队)**
为了保证项目快速上线,坚决执行 Managed SaaS (代运营) 和 All-in-Prompt 的裁剪策略。
### **🔴 第一阶段MVP 必做清单 (P0) —— 目标:系统能跑通双语及个性化**
* **数据库**:一次性建好所有 Schema 字段(包含全部 Text 和 BaseStandard 字段)。
* **核心引擎**:必须完成 SkillExecutor 的降级合并逻辑(?? 合并)和中英文 Prompt 的自动路由。
* **ADMIN 前端**:只要最基础、最“丑”的表单输入框。实现“继承/自定义”的单选切换,并暴露 Textarea。不做任何复杂的花哨控件。
* **业务前端**:根据 URL 中的 /:tenantId 成功拦截并获取对应的【期刊名称】(纯文本展示即可)。
### **🟡 第二阶段:视觉与防呆增强 (P1) —— 目标:上线后 1-2 周内快反**
* **模板预览 (Test Render)**:复用底层 PromptService 补齐预览按钮,防止运营在纯文本框写错 Handlebars 语法导致线上白屏。
* **品牌视觉提升**:补齐期刊 Logo、主色调配置并在客户端动态渲染提升 SaaS 专属感。
* **接口安全**:为公开的品牌信息拉取接口增加 Redis 缓存与 Rate Limiting 限流防刷。
### **🟢 第三阶段:暂缓或砍掉的伪需求 (P2) —— 目标:避免过度工程**
* **细颗粒度表单控件**:既然已经全面 Prompt 化,坚决不再开发滑块(如权重分配)、下拉枚举(如验证级别)等细分 UI 控件。全部用 Prompt 解决。
* **客户自助配置后台**:坚决不做。坚持代运营模式,期刊主编提需求,内部运营人员在 ADMIN 端修改,规避复杂的 B 端权限开发。
* **登录页背景图定制**:暂不开发,统一使用系统默认干净纯色底即可。