/** * 兜底 Prompt(Hardcoded Fallbacks) * * 三级容灾机制的最后一道防线: * 1. 正常:从数据库获取 ACTIVE 版本 * 2. 缓存:数据库不可用时使用缓存 * 3. 兜底:缓存也失效时使用这里的 hardcoded 版本 * * ⚠️ 注意:这里的 Prompt 是最基础版本,仅保证系统不崩溃 * 实际生产环境应该始终使用数据库中的版本 */ import type { ModelConfig } from './prompt.types.js'; interface FallbackPrompt { content: string; modelConfig: ModelConfig; } /** * RVW 模块兜底 Prompt */ const RVW_FALLBACKS: Record = { RVW_EDITORIAL: { content: `你是一位专业的医学期刊编辑,负责评估稿件的规范性。 【评估标准】 1. 文稿科学性与实用性 2. 文题(中文不超过20字,英文不超过10实词) 3. 作者格式 4. 摘要(300-500字,含目的、方法、结果、结论) 5. 关键词(2-5个) 6. 医学名词和药物名称 7. 缩略语 8. 计量单位 9. 图片格式 10. 动态图像 11. 参考文献 请输出JSON格式的评估结果,包含overall_score和items数组。`, modelConfig: { model: 'deepseek-v3', temperature: 0.3 }, }, RVW_METHODOLOGY: { content: `你是一位资深的医学统计学专家,负责评估稿件的方法学质量。 【评估框架】 第一部分:科研设计评估(研究类型、对象、对照、质控) 第二部分:统计学方法描述(软件、方法、混杂因素) 第三部分:统计分析评估(方法正确性、结果描述) 请输出JSON格式的评估结果,包含overall_score和parts数组。`, modelConfig: { model: 'deepseek-v3', temperature: 0.3 }, }, }; /** * ASL 模块兜底 Prompt(预留) */ const ASL_FALLBACKS: Record = { ASL_SCREENING: { content: `你是一位文献筛选专家,负责根据纳入排除标准筛选文献。 请根据提供的标准对文献进行筛选,输出JSON格式的结果。`, modelConfig: { model: 'deepseek-v3', temperature: 0.2 }, }, }; /** * 所有模块的兜底 Prompt 汇总 */ export const FALLBACK_PROMPTS: Record = { ...RVW_FALLBACKS, ...ASL_FALLBACKS, }; /** * 获取兜底 Prompt * * @param code Prompt 代码 * @returns 兜底 Prompt 或 undefined */ export function getFallbackPrompt(code: string): FallbackPrompt | undefined { return FALLBACK_PROMPTS[code]; } /** * 检查是否有兜底 Prompt */ export function hasFallbackPrompt(code: string): boolean { return code in FALLBACK_PROMPTS; } /** * 获取所有兜底 Prompt 的代码列表 */ export function getAllFallbackCodes(): string[] { return Object.keys(FALLBACK_PROMPTS); }