feat(admin): Implement Prompt knowledge base integration
Features: - PromptService enhancement: enhanceWithKnowledge(), loadFullKnowledge(), ragSearch() - FULL mode: Load entire knowledge base content - RAG mode: Vector search based on user query - Knowledge config API: PUT /:code/knowledge-config - Test render with knowledge injection support - Frontend: Knowledge config UI in Prompt editor Bug fixes: - Fix knowledge config not returned in getPromptDetail - Fix publish button 400 error (empty request body) - Fix cache not invalidated after publish - Add detailed logging for debugging Documentation: - Add development record 2026-01-28 - Update ADMIN module status to Phase 4.6 - Update system status document to v4.5 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,22 +1,23 @@
|
||||
# AIclinicalresearch 系统当前状态与开发指南
|
||||
|
||||
> **文档版本:** v4.4
|
||||
> **文档版本:** v4.5
|
||||
> **创建日期:** 2025-11-28
|
||||
> **维护者:** 开发团队
|
||||
> **最后更新:** 2026-01-27
|
||||
> **最后更新:** 2026-01-28
|
||||
> **🎉 重大里程碑:**
|
||||
> - **2026-01-28:Prompt 知识库集成完成!** Prompt 可动态引用系统知识库内容
|
||||
> - **2026-01-27:系统知识库管理功能完成!** 运营管理端新增知识库管理+文档上传下载
|
||||
> - **2026-01-25:Protocol Agent MVP完整交付!** 一键生成研究方案+Word导出
|
||||
> - **2026-01-24:Protocol Agent 框架完成!** 可复用Agent框架+5阶段对话流程
|
||||
> - **2026-01-22:OSS 存储集成完成!** 阿里云 OSS 正式接入平台基础层
|
||||
> - **2026-01-21:成功替换 Dify!** PKB 模块完全使用自研 pgvector RAG 引擎
|
||||
>
|
||||
> **最新进展(系统知识库管理 2026-01-27):**
|
||||
> - ✅ **系统知识库管理**:运营管理端新增知识库模块,支持 Prompt 引用
|
||||
> - ✅ **主从页面模式**:Master-Detail UX,卡片列表+文档管理表格
|
||||
> - ✅ **文档管理**:上传(单个/批量)、下载(保留原始文件名)、删除
|
||||
> - ✅ **RAG 引擎集成**:文档解析、分块、向量化存储
|
||||
> - ✅ **OSS 存储集成**:system/knowledge-bases/{kbId}/{docId} 路径
|
||||
> **最新进展(Prompt 知识库集成 2026-01-28):**
|
||||
> - ✅ **PromptService 增强**:支持 FULL/RAG 两种知识库注入模式
|
||||
> - ✅ **配置界面**:Prompt 编辑器右侧面板配置知识库增强
|
||||
> - ✅ **测试渲染**:预览知识库注入效果
|
||||
> - ✅ **发布即生效**:发布后业务端立即使用知识库增强
|
||||
> - ✅ **Bug 修复**:配置保存、发布按钮、缓存清除等问题
|
||||
>
|
||||
> **部署状态:** ✅ 生产环境运行中 | 公网地址:http://8.140.53.236/
|
||||
> **文档目的:** 快速了解系统当前状态,为新AI助手提供上下文
|
||||
@@ -59,7 +60,7 @@
|
||||
| **SSA** | 智能统计分析 | 队列/预测模型/RCT分析 | ⭐⭐⭐⭐⭐ | 📋 规划中 | P2 |
|
||||
| **ST** | 统计分析工具 | 100+轻量化统计工具 | ⭐⭐⭐⭐ | 📋 规划中 | P2 |
|
||||
| **RVW** | 稿件审查系统 | 方法学评估、审稿流程、Word导出 | ⭐⭐⭐⭐ | ✅ **开发完成(95%)** | P3 |
|
||||
| **ADMIN** | 运营管理端 | Prompt管理、租户管理、用户管理、运营监控、系统知识库 | ⭐⭐⭐⭐⭐ | 🎉 **Phase 4.5完成(85%)** - 系统知识库管理+文档上传下载 | **P0** |
|
||||
| **ADMIN** | 运营管理端 | Prompt管理、租户管理、用户管理、运营监控、系统知识库 | ⭐⭐⭐⭐⭐ | 🎉 **Phase 4.6完成(88%)** - Prompt知识库集成+动态注入 | **P0** |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# ADMIN-运营管理端 - 模块当前状态与开发指南
|
||||
|
||||
> **最后更新:** 2026-01-27
|
||||
> **状态:** ✅ Phase 4.5 系统知识库管理功能完成!
|
||||
> **版本:** v0.7 (Alpha)
|
||||
> **最后更新:** 2026-01-28
|
||||
> **状态:** ✅ Phase 4.6 Prompt 知识库集成功能完成!
|
||||
> **版本:** v0.8 (Alpha)
|
||||
|
||||
---
|
||||
|
||||
@@ -123,6 +123,18 @@
|
||||
- [x] 前端:主从页面模式(Master-Detail UX)
|
||||
- [x] 功能:文档上传(单个/批量)、下载(保留原始文件名)、删除
|
||||
|
||||
**Phase 4.6:Prompt 知识库集成** ✅ 已完成(2026-01-28)🎉
|
||||
- [x] 后端:PromptService 知识库增强(`enhanceWithKnowledge()`)
|
||||
- [x] 后端:FULL 模式全量加载(`loadFullKnowledge()`)
|
||||
- [x] 后端:RAG 模式向量检索(`ragSearch()`)
|
||||
- [x] 后端:知识库配置保存 API(`PUT /:code/knowledge-config`)
|
||||
- [x] 后端:测试渲染支持知识库注入(`getEnhancedVariables()`)
|
||||
- [x] 前端:知识库配置 UI(开关、选择器、参数配置)
|
||||
- [x] 前端:测试渲染预览知识库效果
|
||||
- [x] 修复:知识库配置保存/加载问题
|
||||
- [x] 修复:发布按钮 400 错误
|
||||
- [x] 修复:发布后缓存未清除问题
|
||||
|
||||
### ⏳ 待开发(按优先级)
|
||||
|
||||
**P2 - 用户管理增强(可选)**
|
||||
|
||||
150
docs/03-业务模块/ADMIN-运营管理端/06-开发记录/2026-01-28_Prompt知识库集成功能完成.md
Normal file
150
docs/03-业务模块/ADMIN-运营管理端/06-开发记录/2026-01-28_Prompt知识库集成功能完成.md
Normal file
@@ -0,0 +1,150 @@
|
||||
# 2026-01-28 Prompt 知识库集成功能完成
|
||||
|
||||
## 开发概述
|
||||
|
||||
完成了 Prompt 管理系统与知识库的集成,支持在 Prompt 中动态引用系统知识库内容,实现知识增强的 AI 对话能力。
|
||||
|
||||
---
|
||||
|
||||
## 功能清单
|
||||
|
||||
### 1. PromptService 知识库增强
|
||||
|
||||
**后端核心改造** (`backend/src/common/prompt/`)
|
||||
|
||||
| 文件 | 改动 | 说明 |
|
||||
|------|------|------|
|
||||
| `prompt.types.ts` | 新增类型 | `KnowledgeConfig`, `InjectionMode` 类型定义 |
|
||||
| `prompt.service.ts` | 核心逻辑 | `enhanceWithKnowledge()`, `loadFullKnowledge()`, `ragSearch()` |
|
||||
| `prompt.controller.ts` | API 增强 | `saveKnowledgeConfig`, `testRender` 支持知识库 |
|
||||
| `prompt.routes.ts` | 路由 | `PUT /:code/knowledge-config` |
|
||||
|
||||
**知识库注入模式**:
|
||||
- **FULL 模式**:全量加载知识库内容(适合小型核心知识库)
|
||||
- **RAG 模式**:基于用户查询进行向量检索(适合大型知识库)
|
||||
|
||||
### 2. 前端配置界面
|
||||
|
||||
**Prompt 编辑器增强** (`frontend-v2/src/pages/admin/`)
|
||||
|
||||
| 功能 | 说明 |
|
||||
|------|------|
|
||||
| 知识库增强开关 | 启用/禁用知识库注入 |
|
||||
| 知识库选择 | 多选系统知识库(下拉列表) |
|
||||
| 注入模式选择 | FULL / RAG 模式 |
|
||||
| 目标变量配置 | 指定注入到哪个模板变量(默认 `context`) |
|
||||
| RAG 参数配置 | `top_k`, `min_score` |
|
||||
| FULL 参数配置 | `max_tokens` 限制 |
|
||||
| 测试渲染增强 | 预览知识库注入效果 |
|
||||
|
||||
### 3. Bug 修复
|
||||
|
||||
| 问题 | 原因 | 解决方案 |
|
||||
|------|------|---------|
|
||||
| 测试渲染不注入知识库 | `testRender` API 不支持知识库增强 | 添加 `getEnhancedVariables()` 公共方法 |
|
||||
| 知识库配置不保存 | `getPromptDetail` 返回缺少 `knowledge_config` | 添加字段到返回数据 |
|
||||
| 发布按钮 400 错误 | POST 请求体问题 | 添加空对象作为请求体 |
|
||||
| 发布后第一次不生效 | 脚本发布未清除缓存 | 使用前端发布,正确调用 `invalidateCache()` |
|
||||
|
||||
---
|
||||
|
||||
## 代码统计
|
||||
|
||||
| 类型 | 文件数 | 新增行数 | 修改行数 |
|
||||
|------|--------|---------|---------|
|
||||
| 后端 TypeScript | 4 | ~200 | ~50 |
|
||||
| 前端 TypeScript | 2 | ~150 | ~30 |
|
||||
| 测试脚本 | 5 | ~500 | - |
|
||||
|
||||
---
|
||||
|
||||
## 技术亮点
|
||||
|
||||
### 1. 知识库增强流程
|
||||
|
||||
```
|
||||
promptService.get(code, variables, { userId, userQuery })
|
||||
↓
|
||||
获取 template.knowledge_config
|
||||
↓
|
||||
enhanceWithKnowledge()
|
||||
↓
|
||||
┌─────────────────────────────────────┐
|
||||
│ FULL 模式 │ RAG 模式 │
|
||||
│ loadFullKnowledge()│ ragSearch() │
|
||||
│ 加载全部分块 │ 向量检索 top_k │
|
||||
└─────────────────────────────────────┘
|
||||
↓
|
||||
注入到 variables.context
|
||||
↓
|
||||
render(template, enhancedVariables)
|
||||
```
|
||||
|
||||
### 2. 配置数据结构
|
||||
|
||||
```typescript
|
||||
interface KnowledgeConfig {
|
||||
enabled: boolean; // 是否启用
|
||||
kb_codes: string[]; // 知识库代码列表
|
||||
injection_mode: 'FULL' | 'RAG'; // 注入模式
|
||||
target_variable: string; // 目标变量名(默认 context)
|
||||
// RAG 模式参数
|
||||
top_k?: number; // 返回结果数
|
||||
min_score?: number; // 最低相似度
|
||||
// FULL 模式参数
|
||||
max_tokens?: number; // Token 数限制
|
||||
}
|
||||
```
|
||||
|
||||
### 3. 版本发布与缓存
|
||||
|
||||
- 发布时自动清除版本缓存
|
||||
- 知识库配置存储在 `prompt_templates.knowledge_config` (JSONB)
|
||||
- 每次请求从数据库读取最新配置(无配置缓存)
|
||||
|
||||
---
|
||||
|
||||
## 使用指南
|
||||
|
||||
### 1. 配置知识库增强
|
||||
|
||||
1. 进入 **运营管理端 → Prompt管理**
|
||||
2. 选择需要增强的 Prompt
|
||||
3. 右侧面板 → **📚 知识库增强**
|
||||
4. 开启开关,选择知识库
|
||||
5. 点击 **保存配置**
|
||||
|
||||
### 2. 在 Prompt 中使用
|
||||
|
||||
在 Prompt 模板中使用 `{{context}}` 变量:
|
||||
|
||||
```
|
||||
你是一个专业的临床研究方法学专家。
|
||||
|
||||
【参考知识库】
|
||||
{{context}}
|
||||
|
||||
请基于以上参考资料回答用户问题。
|
||||
```
|
||||
|
||||
### 3. 测试验证
|
||||
|
||||
1. 点击 **测试渲染** 预览效果
|
||||
2. 开启 **调试模式** 在业务端测试
|
||||
3. 确认无误后 **发布** 到生产
|
||||
|
||||
---
|
||||
|
||||
## 后续优化建议
|
||||
|
||||
1. **配置缓存**:知识库配置可考虑添加短期缓存
|
||||
2. **RAG 优化**:支持更多检索参数(如 rerank)
|
||||
3. **批量配置**:支持批量为多个 Prompt 配置知识库
|
||||
4. **使用统计**:记录知识库引用次数和效果反馈
|
||||
|
||||
---
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [系统知识库管理功能完成](./2026-01-27_系统知识库管理功能完成.md)
|
||||
- [Prompt 知识库集成开发计划](../04-开发计划/05-Prompt知识库集成开发计划.md)
|
||||
Reference in New Issue
Block a user