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
306 lines
9.5 KiB
Markdown
306 lines
9.5 KiB
Markdown
# ASL Prompt质量分析报告 v1.0.0
|
||
|
||
**测试时间**: 2025-11-18
|
||
**测试版本**: v1.0.0-MVP
|
||
**测试模型**: DeepSeek-V3 + Qwen3-72B
|
||
**测试样本数**: 10篇
|
||
|
||
---
|
||
|
||
## 📊 测试结果概览
|
||
|
||
| 质量指标 | 实际值 | 目标值 | 状态 | 差距 |
|
||
|---------|--------|--------|------|------|
|
||
| **准确率** | 60.0% | ≥85% | ❌ | -25% |
|
||
| **一致率** | 70.0% | ≥80% | ❌ | -10% |
|
||
| **平均置信度** | 0.95 | - | ✅ | - |
|
||
| **需人工复核率** | 30.0% | ≤20% | ❌ | +10% |
|
||
|
||
### 混淆矩阵
|
||
|
||
```
|
||
预测纳入 预测排除 不确定
|
||
实际纳入 2 1 0
|
||
实际排除 0 4 0
|
||
不确定 0 0 0
|
||
```
|
||
|
||
- **真阳性(TP)**: 2篇 - 正确识别应纳入的文献
|
||
- **假阴性(FN)**: 1篇 - 误将应纳入的文献判为排除
|
||
- **真阴性(TN)**: 4篇 - 正确识别应排除的文献
|
||
- **假阳性(FP)**: 0篇 - 无误将应排除的判为纳入
|
||
|
||
---
|
||
|
||
## 🔍 错误案例分析
|
||
|
||
### ❌ 错误1: test-001 (假阴性)
|
||
|
||
**标题**: Efficacy and Safety of Empagliflozin in Patients with Type 2 Diabetes
|
||
**期望**: include
|
||
**实际**: exclude
|
||
**判断**: 两个模型一致判断为exclude
|
||
|
||
**原因分析**:
|
||
- 文献虽然是RCT,PICO的P、I、C、S都完全匹配
|
||
- 但主要结局是HbA1c、体重、血压等代谢指标
|
||
- **未报告心血管结局数据**(MACE、心衰住院、心血管死亡)
|
||
- 两个模型都敏锐地识别出缺乏结局指标O
|
||
|
||
**结论**:
|
||
这实际上可能是**模型正确、期望值有误**的情况。根据PICO标准,如果文献不报告心血管结局,应该排除。建议**修正测试样本的expectedDecision为exclude**。
|
||
|
||
---
|
||
|
||
### ❌ 错误2: test-007 (PICO维度冲突)
|
||
|
||
**标题**: Pharmacokinetics and Pharmacodynamics of Empagliflozin in Healthy Volunteers
|
||
**期望**: exclude
|
||
**实际**: pending (冲突)
|
||
**两模型结论**: 都是exclude
|
||
|
||
**PICO判断对比**:
|
||
| 维度 | DeepSeek | Qwen | 冲突? |
|
||
|------|----------|------|-------|
|
||
| P | mismatch | mismatch | ✅ 一致 |
|
||
| I | **partial** | **match** | ❌ 冲突 |
|
||
| C | match | match | ✅ 一致 |
|
||
| S | **partial** | **match** | ❌ 冲突 |
|
||
| 结论 | exclude | exclude | ✅ 一致 |
|
||
|
||
**问题**: 虽然最终结论一致,但I和S维度判断不同,导致系统判定为冲突
|
||
|
||
**原因分析**:
|
||
- **I维度**: DeepSeek认为健康志愿者研究的SGLT2抑制剂只是partial,因为不是治疗性应用;Qwen认为只要是SGLT2抑制剂就match
|
||
- **S维度**: DeepSeek认为Phase 1研究只是partial RCT;Qwen认为有随机、安慰剂对照就是match
|
||
|
||
**优化方向**: 需要明确Prompt中关于"研究设计"和"干预措施"的判断标准
|
||
|
||
---
|
||
|
||
### ❌ 错误3: test-008 (C维度冲突)
|
||
|
||
**标题**: Comparative Effectiveness of SGLT2 Inhibitors versus DPP-4 Inhibitors
|
||
**期望**: exclude
|
||
**实际**: pending (冲突)
|
||
**两模型结论**: 都是exclude
|
||
|
||
**PICO判断对比**:
|
||
| 维度 | DeepSeek | Qwen | 冲突? |
|
||
|------|----------|------|-------|
|
||
| P | match | match | ✅ 一致 |
|
||
| I | match | match | ✅ 一致 |
|
||
| C | **partial** | **mismatch** | ❌ 冲突 |
|
||
| S | mismatch | mismatch | ✅ 一致 |
|
||
| 结论 | exclude | exclude | ✅ 一致 |
|
||
|
||
**问题**: C维度判断不同(DPP-4抑制剂是partial还是mismatch)
|
||
|
||
**原因分析**:
|
||
- DeepSeek认为DPP-4抑制剂算partial,因为它是降糖疗法的一种
|
||
- Qwen认为必须是安慰剂或常规疗法,DPP-4不符合
|
||
|
||
**优化方向**: 需要明确"常规降糖疗法"的定义范围
|
||
|
||
---
|
||
|
||
### ❌ 错误4: test-010 (I维度重大冲突)
|
||
|
||
**标题**: Sotagliflozin (双重SGLT1/SGLT2抑制剂)
|
||
**期望**: uncertain
|
||
**实际**: pending (冲突)
|
||
**模型结论**: DeepSeek=exclude, Qwen=include
|
||
|
||
**PICO判断对比**:
|
||
| 维度 | DeepSeek | Qwen | 冲突? |
|
||
|------|----------|------|-------|
|
||
| P | match | match | ✅ 一致 |
|
||
| I | **mismatch** | **match** | ❌ 严重冲突 |
|
||
| C | match | match | ✅ 一致 |
|
||
| S | match | match | ✅ 一致 |
|
||
| 结论 | **exclude** | **include** | ❌ 严重冲突 |
|
||
|
||
**问题**: 这是最严重的冲突案例,两个模型对conclusion完全相反
|
||
|
||
**原因分析**:
|
||
- DeepSeek严格解释:Sotagliflozin是双重抑制剂,与纯SGLT2抑制剂不同,判为mismatch → exclude
|
||
- Qwen宽松解释:Sotagliflozin包含SGLT2抑制作用,判为match → include
|
||
- 实际上这种边界情况应该是**uncertain**,需要人工判断
|
||
|
||
**优化方向**:
|
||
1. 在Prompt中明确"SGLT2抑制剂"是否包括双重抑制剂
|
||
2. 对于边界情况,引导模型倾向于uncertain而非直接include/exclude
|
||
|
||
---
|
||
|
||
## 💡 核心问题总结
|
||
|
||
### 1. PICO维度判断标准模糊
|
||
|
||
**问题**: match / partial / mismatch的界限不够清晰
|
||
|
||
**影响**:
|
||
- 导致两个模型对同一维度判断不同
|
||
- 即使最终结论一致,也会被系统标记为冲突
|
||
|
||
**解决方案**:
|
||
- 在Prompt中增加具体的判断标准和示例
|
||
- 使用Few-shot示例展示边界情况的判断逻辑
|
||
|
||
### 2. 边界情况处理不一致
|
||
|
||
**典型案例**:
|
||
- 健康志愿者 vs 患者
|
||
- 双重抑制剂 vs 单一抑制剂
|
||
- DPP-4 vs 安慰剂/常规疗法
|
||
|
||
**问题**:
|
||
- 两个模型对边界情况的判断策略不同
|
||
- DeepSeek倾向于保守(更多mismatch)
|
||
- Qwen倾向于宽松(更多match)
|
||
|
||
**解决方案**:
|
||
- 在Prompt中明确边界情况的处理原则
|
||
- 引导模型在不确定时使用"uncertain"
|
||
|
||
### 3. 结局指标(O)未纳入judgment
|
||
|
||
**问题**:
|
||
- 当前Prompt只要求判断P、I、C、S四个维度
|
||
- 但结局指标(O)也是重要的纳排标准
|
||
- test-001就是因为缺乏心血管结局而被正确排除
|
||
|
||
**解决方案**:
|
||
- 考虑在judgment中增加O维度
|
||
- 或在reason中明确要求说明结局指标是否符合
|
||
|
||
### 4. 冲突检测过于严格
|
||
|
||
**问题**:
|
||
- 目前只要PICO任一维度不同就判定为冲突
|
||
- 即使conclusion一致(如test-007、test-008)
|
||
|
||
**影响**:
|
||
- 提高了人工复核率(30% > 20%)
|
||
- 降低了系统的自动化程度
|
||
|
||
**解决方案**:
|
||
- 优化冲突检测逻辑:只有conclusion不同才算严重冲突
|
||
- PICO维度的小差异可以降级为"需注意"而非"冲突"
|
||
|
||
---
|
||
|
||
## 🎯 Prompt优化建议
|
||
|
||
### 优先级1: 增加Few-shot示例
|
||
|
||
在Prompt中增加3-5个标准案例,展示:
|
||
1. 明确的纳入案例(RCT + 心血管结局)
|
||
2. 明确的排除案例(综述、动物实验、病例报告)
|
||
3. 边界情况1(双重抑制剂 → uncertain)
|
||
4. 边界情况2(健康志愿者 → exclude)
|
||
5. 边界情况3(缺乏结局指标 → exclude)
|
||
|
||
### 优先级2: 明确PICO判断标准
|
||
|
||
为每个维度提供具体的判断规则:
|
||
|
||
**P (研究人群)**:
|
||
- match: 成人2型糖尿病患者
|
||
- partial: 包含2型糖尿病但混合其他人群(如1型糖尿病)
|
||
- mismatch: 健康志愿者、动物模型、1型糖尿病
|
||
|
||
**I (干预措施)**:
|
||
- match: empagliflozin, dapagliflozin, canagliflozin, ertugliflozin等单一SGLT2抑制剂
|
||
- partial: 联合用药但包含SGLT2抑制剂
|
||
- mismatch: 双重SGLT1/SGLT2抑制剂(如sotagliflozin)、其他药物
|
||
|
||
**C (对照)**:
|
||
- match: 安慰剂、常规降糖疗法(胰岛素、二甲双胍、磺脲类)
|
||
- partial: 包含安慰剂+标准治疗
|
||
- mismatch: 活性对照(DPP-4抑制剂、GLP-1受体激动剂等)
|
||
|
||
**S (研究设计)**:
|
||
- match: 随机对照试验(RCT)、双盲、安慰剂对照
|
||
- partial: 准随机试验
|
||
- mismatch: 观察性研究、队列研究、病例对照、综述、动物实验、病例报告
|
||
|
||
### 优先级3: 强化uncertain的使用
|
||
|
||
在Prompt中明确指导:
|
||
- 当信息不足以做出判断时,使用uncertain
|
||
- 当遇到边界情况(如双重抑制剂)时,倾向于uncertain
|
||
- 当PICO维度有2个及以上partial时,考虑uncertain
|
||
|
||
### 优先级4: 增加O维度检查
|
||
|
||
在Prompt中增加要求:
|
||
- 检查是否报告了心血管结局数据
|
||
- 如果缺乏结局数据,即使PICO其他维度匹配也应排除
|
||
|
||
---
|
||
|
||
## 📈 预期改进效果
|
||
|
||
实施上述优化后,预期指标改善:
|
||
|
||
| 指标 | 当前 | 预期 | 改善幅度 |
|
||
|------|------|------|----------|
|
||
| 准确率 | 60% | **85-90%** | +25-30% |
|
||
| 一致率 | 70% | **85-90%** | +15-20% |
|
||
| 需人工复核率 | 30% | **15-20%** | -10-15% |
|
||
|
||
**改善策略**:
|
||
1. Few-shot示例 → +15%准确率 +10%一致率
|
||
2. 明确判断标准 → +5%准确率 +10%一致率
|
||
3. 优化冲突检测 → -10%复核率
|
||
4. 增加O维度检查 → +5%准确率
|
||
|
||
---
|
||
|
||
## 📝 下一步行动
|
||
|
||
### 立即行动 (本周)
|
||
- [ ] 创建v1.0.1 Prompt版本,增加Few-shot示例
|
||
- [ ] 修正test-001的期望值(include → exclude)
|
||
- [ ] 优化冲突检测逻辑(只检测conclusion冲突)
|
||
|
||
### 短期行动 (下周)
|
||
- [ ] 增加更多测试样本(目标20-30篇)
|
||
- [ ] 测试不同温度参数的影响
|
||
- [ ] 对比GPT-5和Claude-4.5的表现
|
||
|
||
### 中期行动 (V1.0阶段)
|
||
- [ ] 实施智能质量控制策略
|
||
- [ ] 建立Few-shot示例库
|
||
- [ ] 实现自动质量审计
|
||
|
||
---
|
||
|
||
## ✅ 测试成功案例
|
||
|
||
值得肯定的是,以下6篇文献都被正确判断:
|
||
|
||
1. ✅ test-002: RCT + 心血管结局 → 正确纳入
|
||
2. ✅ test-003: 系统综述 → 正确排除
|
||
3. ✅ test-004: 动物实验 → 正确排除
|
||
4. ✅ test-005: RCT + 心血管结局(CREDENCE) → 正确纳入
|
||
5. ✅ test-006: 回顾性队列 → 正确排除
|
||
6. ✅ test-009: 病例报告 → 正确排除
|
||
|
||
**成功因素**:
|
||
- 这些案例都是典型的纳入/排除场景
|
||
- PICO维度边界清晰
|
||
- 两个模型判断完全一致
|
||
|
||
这表明**Prompt的基本框架是正确的**,只需要针对边界情况进行优化即可。
|
||
|
||
---
|
||
|
||
**报告生成时间**: 2025-11-18
|
||
**报告版本**: v1.0.0
|
||
**下次评估计划**: v1.0.1 Prompt优化后重新测试
|
||
|
||
|
||
|