Files
AIclinicalresearch/docs/03-业务模块/RVW-稿件审查系统/00-系统设计/RVW V2.0 架构升级方案:基于 Skills 的柔性审稿引擎.md
HaHafeng e785969e54 feat(rvw): Implement RVW V2.0 Data Forensics Module - Day 6 StatValidator
Summary:
- Implement L2 Statistical Validator (CI-P consistency, T-test reverse)
- Implement L2.5 Consistency Forensics (SE Triangle, SD>Mean check)
- Add error/warning severity classification with tolerance thresholds
- Support 5+ CI formats parsing (parentheses, brackets, 95% CI prefix)
- Complete Python forensics service (types, config, validator, extractor)

V2.0 Development Progress (Week 2 Day 6):
- Day 1-5: Python service setup, Word table extraction, L1 arithmetic validator
- Day 6: L2 StatValidator + L2.5 consistency forensics (promoted from V2.1)

Test Results:
- Unit tests: 4/4 passed (CI-P, SE Triangle, SD>Mean, T-test)
- Real document tests: 5/5 successful, 2 reasonable WARNINGs

Status: Day 6 completed, ready for Day 7 (Skills Framework)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 22:15:27 +08:00

182 lines
8.9 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 V2.0 架构升级方案:基于 Skills 的柔性审稿引擎**
**文档版本:** v2.0 (Strategic Release)
**最后更新:** 2026-02-16
**核心理念:** **认知依赖注入 (Cognitive Dependency Injection)** —— 将审稿能力封装为原子化的 Skills通过配置引擎Profile动态注入给 SOP 引擎(报告)和 ReAct 引擎(对话)。
**架构依据:** 基于《AI Skills 落地应用探讨》与中英文期刊差异化需求。
## **1\. 核心定义:什么是 RVW Skills**
在 V2.0 架构中Skill 不再是一个简单的函数,它是连接\*\*非确定性大模型LLM**与**确定性业务系统Code\*\*的桥梁。
一个标准的 **RVW Skill** 包含三个不可分割的部分Schema First 原则):
1. **语义接口 (Semantic Interface)**:告诉 LLM "什么时候用"(例如:"当需要验证药物剂量时调用")。
2. **数据契约 (Schema)**严格定义的输入输出结构例如drug\_name: string, dosage: number确保代码执行的安全性。
3. **原生函数 (Native Function)**实际执行任务的代码Python/SQL**“推理在模型,执行在代码”**。
## **2\. 总体架构:双脑协同与护栏防御体系**
我们摒弃了 V1.0 的线性流程,采用了 **“双脑协同 \+ 中间件护栏”** 的立体架构。
### **系统架构图**
graph TD
subgraph "输入层"
Doc\[稿件 PDF/Word\]
Profile\[期刊配置 Profile\]
end
subgraph "Layer 1: 护栏中间件 (Middleware Guardrails)"
direction TB
SafeGuard\[🛡️ 政治与合规护栏\]
note1\[Pre-Hook: OCR地图/敏感词拦截\<br\>Post-Hook: 幻觉检测\]
end
subgraph "Layer 2: 审稿编排引擎 (The Core)"
Registry\[🧩 Skills Registry 技能注册表\]
Router\[🚦 Skill Router 动态路由\]
Context\[Shared Context 共享上下文\]
end
subgraph "Layer 3: 原子能力库 (Skills)"
direction BT
S\_Native\[🐍 Python计算 Skill\<br\>(数据造假/统计验证)\]
S\_RAG\[🧠 知识检索 Skill\<br\>(医学常识/pgvector)\]
S\_Search\[🌍 外部搜索 Skill\<br\>(竞品对标/ASL联动)\]
S\_Logic\[⚖️ 逻辑校验 Skill\<br\>(入排标准/pg\_bigm)\]
end
subgraph "输出层 (双脑应用)"
SOP\[🧠 左脑: SOP 流程引擎\<br\>(生成静态审稿报告)\]
ReAct\[🧠 右脑: ReAct 对话引擎\<br\>(交互式学术 Copilot)\]
end
Doc \--\> SafeGuard
SafeGuard \--阻断/通过--\> Router
Profile \--\> Router
Router \--动态加载--\> Registry
Registry \<--\> S\_Native & S\_RAG & S\_Search & S\_Logic
Registry \--\> SOP
Registry \--\> ReAct
SOP \--\> Context
Context \<--\> ReAct
## **3\. 三层防御与赋能体系 (The 3-Layer Capability)**
### **Layer 1: 政治与合规护栏 (Middleware Guardrail)**
*针对痛点:中文期刊的政治红线(地图、涉敏言论)。*
* **性质**:这不是一个可选的 Skill而是系统级的 **Interceptor (拦截器)**
* **机制**
* **Pre-Hook (输入前)**
* 调用 OCR 识别图片 \-\> 匹配“中国地图特征库” \-\> 缺失藏南/南海 \-\> **熔断拒稿**
* 扫描全文 \-\> 匹配“高危敏感词库” \-\> 命中 \-\> **熔断拒稿**
* **Post-Hook (输出后)**
* 扫描 LLM 生成的审稿意见,防止 AI 产生不当言论。
* **配置策略**:中文核心期刊强制开启 (Blocker 级别),英文期刊可降级为 Warning 或关闭。
### **Layer 2: 原生计算能力 (Native Execution Skills)**
*针对痛点:数据造假、统计学错误。*
* **核心原则**LLM **只写参数,不负责计算**
* **典型 SkillDataForensicsSkill (数据侦探)**
* **Step 1 (LLM)**:从 Markdown 表格中提取数据,生成 JSON{"group\_a\_n": 50, "group\_a\_mean": 12.5, "group\_a\_sd": 2.1}。
* **Step 2 (Python)**:调用 scipy 库复核 P 值,使用 Benford's Law (本福特定律) 检查首位数字分布。
* **Step 3 (LLM)**:根据 Python 返回的 {"p\_value\_consistent": false, "benford\_score": 0.04} 生成自然语言警告。
### **Layer 3: 学术智慧能力 (RAG & Agent Skills)**
*针对痛点:医学常识错误、竞品对标。*
* **典型 SkillMedicalLogicSkill (常识校验)**
* **底层支持**:利用 **Postgres (pgvector)** 挂载《临床用药指南》和《诊断学参考值》。
* **流程**:提取“卡托普利 500mg” \-\> 向量检索知识库 \-\> 发现正常范围是 12.5-50mg \-\> 触发警告。
* **典型 SkillBenchmarkSkill (竞品对标)**
* **联动**:调用 ASL (智能文献) 模块 API。
* **流程**:搜索相似文献 \-\> 对比样本量与方法学 \-\> 生成“竞争力分析报告”。
## **4\. 固定的 vs. 可配置的 (Architecture Boundary)**
基于“工厂模式”理念,我们将系统划分为“流水线(固定)”和“模具(可配置)”。
### **✅ 固定的 (Infrastructure \- 平台底座)**
所有期刊共用,不随业务变化:
1. **Middleware Pipeline**:支持 Pre/Post Hook 的拦截器架构。
2. **Skill Registry**:技能注册与发现机制。
3. **Postgres-Only Stack**
* pgvector承载医学知识库、稿件内容记忆。
* pg\_bigm承载精确的术语匹配如药物名
* pg-boss承载长耗时任务如全网文献对标
4. **Python Microservice**:提供 OCR、PDF 解析、统计计算等“硬核”算力。
### **🎛️ 可配置的 (Journal Profile \- 业务逻辑)**
通过 JSON 配置定义,适应不同期刊:
1. **Guardrail Strictness (护栏严格度)**
* "political\_check": "BLOCKER" (中文核心) vs "WARNING" (普通期刊)。
2. **Skill Selection (技能组合)**
* **中文组合**DataForensics \+ MedicalLogic \+ Editorial\_CN。
* **英文组合**Methodology\_CONSORT \+ Benchmark\_PubMed \+ Editorial\_EN。
3. **Chat Persona (对话人格)**
* "persona": "严厉的政治审查员" vs "persona": "建设性的学术导师"。
## **5\. 场景演练:从上传到对话**
### **场景 A中文核心期刊政治与数据为王**
1. **上传**:文件经过 **Layer 1 护栏**。OCR 发现地图缺失,直接抛出 FatalError: MapIntegrityViolation流程终止。用户收到拒稿通知。
2. **修正后上传**:通过护栏。
3. **SOP 引擎**:自动调用 DataForensicsSkill。Python 后端发现“表1数据标准差异常”写入报告。
4. **ReAct 引擎 (Chat)**:用户问:“为什么说我数据有问题?”
* Chat Agent 读取 Shared Context。
* 回答:“根据 Benford 定律检测,您数据的首位数字分布偏离自然规律 30%,建议复核原始记录。”
### **场景 B英文顶刊创新与对标为王**
1. **上传**:跳过政治护栏(配置为通过)。
2. **SOP 引擎**:调用 BenchmarkSkill。ASL 模块检索到 3 篇上个月发表的类似文章,样本量均大于本稿件。
3. **报告生成**:在“创新性评估”一栏标注:“样本量竞争力不足 (Low Competitiveness)”。
4. **ReAct 引擎 (Chat)**:用户问:“我该怎么修改才能达到发表标准?”
* Chat Agent 调用 MethodologySkill。
* 回答:“建议参考 *Smith et al. (2025)* 的多中心设计,将样本量扩充至 200 例,并补充亚组分析。”
## **6\. 开发实施路线图 (Implementation Roadmap)**
### **Phase 1: 基础设施与定义 (Infrastructure)**
* \[ \] **定义 Schema**:在 backend/src/modules/rvw/skills/definitions/ 下定义 SkillInterface 和各类 Skill 的 JSON Schema。
* \[ \] **建立 Registry**:实现简单的内存级 Skill 注册表。
### **Phase 2: 护栏与原生技能 (The Hard Stuff)**
* \[ \] **实现 Middleware**:在 Document Service 中插入 Pre-Hook 逻辑。
* \[ \] **开发 Python Skills**:在 python-extraction 服务中新增 /analyze-table 和 /ocr-check 接口。
* \[ \] **实现 PoliticalGuardrail**:基础的敏感词匹配 \+ 地图 OCR 占位符。
### **Phase 3: 学术技能与双脑打通 (The Smart Stuff)**
* \[ \] **实现 MedicalLogicSkill**:利用现有的 pgvector 基础设施。
* \[ \] **集成 ASL**:开发 BenchmarkSkill 调用 ASL 模块 API。
* \[ \] **升级 Chat**:让 AIA 组件能读取审稿报告的 Context并具备 Function Calling 能力。
## **7\. 总结**
V2.0 架构不仅仅是功能的堆砌,而是**系统哲学的转变**
***"LLM 尽力而为"** 转向 **"Guardrail 绝对防御"**。
***"单一审稿报告"** 转向 **"交互式学术伙伴"**。
***"文本生成"** 转向 **"工具调用 (Tool Use)"**。
这套架构将确保 RVW 既能满足中文期刊的“生死红线”,又能满足英文期刊的“学术高度”。