# 智能Prompt生成模块 - 开发计? **版本**: v1.0 **日期**: 2025-11-18 **原则**: 简单、直接、可执行 --- ## 核心目标 **解决问题**: 消除AI与人类对边界情况的理解差? **核心流程**: ``` 用户输入PICOS ?AI理解分析 ?生成Prompt ?用户修改 ?开始筛? ``` --- ## MVP阶段(必做) ### 功能范围 #### 1. 用户输入 ? **前端表单**: ```typescript { pico: { population: string; // 研究人群 intervention: string; // 干预措施 comparison: string; // 对照 outcome: string; // 结局指标 studyDesign: string; // 研究设计 }, inclusionCriteria: string; // 纳入标准 exclusionCriteria: string; // 排除标准 } ``` **实现**: 一个表单页面,7个输入框 --- #### 2. AI理解与分?🆕 **输入**: 用户的PICOS + 纳排标准 **输出**: ```typescript { understanding: { mustInclude: string[]; // 必须纳入的要素(3-5条) mustExclude: string[]; // 必须排除的要素(3-5条) ambiguities: [ // 模糊的边界情况(5-8个) { id: number; question: string; // "如果研究人群是欧美但RCT质量高?" aiSuggestion: 'include' | 'exclude' | 'uncertain'; reason: string; // AI的建议理? } ] } } ``` **API**: ``` POST /api/v1/asl/analyze-picos ``` **实现**: 调用LLM分析用户输入 --- #### 3. 用户确认界面 🆕 **显示**: - ?必须纳入(可勾?取消? - ?必须排除(可勾?取消? - 🤔 边界情况(逐个确认:纳?排除/不确定) **实现**: Modal对话框,分三个区? --- #### 4. 自动生成Prompt 🆕 **输入**: 用户确认后的规则 **输出**: 完整的筛选Prompt **关键**: 将用户确认的边界规则注入到Prompt? ``` ## 特殊规则(基于您的确认) 1. 地域要求:优先亚洲人群,但欧美高质量RCT也可纳入 2. 研究类型:排除综述,?020年后Meta分析可纳? 3. 对照类型:安慰剂对照,或另一种标准药物也可接? ... ``` **API**: ``` POST /api/v1/asl/generate-prompt ``` --- #### 5. Prompt编辑?🆕 **功能**: - 显示生成的Prompt - 支持用户编辑 - 保存并使? **实现**: 简单的Textarea + 保存按钮 --- #### 6. 筛选结果增??**重要** **当前问题**: 只显示最终决策(include/exclude/pending? **改进**: 显示**两个模型的完整理?* ```typescript { literatureId: string; finalDecision: 'include' | 'exclude' | 'pending'; // ?新增:两个模型的详细结果 model1: { modelName: 'DeepSeek-V3'; conclusion: 'exclude'; confidence: 0.92; judgment: { P: 'match', I: 'match', C: 'mismatch', S: 'match' }; reason: '虽然P、I、S维度匹配,但对照组为另一种药物而非安慰?..' // ?关键 }, model2: { modelName: 'Qwen-Max'; conclusion: 'include'; confidence: 0.85; judgment: { P: 'match', I: 'match', C: 'partial', S: 'match' }; reason: '研究人群和干预措施匹配,对照组虽非安慰剂但有对比意义...' // ?关键 }, hasConflict: true; // 两个模型判断不一? conflictFields: ['conclusion', 'C']; } ``` **前端显示**: ```jsx {model1.conclusion} P: {model1.judgment.P}
I: {model1.judgment.I}
C: {model1.judgment.C}
S: {model1.judgment.S}
{/* 同上 */} {hasConflict && ( ⚠️ 两个模型判断不一致,建议人工复核 )} {/* ?人工复核按钮 */} ``` --- ### MVP开发清? **Week 1: 后端** | 任务 | 估时 | 优先?| |------|------|--------| | API: 分析PICOS | 2?| P0 | | API: 生成Prompt | 1?| P0 | | 增强筛选结果结?| 0.5?| P0 | | 测试 | 0.5?| P0 | **Week 2: 前端** | 任务 | 估时 | 优先?| |------|------|--------| | PICOS输入表单 | 0.5?| P0 | | 用户确认界面 | 1.5?| P0 | | Prompt编辑?| 0.5?| P0 | | 结果展示增强 | 1?| P0 | | 测试与调?| 0.5?| P0 | **总计**: 2周(10个工作日? --- ## 2.0阶段(可选功能) ### 功能1: Few-shot自动学习 🔮 **触发场景**: 用户纠正AI判断? **流程**: ``` 1. AI判断: Exclude 2. 用户纠正: 应该是Include 3. 用户说明理由: "虽然是欧美人群,但RCT质量? ? 4. 系统记录案例 ? 5. 下次筛选时,将此案例作为Few-shot示例加入Prompt ``` **数据结构**: ```typescript { caseId: string; literature: { title: string; abstract: string; }, aiDecision: 'exclude'; userDecision: 'include'; userReason: '虽然是欧美人群,但RCT质量?; picoCriteria: {...}; // 当时的PICOS createdAt: Date; } ``` **Prompt增强**: ``` ## 参考案例(Few-shot示例? 以下是您之前纠正的案例,请参考: 案例1: 标题: TICA-CLOP STUDY... AI判断: Exclude(因为北非人群) 您的决策: Include 您的理由: 虽然是北非人群,但RCT质量高,方法有参考价? ?启示: 地域要求可以灵活,如果研究质量高 案例2: ... ``` **实现复杂?*: 中等(需要案例库管理? --- ### 功能2: 测试模式 🧪 **使用场景**: 用户想先测试10篇文献,训练AI理解 **流程**: ``` 1. 用户上传10篇测试文献(5篇纳?+ 5篇排除) ? 2. 用户逐篇标注: Include/Exclude + 理由 ? 3. AI学习用户的判断模? ? 4. 生成定制化Prompt ? 5. 用于正式筛? ``` **界面**: ```jsx 上传10篇测试文献(Excel/JSON?/Upload> {testCases.map(lit => (
{lit.title} 纳入 排除 ` ${index + 1}. ${rule.category}: - 标准规则: ${rule.standardRule} - 您的确认: ${rule.userDecision === 'include' ? '?可以纳入' : '?必须排除'} - 具体情况: ${rule.situation} `).join('\n')} ⚠️ 请严格遵守以上特殊规则,这些是用户明确确认的判断标准? `; // 将边界规则插入到Prompt的合适位? prompt = prompt.replace( '## 筛选任?, boundaryRulesSection + '\n\n## 筛选任? ); return prompt; } ``` --- ### 3. 数据库设? **新表: prompt_configurations** ```sql CREATE TABLE asl_schema.prompt_configurations ( id UUID PRIMARY KEY, user_id VARCHAR(50) NOT NULL, project_id UUID NOT NULL, -- 用户输入 pico_criteria JSONB NOT NULL, inclusion_criteria TEXT NOT NULL, exclusion_criteria TEXT NOT NULL, -- AI分析结果 ai_understanding JSONB NOT NULL, -- mustInclude, mustExclude, ambiguities -- 用户确认 user_confirmed_rules JSONB NOT NULL, -- 用户确认后的边界规则 -- 生成的Prompt generated_prompt TEXT NOT NULL, final_prompt TEXT NOT NULL, -- 用户编辑后的最终版? -- 元数? version VARCHAR(20) DEFAULT 'v1.0', is_template BOOLEAN DEFAULT false, template_name VARCHAR(100), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ``` **新表: few_shot_cases**?.0阶段? ```sql CREATE TABLE asl_schema.few_shot_cases ( id UUID PRIMARY KEY, user_id VARCHAR(50) NOT NULL, project_id UUID NOT NULL, -- 文献信息 literature_id UUID NOT NULL, literature_title TEXT NOT NULL, literature_abstract TEXT NOT NULL, -- AI判断 ai_decision VARCHAR(20) NOT NULL, -- include/exclude ai_reason TEXT NOT NULL, -- 用户纠正 user_decision VARCHAR(20) NOT NULL, user_reason TEXT NOT NULL, -- PICOS上下? pico_criteria JSONB NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ``` --- ## API设计 ### MVP阶段 #### 1. 分析PICOS ``` POST /api/v1/asl/prompt/analyze Request: { "projectId": "uuid", "pico": { "population": "...", "intervention": "...", "comparison": "...", "outcome": "...", "studyDesign": "..." }, "inclusionCriteria": "...", "exclusionCriteria": "..." } Response: { "success": true, "data": { "configId": "uuid", // 保存的配置ID "understanding": { "mustInclude": ["要素1", "要素2"], "mustExclude": ["要素1", "要素2"], "ambiguities": [ { "id": 1, "question": "...", "aiSuggestion": "exclude", "reason": "..." } ] } } } ``` --- #### 2. 确认边界规则 ``` POST /api/v1/asl/prompt/confirm-rules Request: { "configId": "uuid", "confirmedRules": [ { "ambiguityId": 1, "userDecision": "include", // include/exclude/uncertain "userNote": "虽然不是亚洲人群,但RCT质量? // 可? } ] } Response: { "success": true, "data": { "generatedPrompt": "完整的Prompt文本..." } } ``` --- #### 3. 保存最终Prompt ``` POST /api/v1/asl/prompt/save Request: { "configId": "uuid", "finalPrompt": "用户编辑后的Prompt...", "saveAsTemplate": false, "templateName": "" // 如果保存为模? } Response: { "success": true, "data": { "configId": "uuid", "promptVersion": "v1.0.1" } } ``` --- #### 4. 使用自定义Prompt筛? ``` POST /api/v1/asl/screen/literature Request: { "projectId": "uuid", "literatureId": "uuid", "configId": "uuid", // 使用哪个Prompt配置 "models": ["deepseek-chat", "qwen-max"] } Response: { "success": true, "data": { "literatureId": "uuid", "finalDecision": "pending", // ?关键:两个模型的详细结果 "model1": { "modelName": "DeepSeek-V3", "conclusion": "exclude", "confidence": 0.92, "judgment": {...}, "evidence": {...}, "reason": "完整的排除理?.." // ? }, "model2": { "modelName": "Qwen-Max", "conclusion": "include", "confidence": 0.85, "judgment": {...}, "evidence": {...}, "reason": "完整的纳入理?.." // ? }, "hasConflict": true, "conflictFields": ["conclusion"] } } ``` --- ### 2.0阶段(可选) #### 5. 提交Few-shot案例 ``` POST /api/v1/asl/prompt/add-few-shot Request: { "configId": "uuid", "literatureId": "uuid", "aiDecision": "exclude", "aiReason": "...", "userDecision": "include", "userReason": "虽然是欧美人群,?.." } Response: { "success": true, "data": { "caseId": "uuid", "totalCases": 3 // 已有多少个Few-shot案例 } } ``` --- #### 6. 基于Few-shot重新生成Prompt ``` POST /api/v1/asl/prompt/regenerate-with-few-shot Request: { "configId": "uuid" } Response: { "success": true, "data": { "updatedPrompt": "包含Few-shot示例的新Prompt...", "fewShotCasesUsed": 3 } } ``` --- ## 测试计划 ### MVP测试 **测试数据**: 卒中研究(已?篇) **测试场景**: 1. **场景1: 正常流程** - 输入PICOS ?AI分析 ?用户确认 ?生成Prompt ?筛? - 验证:两个模型的理由是否完整显示 2. **场景2: 边界情况确认** - 用户确认"欧美RCT可纳? ?验证Prompt中是否包含此规则 - 验证:实际筛选时是否遵守此规? 3. **场景3: 用户编辑Prompt** - 用户修改生成的Prompt ?验证修改是否生效 4. **场景4: 模型冲突** - 验证:两个模型判断不一致时,理由是否清晰展? **测试指标**: - Prompt生成准确? >90% - 用户满意? >80% - 理由展示完整? 100% --- ### 2.0测试 **测试场景**: 1. **Few-shot学习** - 用户纠正3个案??验证Prompt中是否包含这些案? - 验证:新的筛选是否改? 2. **测试模式** - 用户标注10??AI分析模式 ?生成Prompt - 验证:生成的Prompt是否符合用户偏好 --- ## 成功标准 ### MVP阶段 | 指标 | 目标 | |------|------| | Prompt生成准确?| >90% | | 用户完成配置时间 | <5分钟 | | 理由展示完整?| 100% | | 模型冲突识别?| 100% | | 用户满意?| >80% | ### 2.0阶段 | 指标 | 目标 | |------|------| | Few-shot改进准确?| +15% | | 测试模式匹配?| >85% | | Prompt模板复用?| >60% | --- ## 风险与应? ### 风险1: LLM生成的边界问题质量不稳定 **应对**: - 使用Few-shot Prompt - 人工审核常见边界情况 - 提供默认边界问题? ### 风险2: 用户不愿意花时间确认 **应对**: - 只显?个高优先级问? - 其他使用AI默认建议 - 提供"快速模?(跳过确认) ### 风险3: 两个模型理由过长,难以对? **应对**: - 提取理由关键句(?00字) - 提供展开/收起按钮 - 高亮冲突? --- ## 总结 ### MVP核心(必做) 1. ?PICOS输入表单 2. ?AI分析与边界问题生? 3. ?用户确认界面 4. ?自动生成Prompt 5. ?Prompt编辑? 6. ?**显示两个模型的完整理?* ? **开发时?*: 2? --- ### 2.0扩展(可选) 1. 🔮 Few-shot自动学习 2. 🧪 测试模式 3. 📚 Prompt模板? **开发时?*: 2? --- **原则**: MVP先做到简单可用,2.0再做智能? **下一?*: 开始MVP阶段开? --- **文档版本**: v1.0 **作?*: AI Assistant **审核**: [待用户确认] **日期**: 2025-11-18