# **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)"** 面板。 #### **面板功能:** 1. **开关**:启用/禁用知识库引用。 2. **知识库选择**:下拉选择已存在的知识库。 3. **注入模式选择 (✨ 新增)**: * **智能检索 (RAG)**:推荐用于大型知识库。只检索最相关的片段,节省 Token,响应快。 * **全量注入 (Full Context)**:推荐用于小型核心知识库(如\<10个文档)。将所有文档内容直接作为上下文发送给模型,**准确率最高,无检索损失**,但消耗 Token 较多。 4. **检索触发词**:(仅 RAG 模式显示) 选择 Prompt 变量中的哪一个作为搜索关键词。 5. **注入变量名**:指定内容放入哪个变量(默认 {{context}})。 ### **2.3 渲染逻辑流程 (更新版)** 业务侧调用 promptService.get 时,根据 injection\_mode 走不同分支: **分支 A:全量注入模式 (Full Context) —— 专家推荐** 1. 读取绑定的知识库(如 "SAS 9.4 手册")。 2. 直接读取该知识库下所有文档的**全文内容**(需注意总 Token 限制,可设置上限如 100k)。 3. 拼接全文赋值给 variables.context。 4. **优势**:模型能看到文档全貌,跨章节推理能力极强,完全避免"检索不到"的问题。 **分支 B:智能检索模式 (RAG)** 1. 提取检索词(如 user\_requirement)。 2. 调用向量数据库检索 Top K 片段。 3. 拼接片段赋值给 variables.context。 4. **优势**:便宜,快,适合从几千本书里找答案。 ## **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 规范文档。*