Features: - feat: Excel template generation and download (with examples) - feat: Excel file parsing in memory (cloud-native, no disk write) - feat: Field validation (title + abstract required) - feat: Smart deduplication (DOI priority + Title fallback) - feat: Literature preview table with statistics - feat: Complete submission flow (create project + import literatures) Components: - feat: Create excelUtils.ts with full Excel processing toolkit - feat: Enhance TitleScreeningSettings page with upload/preview/submit - feat: Update API interface signatures and export unified aslApi object Dependencies: - chore: Add xlsx library for Excel file processing Ref: Week 2 Frontend Development - Day 2 Scope: ASL Module MVP - Title Abstract Screening Cloud-Native: Memory parsing, no file persistence
8.3 KiB
8.3 KiB
卒中数据泛化能力测试报告
测试日期: 2025-11-18
测试目的: 验证系统对不同研究主题的泛化能力
测试样本: 用户真实数据 - 卒中二级预防研究(5篇文献)
📊 测试结果
| 指标 | 结果 | 状态 | 说明 |
|---|---|---|---|
| 准确率 | 60% (3/5) | ⚠️ 中等 | 距离目标85%还有差距 |
| 双模型一致率 | 100% (5/5) | ✅ 优秀 | 超过目标80% |
| 排除判断准确率 | 100% (3/3) | ✅ 完美 | 应排除的文献全部正确 |
| 纳入判断准确率 | 0% (0/2) | ❌ 失败 | 应纳入的文献全部误判 |
🔬 测试场景对比
之前测试(SGLT2抑制剂)
PICOS标准:
- P: 2型糖尿病成人患者
- I: SGLT2抑制剂(empagliflozin、dapagliflozin等)
- C: 安慰剂或常规疗法
- O: 心血管结局(MACE、心衰住院、心血管死亡)
- S: RCT
结果: 准确率60%,一致率70%
本次测试(卒中二级预防)
PICOS标准:
- P: 非心源性缺血性卒中患者、亚洲人群
- I: 抗血小板/抗凝/溶栓药物(阿司匹林、氯吡格雷等)
- C: 安慰剂或常规治疗
- O: 卒中进展、复发、残疾、死亡等
- S: SR、RCT、RWE、OBS
结果: 准确率60%,一致率100%
💡 核心发现
发现1: 系统确实具有泛化能力 ✅
证据:
- 从糖尿病 → 卒中,PICOS完全不同,系统能理解
- 对应该排除的文献判断100%准确
- 两个模型判断完全一致(100%)
结论: 基本假设成立 - LLM可以理解不同研究主题的PICOS标准
发现2: 系统过于保守 ⚠️
误判案例1:
文献: 替格瑞洛 vs 氯吡格雷(TICA-CLOP研究)
人类: Included
AI: Excluded
AI理由:
- "研究对象为北非人群,而非亚洲人群"
- "急性期治疗(24小时内),非二级预防"
分析: AI严格执行了"亚洲人群"要求,但人类专家可能认为:
- 研究结果可以参考(即使不是亚洲人群)
- 或者用户实际想要的是"非心源性卒中",地域不重要
误判案例2:
文献: 双抗 vs 单抗Meta分析
人类: Included
AI: Excluded
AI理由:
- "研究时间截止2019年,不符合2020年后要求"
- "对照组是单抗,不是安慰剂"
- "急性期<72小时"
分析: AI严格执行了纳入标准,但人类可能认为:
- Meta分析本身发表在2020年后即可
- 单抗治疗也算"常规治疗"
- 72小时内开始的治疗也算"二级预防"
发现3: 判断标准存在歧义 🎯
关键问题:
| 标准 | AI理解 | 人类可能理解 | 歧义来源 |
|---|---|---|---|
| "亚洲人群" | 必须明确是亚洲 | 全球研究也可参考 | 地域限制的严格程度 |
| "二级预防" | 排除急性期治疗 | 急性期后持续用药算 | 时间窗口的定义 |
| "安慰剂对照" | 只能是安慰剂 | 另一种药物也算 | 对照类型的范围 |
| "2020年后" | 研究时间在2020年后 | 发表时间在2020年后 | 时间标准的参照点 |
🎯 根本原因分析
问题不在Prompt,而在需求不明确
示例: "亚洲人群"这个要求
方案A(AI当前理解):
if 文献明确说明是"北非人群":
→ 不是亚洲人群 → 排除
方案B(人类可能期望):
if 文献包含亚洲亚组数据:
→ 可以纳入
elif 文献虽然不是亚洲,但结果具有参考价值:
→ 也可以纳入
两种理解都合理,但需要用户明确!
💡 解决方案
方案1: 优化Prompt(治标不治本)
可以做的:
- 让Prompt更宽松:"亚洲人群"改为"优先亚洲人群"
- 增加灰度:"急性期治疗如果持续用于预防也算"
问题:
- 只对当前测试有效
- 下一个用户可能期望相反(更严格)
- 无法解决根本问题
方案2: 用户自定义边界(治本) ⭐ 推荐
您之前提出的方案:
1. 用户输入PICOS + 纳排标准
2. 系统生成20种边界情况
3. 用户确认每种情况是纳入/排除/不确定
4. 系统基于用户确认生成Prompt
为什么这是正确方案:
- ✅ 让用户明确定义"什么算匹配"
- ✅ 避免AI过度猜测
- ✅ 适用于任何研究主题
- ✅ 可以持续学习优化
示例边界情况表:
| # | 情况 | AI建议 | 用户确认 |
|---|---|---|---|
| 1 | 非心源性卒中 + 亚洲人群 + 抗血小板 + RCT | 纳入 | ✅ 纳入 |
| 2 | 非心源性卒中 + 北非人群 + 抗血小板 + RCT | ❌ 排除 | ✅ 纳入(用户纠正) |
| 3 | 非心源性卒中 + 亚洲人群 + 急性期24h + RCT | ❌ 排除 | ✅ 纳入(用户纠正) |
| 4 | 非心源性卒中 + 亚洲人群 + 对照为另一种药 | ❌ 排除 | ✅ 纳入(用户纠正) |
📈 修复Bug后的改进
Bug1: 冲突检测逻辑 ✅ 已修复
之前:
// PICO任一维度不同就标记冲突
if (P不同 || I不同 || C不同 || S不同 || conclusion不同) {
hasConflict = true;
}
之后:
// 只看conclusion是否一致
hasConflict = (conclusion1 !== conclusion2);
效果: 一致率从70% → 100%
Bug2: 决策比较逻辑 ✅ 已修复
之前:
"Excluded" === "Exclude" // false(大小写和后缀不匹配)
之后:
normalize("Excluded") === normalize("Exclude") // true
效果: 准确率从0% → 60%(真实准确率)
🎯 结论与建议
✅ 验证成功的假设
- 泛化能力存在: LLM可以理解不同研究主题的PICOS
- 双模型策略有效: 两个模型完全一致
- 基本Prompt框架可用: 对明确的排除情况判断准确
⚠️ 需要解决的问题
- 边界情况定义: 不同用户对"匹配"的理解不同
- 过度保守: 当前Prompt倾向于排除而非纳入
- 无法猜测用户意图: AI不知道用户真正想要什么
📝 下一步行动(按优先级)
立即行动(本周)
选择A: 快速MVP(1-2天) ⚠️ 不推荐
- 放宽当前Prompt的判断标准
- 手动调整"亚洲人群"、"二级预防"等要求
- 问题: 只对当前场景有效,不可扩展
选择B: 基础PICOS配置(2-3天) ⭐ 推荐
- 前端:PICOS配置表单(纯文本输入)
- 后端:动态Prompt生成(变量替换)
- 测试:用更多真实数据验证
- 优点: 通用,可扩展
中期行动(Week 2-3)
实现智能边界情况确认:
- 用户输入PICOS → LLM分析生成20种边界情况
- 用户确认每种情况的处理方式
- 系统基于确认生成定制化Prompt
- 从用户纠正中学习(Few-shot)
📊 测试数据统计
| 项目 | 数值 |
|---|---|
| 测试样本数 | 5篇(2 Included + 3 Excluded) |
| 正确判断 | 3篇(全部是Excluded) |
| 错误判断 | 2篇(全部是Included误判为Excluded) |
| 假阴性率 | 100% (2/2) |
| 假阳性率 | 0% (0/3) |
| 平均处理时间 | 16.3秒/篇 |
| Token消耗 | ~3000 tokens/篇(双模型) |
💬 用户反馈(需确认)
需要向用户确认的问题:
-
"亚洲人群"的定义:
- 必须是明确的亚洲人群?
- 还是全球研究也可以参考?
-
"二级预防"的时间窗口:
- 严格排除急性期治疗?
- 还是急性期后持续用药也算?
-
"安慰剂对照"的范围:
- 只能是安慰剂?
- 还是另一种药物对照也可以?
-
"2020年后"的标准:
- 指研究开展时间?
- 还是文献发表时间?
这些问题的答案,将直接影响系统的判断标准!
🚀 下一步建议
我的推荐方案
阶段1: 本周完成 (2-3天)
1. 开发PICOS配置界面(前端表单)
2. 实现动态Prompt生成(后端)
3. 用10-20篇真实数据测试
4. 验证准确率能否达到75%+
阶段2: Week 2 (如果阶段1成功)
1. 实现智能边界情况生成
2. 用户交互确认机制
3. 从纠正中学习(Few-shot)
4. 目标准确率 85%+
阶段3: V1.0 (如果阶段2成功)
1. 完整的交互式配置
2. 案例库管理
3. 持续学习优化
报告人: AI Assistant
审核人: [待用户确认]
日期: 2025-11-18
版本: v1.0
附录:详细测试日志
详见: backend/scripts/test-results/