# 2026-01-27 系统知识库管理功能完成 > **开发日期:** 2026-01-27 > **开发者:** AI Assistant > **状态:** ✅ 功能完整可用 --- ## 📋 开发内容 ### 系统知识库管理功能(System KB) 运营管理端新增「系统知识库」模块,供管理员创建和管理公共知识库,支持 Prompt 引用。 --- ## ✅ 已完成功能 ### 1. 后端 API(8 个接口) | 接口 | 方法 | 路径 | 功能 | |------|------|------|------| | 知识库列表 | GET | `/api/v1/admin/system-kb` | 获取所有系统知识库 | | 知识库详情 | GET | `/api/v1/admin/system-kb/:id` | 获取单个知识库详情 | | 创建知识库 | POST | `/api/v1/admin/system-kb` | 创建新知识库 | | 更新知识库 | PATCH | `/api/v1/admin/system-kb/:id` | 更新知识库信息 | | 删除知识库 | DELETE | `/api/v1/admin/system-kb/:id` | 删除知识库(含所有文档) | | 文档列表 | GET | `/api/v1/admin/system-kb/:id/documents` | 获取知识库文档列表 | | 上传文档 | POST | `/api/v1/admin/system-kb/:id/documents` | 上传文档(支持 PDF/Word/TXT) | | 删除文档 | DELETE | `/api/v1/admin/system-kb/:id/documents/:docId` | 删除单个文档 | | 下载文档 | GET | `/api/v1/admin/system-kb/:id/documents/:docId/download` | 获取文档下载链接 | **后端文件:** - `backend/src/modules/admin/system-kb/systemKbService.ts` - 核心业务逻辑 - `backend/src/modules/admin/system-kb/systemKbController.ts` - 请求处理 - `backend/src/modules/admin/system-kb/systemKbRoutes.ts` - 路由定义 - `backend/src/modules/admin/system-kb/index.ts` - 模块导出 ### 2. 前端界面(主从页面模式) **Master 页面 - 知识库列表** - 卡片式布局展示所有知识库 - 显示知识库名称、代码、文档数、Token 数 - 支持创建新知识库(Modal 弹窗) - 支持编辑、删除知识库 - 点击卡片进入详情页 **Detail 页面 - 知识库详情** - 顶部:面包屑导航 + 返回按钮 - 统计卡片:文档数、Token 总量 - 文档表格:文件名、大小、Token、状态、上传时间、操作 - 支持单个/批量上传文档 - 支持单个/批量删除文档 - 上传进度显示 - 下载文档功能(保留原始文件名) **前端文件:** - `frontend-v2/src/modules/admin/pages/SystemKbListPage.tsx` - 列表页 - `frontend-v2/src/modules/admin/pages/SystemKbDetailPage.tsx` - 详情页 - `frontend-v2/src/modules/admin/api/systemKbApi.ts` - API 调用 - `frontend-v2/src/modules/admin/types/systemKb.ts` - 类型定义 ### 3. 数据库设计 **表结构:** - `capability_schema.system_knowledge_bases` - 系统知识库表 - `capability_schema.system_kb_documents` - 知识库文档表 - `ekb_schema.ekb_knowledge_base` - EKB 知识库(RAG 引擎) - `ekb_schema.ekb_document` - EKB 文档(向量化) - `ekb_schema.ekb_chunk` - 文档分块(向量存储) ### 4. OSS 存储集成 **存储路径:** `system/knowledge-bases/{kbId}/{docId}.{ext}` **遵循规范:** - ✅ UUID 命名存储,原始文件名存数据库 - ✅ 签名 URL 下载,支持 Content-Disposition - ✅ 下载时恢复原始文件名 ### 5. RAG 引擎集成 复用 `common/rag/` RAG 引擎能力: - DocumentIngestService:文档解析、分块、向量化 - EmbeddingService:文本向量化(text-embedding-v4) - 存储到 pgvector 向量数据库 --- ## 🔧 技术要点 ### 下载功能实现 ```typescript // 使用 OSSAdapter.getSignedUrl 传入原始文件名 const ossAdapter = storage as OSSAdapter; const url = ossAdapter.getSignedUrl(doc.file_path, 3600, doc.filename); // 生成的 URL 带有 Content-Disposition 头,浏览器下载时使用原始文件名 ``` ### 主从页面路由 ```typescript // App.tsx 路由配置 } /> } /> ``` --- ## 📊 代码量统计 | 文件类型 | 文件数 | 代码行数(约) | |---------|--------|---------------| | 后端 Service | 1 | ~500 行 | | 后端 Controller | 1 | ~340 行 | | 后端 Routes | 1 | ~75 行 | | 前端 ListPage | 1 | ~320 行 | | 前端 DetailPage | 1 | ~450 行 | | 前端 API | 1 | ~130 行 | | 前端 Types | 1 | ~60 行 | | **合计** | **7** | **~1,875 行** | --- ## 📝 下一步计划 1. **Prompt + 知识库关联** - 在 Prompt 编辑页添加知识库选择器 - 实现 Prompt 调用时自动 RAG 检索 2. **知识库搜索** - 添加知识库内全文检索功能 - 语义搜索测试界面 --- ## 📚 相关文档 - 开发计划:`docs/03-业务模块/ADMIN-运营管理端/04-开发计划/05-Prompt知识库集成开发计划.md` - OSS 规范:`docs/04-开发规范/11-OSS存储开发规范.md` - RAG 引擎:`docs/02-通用能力层/03-RAG引擎/05-RAG引擎使用指南.md` --- *开发记录完成*