- Add ProfilePage with avatar upload, password change, and module status display - Update logo and favicon for login page and browser tab - Redirect Data Cleaning module default route to Tool C - Hide Settings button from top navigation for MVP - Add avatar display in top navigation bar with refresh sync - Add Prompt knowledge base integration development plan docs
6.3 KiB
Prompt 管理系统升级:知识库集成 (RAG) 方案
1. 背景与需求
统计学专家及其他业务方提出,Prompt 需要能够动态引用外部知识库(如统计学规范、ICD-10 编码手册、CRF 设计指南)。为了避免代码硬编码,我们需要在 Prompt 管理后台提供“知识库绑定”能力。
2. 核心变更
2.1 数据库 Schema 变更
修改 capability_schema.prompt_templates 表,新增 knowledge_config 字段。
我们引入 injection_mode 字段,支持 RAG 检索 和 全量注入 两种策略。
model prompt_templates {
// ...
// 存储 JSON 配置
// 示例:
// {
// "enabled": true,
// "source_type": "KB",
// "kb_codes": ["STAT_SAS_GUIDE", "STAT_R_GUIDE"],
//
// // ✨ 新增:注入模式
// // "RAG": 向量检索 TopK (适合海量文档, >20篇)
// // "FULL": 全量上下文注入 (适合少量核心文档, <10篇, 精度最高)
// "injection_mode": "FULL",
//
// "query_field": "user_question", // RAG模式必填
// "target_variable": "reference_context",
// "top_k": 3, // RAG模式生效
// "min_score": 0.6 // RAG模式生效
// }
knowledge_config Json?
}
2.2 管理端 UI 升级 (Prompt Editor)
在 Prompt 编辑器右侧边栏增加 "知识增强 (RAG)" 面板。
面板功能:
- 开关:启用/禁用知识库引用。
- 知识库选择:下拉选择已存在的知识库。
- 注入模式选择 (✨ 新增):
- 智能检索 (RAG):推荐用于大型知识库。只检索最相关的片段,节省 Token,响应快。
- 全量注入 (Full Context):推荐用于小型核心知识库(如<10个文档)。将所有文档内容直接作为上下文发送给模型,准确率最高,无检索损失,但消耗 Token 较多。
- 检索触发词:(仅 RAG 模式显示) 选择 Prompt 变量中的哪一个作为搜索关键词。
- 注入变量名:指定内容放入哪个变量(默认 {{context}})。
2.3 渲染逻辑流程 (更新版)
业务侧调用 promptService.get 时,根据 injection_mode 走不同分支:
分支 A:全量注入模式 (Full Context) —— 专家推荐
- 读取绑定的知识库(如 "SAS 9.4 手册")。
- 直接读取该知识库下所有文档的全文内容(需注意总 Token 限制,可设置上限如 100k)。
- 拼接全文赋值给 variables.context。
- 优势:模型能看到文档全貌,跨章节推理能力极强,完全避免"检索不到"的问题。
分支 B:智能检索模式 (RAG)
- 提取检索词(如 user_requirement)。
- 调用向量数据库检索 Top K 片段。
- 拼接片段赋值给 variables.context。
- 优势:便宜,快,适合从几千本书里找答案。
3. 开发任务清单
- [ ] DB: 更新 Prisma Schema,添加 knowledge_config 字段。
- [ ] Backend:
- [ ] PromptService 引入 RagService 和 DocumentService。
- [ ] 新增:PromptService.get 实现 injection_mode 分流逻辑。
- [ ] 实现全量拉取文档内容的逻辑 (Cache 优化)。
- [ ] 管理端 API 支持保存 knowledge_config。
- [ ] Frontend:
- [ ] PromptEditor 新增知识库配置侧边栏。
- [ ] 新增:注入模式切换开关 (RAG / FULL)。
- [ ] Verification: 使用统计学 SAS 代码生成场景进行验证,对比两种模式的效果。
4. 常见问答 (Q&A)
Q: 全量注入模式会不会太贵?
A: 取决于文档量。目前 DeepSeek-V3 输入价格约 1元/百万Token。假设 5 个文档共 5万 Token,单次调用成本约 0.05 元。对于专家级辅助工具,这个成本是完全可以接受的。
Q: 全量注入模式有延迟吗?
A: 首字延迟会比 RAG 略高(因为预填充处理时间长),但目前 LLM 推理速度很快,体验差异通常在 1-2 秒内。
5. AIA 智能体实战配置指南 (基于 V3.1)
根据 AIA 模块的 10 个核心智能体,建议的知识库绑定策略如下:
Phase 1: 选题优化
此阶段重点在于创新性和临床价值评估。
| Prompt Code | 智能体名称 | 建议绑定知识库 | 注入模式 | 理由 |
|---|---|---|---|---|
| AIA_SCIENTIFIC_QUESTION | 科学问题梳理 | [公共] 临床研究方法学导论 | FULL | 方法学书不厚,全量读入能让 AI 像读过书的教授一样指导,避免断章取义。 |
| AIA_PICO_ANALYSIS | PICO 梳理 | [公共] ICD-10/11 编码手册 | RAG | 编码手册是字典型的,成千上万条,必须用 RAG,全量读入会撑爆上下文且无必要。 |
| AIA_TOPIC_EVALUATION | 选题评价 | [公共] 顶级期刊选题指南 | FULL | 指南通常只有几页纸,全量注入效果最佳。 |
Phase 2: 方案设计
此阶段重点在于规范性和标准化。
| Prompt Code | 智能体名称 | 建议绑定知识库 | 注入模式 | 理由 |
|---|---|---|---|---|
| AIA_OUTCOME_DESIGN | 观察指标设计 | [公共] COMET (Core Outcome Measures) | RAG | COMET 数据库很大,适合检索特定疾病的指标集。 |
| AIA_CRF_DESIGN | CRF 设计 | [公共] CDISC/CDASH 标准指南 | FULL | CDASH 核心字段集文档适中,全量注入能保证字段间的逻辑关系正确。 |
| AIA_PROTOCOL_WRITING | 方案撰写 | [公共] SPIRIT 声明 (2013) | FULL | SPIRIT 清单很短,必须全量参考。 |
| AIA_SAMPLE_SIZE | 样本量计算 | [公共] 常用样本量计算公式手册 | FULL | 公式手册通常很精简。 |
Phase 3: 方案预评审
此阶段重点在于查漏补缺。
| Prompt Code | 智能体名称 | 建议绑定知识库 | 注入模式 | 理由 |
|---|---|---|---|---|
| AIA_METHODOLOGY_REVIEW | 方法学评审 | [公共] CONSORT 声明 (RCT) | FULL | 评审需要对照 Checklist 的每一条,必须全量注入,RAG 如果漏检索一条就会导致评审不完整。 |
注:需要在运营管理端提前创建上述[公共]知识库,并导入相应的 PDF/Markdown 规范文档。