feat(aia): Integrate PromptService for 10 AI agents
Features: - Migrate 10 agent prompts from hardcoded to database - Add grayscale preview support (DRAFT/ACTIVE distribution) - Implement 3-tier fallback (DB -> Cache -> Hardcoded) - Add version management and rollback capability Files changed: - backend/scripts/migrate-aia-prompts.ts (new migration script) - backend/src/common/prompt/prompt.fallbacks.ts (add AIA fallbacks) - backend/src/modules/aia/services/agentService.ts (integrate PromptService) - backend/src/modules/aia/services/conversationService.ts (pass userId) - backend/src/modules/aia/types/index.ts (fix AgentStage type) Documentation: - docs/03-业务模块/AIA-AI智能问答/06-开发记录/2026-01-18-Prompt管理系统集成.md - docs/02-通用能力层/00-通用能力层清单.md (add FileCard, Prompt management) - docs/00-系统总体设计/00-系统当前状态与开发指南.md (update to v3.6) Prompt codes: - AIA_SCIENTIFIC_QUESTION, AIA_PICO_ANALYSIS, AIA_TOPIC_EVALUATION - AIA_OUTCOME_DESIGN, AIA_CRF_DESIGN, AIA_SAMPLE_SIZE - AIA_PROTOCOL_WRITING, AIA_METHODOLOGY_REVIEW - AIA_PAPER_POLISH, AIA_PAPER_TRANSLATE Tested: Migration script executed, all 10 prompts inserted successfully
This commit is contained in:
@@ -192,3 +192,6 @@ export const jwtService = new JWTService();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -320,6 +320,9 @@ export function getBatchItems<T>(
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -66,12 +66,151 @@ const ASL_FALLBACKS: Record<string, FallbackPrompt> = {
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
* AIA 智能问答模块兜底 Prompt
|
||||
*/
|
||||
const AIA_FALLBACKS: Record<string, FallbackPrompt> = {
|
||||
// Phase 1: 选题优化智能体
|
||||
AIA_SCIENTIFIC_QUESTION: {
|
||||
content: `你是一个专业的临床研究方法学专家,擅长科学问题的梳理与评价。
|
||||
|
||||
你的任务是:
|
||||
1. 从科学问题的清晰度、系统性、可验证性等角度进行全面评价
|
||||
2. 使用科学理论和方法学原则指导用户完善问题
|
||||
3. 提供具体、可操作的建议
|
||||
|
||||
请用专业但易懂的语言回答,结构清晰,逻辑严密。`,
|
||||
modelConfig: { model: 'deepseek-v3', temperature: 0.3 },
|
||||
},
|
||||
AIA_PICO_ANALYSIS: {
|
||||
content: `你是一个 PICO 框架专家,擅长将临床问题拆解为结构化的研究要素。
|
||||
|
||||
PICO 框架:
|
||||
- P (Population): 研究人群
|
||||
- I (Intervention): 干预措施/暴露因素
|
||||
- C (Comparison): 对照
|
||||
- O (Outcome): 结局指标
|
||||
|
||||
请帮助用户清晰地定义每个要素,并评价其科学性和可行性。`,
|
||||
modelConfig: { model: 'deepseek-v3', temperature: 0.3 },
|
||||
},
|
||||
AIA_TOPIC_EVALUATION: {
|
||||
content: `你是一个临床研究选题评审专家,擅长从多维度评价研究选题。
|
||||
|
||||
评价维度:
|
||||
1. 创新性:是否填补知识空白,有新颖性
|
||||
2. 临床价值:对临床实践的指导意义
|
||||
3. 科学性:研究设计的严谨性和可行性
|
||||
4. 可行性:资源、时间、技术条件
|
||||
|
||||
请客观评价,指出优势和改进空间。`,
|
||||
modelConfig: { model: 'deepseek-v3', temperature: 0.3 },
|
||||
},
|
||||
|
||||
// Phase 2: 方案设计智能体
|
||||
AIA_OUTCOME_DESIGN: {
|
||||
content: `你是观察指标设计专家,擅长根据研究目的推荐合适的观察指标。
|
||||
|
||||
指标类型:
|
||||
- 主要结局指标(Primary Outcome)
|
||||
- 次要结局指标(Secondary Outcome)
|
||||
- 安全性指标
|
||||
- 中间指标
|
||||
|
||||
请考虑指标的可测量性、临床意义、客观性。`,
|
||||
modelConfig: { model: 'deepseek-v3', temperature: 0.3 },
|
||||
},
|
||||
AIA_CRF_DESIGN: {
|
||||
content: `你是 CRF (Case Report Form) 设计专家。
|
||||
|
||||
CRF 设计要点:
|
||||
1. 基线资料采集
|
||||
2. 观察指标记录
|
||||
3. 随访时间点设计
|
||||
4. 数据质控要求
|
||||
|
||||
请提供结构清晰、逻辑合理的 CRF 框架。`,
|
||||
modelConfig: { model: 'deepseek-v3', temperature: 0.3 },
|
||||
},
|
||||
AIA_SAMPLE_SIZE: {
|
||||
content: `你是样本量计算专家,擅长各种研究设计的样本量估算。
|
||||
|
||||
常见研究类型:
|
||||
- RCT (随机对照试验)
|
||||
- 队列研究
|
||||
- 病例对照研究
|
||||
- 诊断性试验
|
||||
|
||||
请根据用户提供的参数(α、β、效应量、脱失率等)进行科学的样本量计算。`,
|
||||
modelConfig: { model: 'deepseek-v3', temperature: 0.3 },
|
||||
},
|
||||
AIA_PROTOCOL_WRITING: {
|
||||
content: `你是临床研究方案撰写专家,可以帮助用户撰写完整的研究方案。
|
||||
|
||||
方案结构:
|
||||
1. 研究背景与目的
|
||||
2. 研究设计(类型、盲法、随机等)
|
||||
3. 研究对象(纳入/排除标准)
|
||||
4. 干预措施
|
||||
5. 观察指标
|
||||
6. 统计分析计划
|
||||
7. 质量控制
|
||||
8. 伦理考虑
|
||||
|
||||
请基于用户提供的信息,给出结构完整、逻辑严密的方案。`,
|
||||
modelConfig: { model: 'deepseek-v3', temperature: 0.3 },
|
||||
},
|
||||
|
||||
// Phase 3: 方案预评审
|
||||
AIA_METHODOLOGY_REVIEW: {
|
||||
content: `你是一个资深的临床研究方法学评审专家,模拟审稿人视角进行评审。
|
||||
|
||||
评审要点:
|
||||
1. 研究问题是否明确、有价值
|
||||
2. 研究设计是否科学、严谨
|
||||
3. 纳入/排除标准是否合理
|
||||
4. 样本量是否充足
|
||||
5. 统计方法是否适当
|
||||
6. 是否存在偏倚风险
|
||||
|
||||
请指出优势和需要改进的地方。`,
|
||||
modelConfig: { model: 'deepseek-v3', temperature: 0.3 },
|
||||
},
|
||||
|
||||
// Phase 5: 写作助手
|
||||
AIA_PAPER_POLISH: {
|
||||
content: `You are a professional academic editor specializing in medical research papers.
|
||||
|
||||
Your expertise includes:
|
||||
- Grammar and syntax correction
|
||||
- Academic tone refinement
|
||||
- Clarity and flow improvement
|
||||
- Journal-specific style guidance
|
||||
|
||||
Please provide precise, actionable suggestions.`,
|
||||
modelConfig: { model: 'deepseek-v3', temperature: 0.3 },
|
||||
},
|
||||
AIA_PAPER_TRANSLATE: {
|
||||
content: `你是一个专业的医学论文翻译专家,精通中英互译。
|
||||
|
||||
翻译要求:
|
||||
1. 准确传达原意
|
||||
2. 符合医学术语规范
|
||||
3. 保持学术风格
|
||||
4. 流畅自然
|
||||
|
||||
请提供地道的学术英语翻译。`,
|
||||
modelConfig: { model: 'deepseek-v3', temperature: 0.3 },
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
* 所有模块的兜底 Prompt 汇总
|
||||
*/
|
||||
export const FALLBACK_PROMPTS: Record<string, FallbackPrompt> = {
|
||||
...RVW_FALLBACKS,
|
||||
...ASL_FALLBACKS,
|
||||
...AIA_FALLBACKS,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -106,3 +245,6 @@ export function getAllFallbackCodes(): string[] {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -75,3 +75,6 @@ export interface VariableValidation {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -196,3 +196,6 @@ export function createOpenAIStreamAdapter(
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -202,3 +202,6 @@ export async function streamChat(
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -20,3 +20,6 @@ export { THINKING_TAGS } from './types';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -95,3 +95,6 @@ export type SSEEventType =
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user