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>
8.9 KiB
8.9 KiB
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 原则):
- 语义接口 (Semantic Interface):告诉 LLM "什么时候用"(例如:"当需要验证药物剂量时调用")。
- 数据契约 (Schema):严格定义的输入输出结构(例如:drug_name: string, dosage: number),确保代码执行的安全性。
- 原生函数 (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 产生不当言论。
- Pre-Hook (输入前):
- 配置策略:中文核心期刊强制开启 (Blocker 级别),英文期刊可降级为 Warning 或关闭。
Layer 2: 原生计算能力 (Native Execution Skills)
针对痛点:数据造假、统计学错误。
- 核心原则:LLM 只写参数,不负责计算。
- 典型 Skill:DataForensicsSkill (数据侦探)
- 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)
针对痛点:医学常识错误、竞品对标。
- 典型 Skill:MedicalLogicSkill (常识校验)
- 底层支持:利用 Postgres (pgvector) 挂载《临床用药指南》和《诊断学参考值》。
- 流程:提取“卡托普利 500mg” -> 向量检索知识库 -> 发现正常范围是 12.5-50mg -> 触发警告。
- 典型 Skill:BenchmarkSkill (竞品对标)
- 联动:调用 ASL (智能文献) 模块 API。
- 流程:搜索相似文献 -> 对比样本量与方法学 -> 生成“竞争力分析报告”。
4. 固定的 vs. 可配置的 (Architecture Boundary)
基于“工厂模式”理念,我们将系统划分为“流水线(固定)”和“模具(可配置)”。
✅ 固定的 (Infrastructure - 平台底座)
所有期刊共用,不随业务变化:
- Middleware Pipeline:支持 Pre/Post Hook 的拦截器架构。
- Skill Registry:技能注册与发现机制。
- Postgres-Only Stack:
- pgvector:承载医学知识库、稿件内容记忆。
- pg_bigm:承载精确的术语匹配(如药物名)。
- pg-boss:承载长耗时任务(如全网文献对标)。
- Python Microservice:提供 OCR、PDF 解析、统计计算等“硬核”算力。
🎛️ 可配置的 (Journal Profile - 业务逻辑)
通过 JSON 配置定义,适应不同期刊:
- Guardrail Strictness (护栏严格度):
- "political_check": "BLOCKER" (中文核心) vs "WARNING" (普通期刊)。
- Skill Selection (技能组合):
- 中文组合:DataForensics + MedicalLogic + Editorial_CN。
- 英文组合:Methodology_CONSORT + Benchmark_PubMed + Editorial_EN。
- Chat Persona (对话人格):
- "persona": "严厉的政治审查员" vs "persona": "建设性的学术导师"。
5. 场景演练:从上传到对话
场景 A:中文核心期刊(政治与数据为王)
- 上传:文件经过 Layer 1 护栏。OCR 发现地图缺失,直接抛出 FatalError: MapIntegrityViolation,流程终止。用户收到拒稿通知。
- 修正后上传:通过护栏。
- SOP 引擎:自动调用 DataForensicsSkill。Python 后端发现“表1数据标准差异常”,写入报告。
- ReAct 引擎 (Chat):用户问:“为什么说我数据有问题?”
- Chat Agent 读取 Shared Context。
- 回答:“根据 Benford 定律检测,您数据的首位数字分布偏离自然规律 30%,建议复核原始记录。”
场景 B:英文顶刊(创新与对标为王)
- 上传:跳过政治护栏(配置为通过)。
- SOP 引擎:调用 BenchmarkSkill。ASL 模块检索到 3 篇上个月发表的类似文章,样本量均大于本稿件。
- 报告生成:在“创新性评估”一栏标注:“样本量竞争力不足 (Low Competitiveness)”。
- 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 既能满足中文期刊的“生死红线”,又能满足英文期刊的“学术高度”。