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

8.9 KiB
Raw Blame History

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 既能满足中文期刊的“生死红线”,又能满足英文期刊的“学术高度”。