feat(admin): Add user management and upgrade to module permission system
Features - User Management (Phase 4.1): - Database: Add user_modules table for fine-grained module permissions - Database: Add 4 user permissions (view/create/edit/delete) to role_permissions - Backend: UserService (780 lines) - CRUD with tenant isolation - Backend: UserController + UserRoutes (648 lines) - 13 API endpoints - Backend: Batch import users from Excel - Frontend: UserListPage (412 lines) - list/filter/search/pagination - Frontend: UserFormPage (341 lines) - create/edit with module config - Frontend: UserDetailPage (393 lines) - details/tenant/module management - Frontend: 3 modal components (592 lines) - import/assign/configure - API: GET/POST/PUT/DELETE /api/admin/users/* endpoints Architecture Upgrade - Module Permission System: - Backend: Add getUserModules() method in auth.service - Backend: Login API returns modules array in user object - Frontend: AuthContext adds hasModule() method - Frontend: Navigation filters modules based on user.modules - Frontend: RouteGuard checks requiredModule instead of requiredVersion - Frontend: Remove deprecated version-based permission system - UX: Only show accessible modules in navigation (clean UI) - UX: Smart redirect after login (avoid 403 for regular users) Fixes: - Fix UTF-8 encoding corruption in ~100 docs files - Fix pageSize type conversion in userService (String to Number) - Fix authUser undefined error in TopNavigation - Fix login redirect logic with role-based access check - Update Git commit guidelines v1.2 with UTF-8 safety rules Database Changes: - CREATE TABLE user_modules (user_id, tenant_id, module_code, is_enabled) - ADD UNIQUE CONSTRAINT (user_id, tenant_id, module_code) - INSERT 4 permissions + role assignments - UPDATE PUBLIC tenant with 8 module subscriptions Technical: - Backend: 5 new files (~2400 lines) - Frontend: 10 new files (~2500 lines) - Docs: 1 development record + 2 status updates + 1 guideline update - Total: ~4900 lines of code Status: User management 100% complete, module permission system operational
This commit is contained in:
@@ -1,18 +1,23 @@
|
||||
# PKB涓<EFBFBD>汉鐭ヨ瘑搴撴ā鍧?- 褰撳墠鐘舵€佷笌寮€鍙戞寚鍗?
|
||||
> **鏂囨。鐗堟湰锛?* v2.0
|
||||
> **鍒涘缓鏃ユ湡锛?* 2026-01-07
|
||||
> **缁存姢鑰咃細** PKB妯″潡寮€鍙戝洟闃?
|
||||
# PKB个人知识库模块 - 当前状态与开发指南
|
||||
|
||||
> **文档版本:** v2.0
|
||||
> **创建日期:** 2026-01-07
|
||||
> **维护者:** PKB模块开发团队
|
||||
> **最后更新:** 2026-01-07
|
||||
> **閲嶅ぇ杩涘睍锛?* 馃帀 **PKB妯″潡鏍稿績鍔熻兘鍏ㄩ儴瀹炵幇锛屽叿澶囩敓浜у彲鐢ㄦ€э紒**
|
||||
> **鏂囨。鐩<EFBFBD>殑锛?* 鍙嶆槧妯″潡鐪熷疄鐘舵€侊紝璁板綍寮€鍙戝巻绋?
|
||||
> **重大进展:** 🎉 **PKB模块核心功能全部实现,具备生产可用性!**
|
||||
> **文档目的:** 反映模块真实状态,记录开发历程
|
||||
|
||||
---
|
||||
|
||||
## 📋 文档说明
|
||||
|
||||
鏈<EFBFBD>枃妗f槸PKB涓<EFBFBD>汉鐭ヨ瘑搴撴ā鍧楃殑**鐪熷疄鐘舵€佸揩鐓?*锛屽<E9949B>瀹炶<E780B9>褰曞綋鍓嶅紑鍙戠姸鎬併€佹妧鏈<E5A6A7>灦鏋勫拰宸茬煡闂<E785A1><E99782>銆?
|
||||
**涓庡叾浠栨枃妗g殑鍏崇郴**锛?- **鏈<>枃妗o紙00-妯″潡褰撳墠鐘舵€侊級**锛歐hat is锛堢湡瀹炵姸鎬侊紝鍖呮嫭闂<E5ABAD><E99782>锛?- **闇€姹傚垎鏋愭枃妗?*锛歐hat to do锛堜骇鍝侀渶姹傦級
|
||||
- **寮€鍙戣<E98D99>褰曟枃妗?*锛歐hat done锛堝紑鍙戝巻绋嬶級
|
||||
- **鎶€鏈<EFBFBD><EFBFBD>璁℃枃妗?*锛欻ow to do锛堣<E9949B>璁℃柟妗堬級
|
||||
本文档是PKB个人知识库模块的**真实状态快照**,如实记录当前开发状态、技术架构和已知问题。
|
||||
|
||||
**与其他文档的关系**:
|
||||
- **本文档(00-模块当前状态)**:What is(真实状态,包括问题)
|
||||
- **需求分析文档**:What to do(产品需求)
|
||||
- **开发记录文档**:What done(开发历程)
|
||||
- **技术设计文档**:How to do(设计方案)
|
||||
|
||||
---
|
||||
|
||||
@@ -20,31 +25,37 @@
|
||||
|
||||
### 核心功能
|
||||
|
||||
PKB锛圥ersonal Knowledge Base锛変釜浜虹煡璇嗗簱妯″潡鎻愪緵锛?- 馃梻锔?**鐭ヨ瘑搴撶<E690B4>鐞?*锛氬垱寤恒€佺紪杈戙€佸垹闄や釜浜虹煡璇嗗簱
|
||||
- 馃搫 **鏂囨。绠$悊**锛氫笂浼犮€佸<E282AC>鐞嗐€佺粍缁囨枃妗o紙PDF/Word/TXT/MD锛?- 馃<> **AI闂<49>瓟**锛氬熀浜庣煡璇嗗簱鍐呭<E98D90>鐨勬櫤鑳介棶绛?- 馃搳 **鎵瑰<E98EB5>鐞?*锛氭壒閲忔彁鍙栨枃妗d俊鎭<E4BF8A>紝鐢熸垚缁撴瀯鍖栨暟鎹?
|
||||
### 褰撳墠鐘舵€?
|
||||
| 缁勪欢 | 鐘舵€?| 瀹屾垚搴?| 璇存槑 |
|
||||
|------|------|--------|------|
|
||||
| **鍚庣<E98D9A>API** | 鉁?宸插畬鎴?| 100% | v1 + v2鍙岃矾鐢辫繍琛?|
|
||||
| **鍓嶇<E98D93>Dashboard** | 鉁?宸插畬鎴?| 95% | 鍩轰簬V5鍘熷瀷瀹炵幇 |
|
||||
| **鍓嶇<E98D93>Workspace** | 鉁?宸插畬鎴?| 95% | 鍩轰簬V3鍘熷瀷瀹炵幇 |
|
||||
| **鍏ㄦ枃闃呰<E99783>妯″紡** | 鉁?宸插畬鎴?| 95% | Chat缁勪欢闆嗘垚瀹屾垚 |
|
||||
| **閫愮瘒绮捐<E7BBAE>妯″紡** | 鉁?宸插畬鎴?| 95% | 鏂囨。閫夋嫨+瀵硅瘽 |
|
||||
| **鎵瑰<E98EB5>鐞嗘ā寮?* | 鉁?宸插畬鎴?| 95% | 瀹屾暣娴佺▼+缁撴灉瀵煎嚭 |
|
||||
| **鏂囨。涓婁紶** | 鉁?宸插畬鎴?| 100% | 鎷栨嫿+杩涘害鏄剧ず |
|
||||
| **RAG妫€绱㈡ā寮?* | 鈴革笍 鏆傜紦 | 0% | 浼樺厛绾ц皟鏁?|
|
||||
PKB(Personal Knowledge Base)个人知识库模块提供:
|
||||
- 🗂️ **知识库管理**:创建、编辑、删除个人知识库
|
||||
- 📄 **文档管理**:上传、处理、组织文档(PDF/Word/TXT/MD)
|
||||
- 🤖 **AI问答**:基于知识库内容的智能问答
|
||||
- 📊 **批处理**:批量提取文档信息,生成结构化数据
|
||||
|
||||
**鏁翠綋瀹屾垚搴︼細绾?0%** 馃帀
|
||||
### 当前状态
|
||||
|
||||
| 组件 | 状态 | 完成度 | 说明 |
|
||||
|------|------|--------|------|
|
||||
| **后端API** | ✅ 已完成 | 100% | v1 + v2双路由运行 |
|
||||
| **前端Dashboard** | ✅ 已完成 | 95% | 基于V5原型实现 |
|
||||
| **前端Workspace** | ✅ 已完成 | 95% | 基于V3原型实现 |
|
||||
| **全文阅读模式** | ✅ 已完成 | 95% | Chat组件集成完成 |
|
||||
| **逐篇精读模式** | ✅ 已完成 | 95% | 文档选择+对话 |
|
||||
| **批处理模式** | ✅ 已完成 | 95% | 完整流程+结果导出 |
|
||||
| **文档上传** | ✅ 已完成 | 100% | 拖拽+进度显示 |
|
||||
| **RAG检索模式** | ⏸️ 暂缓 | 0% | 优先级调整 |
|
||||
|
||||
**整体完成度:约90%** 🎉
|
||||
|
||||
---
|
||||
|
||||
## 馃彈锔?鎶€鏈<E282AC>灦鏋?
|
||||
## 🏗️ 技术架构
|
||||
|
||||
### 前端技术栈
|
||||
|
||||
```
|
||||
框架: React 19 + TypeScript 5
|
||||
路由: React Router DOM v7
|
||||
鐘舵€佺<EFBFBD>鐞? Zustand
|
||||
状态管理: Zustand
|
||||
UI组件: Ant Design v6 + Ant Design X
|
||||
样式: TailwindCSS v3
|
||||
构建工具: Vite 7
|
||||
@@ -54,22 +65,27 @@ UI组件: Ant Design v6 + Ant Design X
|
||||
|
||||
```
|
||||
框架: Fastify v4 (Node.js 22)
|
||||
鏁版嵁搴? PostgreSQL 15 + Prisma 6
|
||||
数据库: PostgreSQL 15 + Prisma 6
|
||||
Schema: pkb_schema (独立隔离)
|
||||
LLM: DeepSeek-V3, Qwen-Max (通过LLMFactory)
|
||||
RAG: Dify鐭ヨ瘑搴撻泦鎴?瀛樺偍: OSS瀵硅薄瀛樺偍
|
||||
RAG: Dify知识库集成
|
||||
存储: OSS对象存储
|
||||
```
|
||||
|
||||
### API路由
|
||||
|
||||
```
|
||||
# 鏂版灦鏋?(v2)
|
||||
/api/v1/pkb/knowledge # 鐭ヨ瘑搴揅RUD
|
||||
/api/v1/pkb/knowledge/:id # 鐭ヨ瘑搴撹<EFBFBD>鎯?/api/v1/pkb/documents # 鏂囨。绠$悊
|
||||
# 新架构 (v2)
|
||||
/api/v2/pkb/knowledge # 知识库CRUD
|
||||
/api/v2/pkb/knowledge/:id # 知识库详情
|
||||
/api/v2/pkb/documents # 文档管理
|
||||
|
||||
# 鏃ф灦鏋?(v1锛屼繚鎸佸吋瀹?
|
||||
/api/v1/knowledge # 鐭ヨ瘑搴撶<EFBFBD>鐞?/api/v1/documents # 鏂囨。绠$悊
|
||||
/api/v1/batch-tasks # 鎵瑰<E98EB5>鐞嗕换鍔?/api/v1/chat/stream # AI瀵硅瘽娴?```
|
||||
# 旧架构 (v1,保持兼容)
|
||||
/api/v1/knowledge # 知识库管理
|
||||
/api/v1/documents # 文档管理
|
||||
/api/v1/batch-tasks # 批处理任务
|
||||
/api/v1/chat/stream # AI对话流
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -80,42 +96,47 @@ RAG: Dify知识库集
|
||||
```
|
||||
backend/src/modules/pkb/
|
||||
├── controllers/
|
||||
鈹? 鈹溾攢鈹€ knowledgeBaseController.ts # 鐭ヨ瘑搴撴帶鍒跺櫒
|
||||
鈹? 鈹溾攢鈹€ documentController.ts # 鏂囨。鎺у埗鍣?鈹? 鈹斺攢鈹€ batchController.ts # 鎵瑰<E98EB5>鐞嗘帶鍒跺櫒
|
||||
│ ├── knowledgeBaseController.ts # 知识库控制器
|
||||
│ ├── documentController.ts # 文档控制器
|
||||
│ └── batchController.ts # 批处理控制器
|
||||
├── services/
|
||||
鈹? 鈹溾攢鈹€ knowledgeBaseService.ts # 鐭ヨ瘑搴撴湇鍔?(~350琛?
|
||||
鈹? 鈹溾攢鈹€ documentService.ts # 鏂囨。鏈嶅姟 (~400琛?
|
||||
鈹? 鈹斺攢鈹€ batchService.ts # 鎵瑰<EFBFBD>鐞嗘湇鍔?(~300琛?
|
||||
│ ├── knowledgeBaseService.ts # 知识库服务 (~350行)
|
||||
│ ├── documentService.ts # 文档服务 (~400行)
|
||||
│ └── batchService.ts # 批处理服务 (~300行)
|
||||
├── routes/
|
||||
鈹? 鈹斺攢鈹€ index.ts # 璺<EFBFBD>敱閰嶇疆
|
||||
│ └── index.ts # 路由配置
|
||||
└── index.ts # 模块入口
|
||||
|
||||
鎬昏<EFBFBD>: ~1500琛屽悗绔<EFBFBD>唬鐮?```
|
||||
总计: ~1500行后端代码
|
||||
```
|
||||
|
||||
### 前端代码结构
|
||||
|
||||
```
|
||||
frontend-v2/src/modules/pkb/
|
||||
├── api/
|
||||
鈹? 鈹斺攢鈹€ knowledgeBaseApi.ts # API瀹㈡埛绔?(~200琛?
|
||||
│ └── knowledgeBaseApi.ts # API客户端 (~200行)
|
||||
├── stores/
|
||||
鈹? 鈹斺攢鈹€ useKnowledgeBaseStore.ts # Zustand鐘舵€?(~150琛?
|
||||
│ └── useKnowledgeBaseStore.ts # Zustand状态 (~150行)
|
||||
├── pages/
|
||||
鈹? 鈹溾攢鈹€ DashboardPage.tsx # 浠<EFBFBD>〃鐩?(~450琛?
|
||||
鈹? 鈹斺攢鈹€ WorkspacePage.tsx # 宸ヤ綔鍙?(~513琛?
|
||||
│ ├── DashboardPage.tsx # 仪表盘 (~450行)
|
||||
│ └── WorkspacePage.tsx # 工作台 (~513行)
|
||||
├── components/
|
||||
鈹? 鈹斺攢鈹€ Workspace/
|
||||
鈹? 鈹溾攢鈹€ WorkModeSelector.tsx # 妯″紡閫夋嫨 (~200琛?
|
||||
鈹? 鈹溾攢鈹€ FullTextMode.tsx # 鍏ㄦ枃闃呰<EFBFBD> (~150琛?
|
||||
鈹? 鈹溾攢鈹€ DeepReadMode.tsx # 閫愮瘒绮捐<EFBFBD> (~150琛?
|
||||
鈹? 鈹溾攢鈹€ BatchMode.tsx # 鎵瑰<EFBFBD>鐞嗗叆鍙?鈹? 鈹斺攢鈹€ BatchModeComplete.tsx # 鎵瑰<E98EB5>鐞嗗畬鏁?(~511琛?
|
||||
│ └── Workspace/
|
||||
│ ├── WorkModeSelector.tsx # 模式选择 (~200行)
|
||||
│ ├── FullTextMode.tsx # 全文阅读 (~150行)
|
||||
│ ├── DeepReadMode.tsx # 逐篇精读 (~150行)
|
||||
│ ├── BatchMode.tsx # 批处理入口
|
||||
│ └── BatchModeComplete.tsx # 批处理完整 (~511行)
|
||||
├── hooks/
|
||||
鈹? 鈹斺攢鈹€ useWorkMode.ts # 宸ヤ綔妯″紡Hook
|
||||
│ └── useWorkMode.ts # 工作模式Hook
|
||||
├── types/
|
||||
鈹? 鈹斺攢鈹€ index.ts # 绫诲瀷瀹氫箟
|
||||
│ └── index.ts # 类型定义
|
||||
└── styles/
|
||||
鈹斺攢鈹€ workspace.css # 鑷<EFBFBD>畾涔夋牱寮?
|
||||
鎬昏<EFBFBD>: ~2300琛屽墠绔<E5A2A0>唬鐮?```
|
||||
└── workspace.css # 自定义样式
|
||||
|
||||
总计: ~2300行前端代码
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -123,127 +144,186 @@ frontend-v2/src/modules/pkb/
|
||||
|
||||
### 原型文件
|
||||
|
||||
- **Dashboard**: `docs/03-涓氬姟妯″潡/PKB-涓<>汉鐭ヨ瘑搴?01-闇€姹傚垎鏋?鐭ヨ瘑搴撲华琛ㄧ洏V5.html`
|
||||
- **Workspace**: `docs/03-涓氬姟妯″潡/PKB-涓<>汉鐭ヨ瘑搴?01-闇€姹傚垎鏋?宸ヤ綔鍙癡3.html`
|
||||
- **Dashboard**: `docs/03-业务模块/PKB-个人知识库/01-需求分析/知识库仪表盘V5.html`
|
||||
- **Workspace**: `docs/03-业务模块/PKB-个人知识库/01-需求分析/工作台V3.html`
|
||||
|
||||
### Workspace布局
|
||||
|
||||
```
|
||||
鈹屸攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹?[杩斿洖] 鈹?鐭ヨ瘑搴撳悕 鈹?[闂<>瓟][璧勪骇] 鈹?璁剧疆 澶村儚 鈹?Header 56px
|
||||
鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹?[宸ヤ綔妯″紡鈻糫 [鏂囨。鈻糫 宸插姞杞?x/y 绡?鈹?宸ヤ綔妯″紡鏍?40px
|
||||
鈹溾攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?鈹? 鈹?鈹? 鑱婂ぉ鍖哄煙锛堟渶澶у寲锛? 鈹?鈹? 鈹?鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?```
|
||||
┌─────────────────────────────────────────────────┐
|
||||
│ [返回] │ 知识库名 │ [问答][资产] │ 设置 头像 │ Header 56px
|
||||
├─────────────────────────────────────────────────┤
|
||||
│ [工作模式▼] [文档▼] 已加载 x/y 篇 │ 工作模式栏 40px
|
||||
├─────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ 聊天区域(最大化) │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### 设计特点
|
||||
|
||||
- **鍗曞眰Header**: 鏁村悎瀵艰埅鍜孴ab鍒囨崲锛堟櫤鑳介棶绛?鐭ヨ瘑璧勪骇锛?- **绱у噾宸ヤ綔妯″紡鏍?*: 涓嬫媺閫夋嫨锛岃妭鐪佺┖闂?- **鏈€澶у寲鑱婂ぉ鍖哄煙**: 鍏ㄥ睆妯″紡锛屾矇娴稿紡瀵硅瘽浣撻獙
|
||||
- **单层Header**: 整合导航和Tab切换(智能问答/知识资产)
|
||||
- **紧凑工作模式栏**: 下拉选择,节省空间
|
||||
- **最大化聊天区域**: 全屏模式,沉浸式对话体验
|
||||
- **响应式布局**: 支持不同屏幕尺寸
|
||||
|
||||
---
|
||||
|
||||
## 🔌 工作模式
|
||||
|
||||
### 1. 鍏ㄦ枃闃呰<EFBFBD>妯″紡锛團ull Text锛?
|
||||
**鍔熻兘璇存槑**锛?- 鍔犺浇鐭ヨ瘑搴撳叏閮ㄦ枃妗?- AI鍏峰<E98D8F>鍏ㄧ煡瑙嗚<E79199>
|
||||
### 1. 全文阅读模式(Full Text)
|
||||
|
||||
**功能说明**:
|
||||
- 加载知识库全部文档
|
||||
- AI具备全知视角
|
||||
- 适合文献综述、跨文献分析
|
||||
|
||||
**鎶€鏈<EFBFBD>疄鐜?*锛?- 璋冪敤 `/api/v1/chat/stream` 鎺ュ彛
|
||||
**技术实现**:
|
||||
- 调用 `/api/v1/chat/stream` 接口
|
||||
- 传入所有文档ID
|
||||
- 使用SSE流式响应
|
||||
|
||||
### 2. 閫愮瘒绮捐<EFBFBD>妯″紡锛圖eep Read锛?
|
||||
**鍔熻兘璇存槑**锛?- 閫夋嫨1-5绡囨枃妗?- 娣卞害瑙h<E79199>鍗曠瘒鏂囩尞
|
||||
- 閫傚悎绮捐<E7BBAE>銆佹壒娉ㄣ€佺悊瑙?
|
||||
**鎶€鏈<E282AC>疄鐜?*锛?- 涓嬫媺閫夋嫨鏂囨。锛堟渶澶?绡囷級
|
||||
### 2. 逐篇精读模式(Deep Read)
|
||||
|
||||
**功能说明**:
|
||||
- 选择1-5篇文档
|
||||
- 深度解读单篇文献
|
||||
- 适合精读、批注、理解
|
||||
|
||||
**技术实现**:
|
||||
- 下拉选择文档(最多5篇)
|
||||
- 调用相同Chat接口
|
||||
- 仅传入选中文档ID
|
||||
|
||||
### 3. 鎵瑰<EFBFBD>鐞嗘ā寮忥紙Batch锛?
|
||||
**鍔熻兘璇存槑**锛?- 閫夋嫨鎵瑰<E98EB5>鐞嗘ā鏉?- 鎵归噺鎻愬彇鏂囨。淇℃伅
|
||||
- 鐢熸垚缁撴瀯鍖栬〃鏍?
|
||||
**鎶€鏈<E282AC>疄鐜?*锛?- 璋冪敤 `/api/v1/batch-tasks` 鎺ュ彛
|
||||
### 3. 批处理模式(Batch)
|
||||
|
||||
**功能说明**:
|
||||
- 选择批处理模板
|
||||
- 批量提取文档信息
|
||||
- 生成结构化表格
|
||||
|
||||
**技术实现**:
|
||||
- 调用 `/api/v1/batch-tasks` 接口
|
||||
- 支持进度查询
|
||||
- 结果导出Excel
|
||||
|
||||
**褰撳墠鐘舵€?*锛氿煍?API鎵ц<E98EB5>寰呰皟璇?
|
||||
**当前状态**:🔧 API执行待调试
|
||||
|
||||
### 4. RAG检索模式(待开发)
|
||||
|
||||
**鍔熻兘璇存槑**锛?- 鍩轰簬鍚戦噺妫€绱?- 绮惧噯瀹氫綅鐩稿叧娈佃惤
|
||||
- 閫傚悎蹇<E6828E>€熸煡鎵?
|
||||
**褰撳墠鐘舵€?*锛氣潓 鍚庣<E98D9A>寰呭疄鐜?
|
||||
**功能说明**:
|
||||
- 基于向量检索
|
||||
- 精准定位相关段落
|
||||
- 适合快速查找
|
||||
|
||||
**当前状态**:❌ 后端待实现
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ 已知问题
|
||||
|
||||
### 1. RAG检索模式未实现 🟡 中优先级
|
||||
|
||||
**闂<EFBFBD><EFBFBD>鎻忚堪**锛?- RAG妫€绱㈡ā寮忔殏鏈<E6AE8F>疄鐜?- 褰撳墠浼樺厛鍏ㄦ枃闃呰<E99783>鍜岄€愮瘒绮捐<E7BBAE>妯″紡
|
||||
**问题描述**:
|
||||
- RAG检索模式暂未实现
|
||||
- 当前优先全文阅读和逐篇精读模式
|
||||
|
||||
**影响**:工作模式选择有限
|
||||
|
||||
**瑙e喅鏂规<EFBFBD>**锛?- v2.1鐗堟湰瀹炵幇RAG妫€绱?- 闆嗘垚Dify鐭ヨ瘑搴撴<E690B4>绱㈣兘鍔?
|
||||
### 2. 鎵瑰<E98EB5>鐞嗘ā鏉挎湁闄?馃煝 浣庝紭鍏堢骇
|
||||
**解决方案**:
|
||||
- v2.1版本实现RAG检索
|
||||
- 集成Dify知识库检索能力
|
||||
|
||||
### 2. 批处理模板有限 🟢 低优先级
|
||||
|
||||
**问题描述**:
|
||||
- 当前只支持1个模板(临床研究信息提取)
|
||||
- 需要更多预设模板和自定义能力
|
||||
|
||||
**闂<><E99782>鎻忚堪**锛?- 褰撳墠鍙<E5A2A0>敮鎸?涓<>ā鏉匡紙涓村簥鐮旂┒淇℃伅鎻愬彇锛?- 闇€瑕佹洿澶氶<E6BEB6>璁炬ā鏉垮拰鑷<E68BB0>畾涔夎兘鍔?
|
||||
**影响**:批处理应用场景有限
|
||||
|
||||
**瑙e喅鏂规<EFBFBD>**锛?- v2.2鐗堟湰澧炲姞鑽<EFBFBD>墿瀹夊叏鎬с€佹偅鑰呭熀绾跨瓑妯℃澘
|
||||
- 鏀<>寔鐢ㄦ埛鑷<E59F9B>畾涔夋ā鏉?
|
||||
**解决方案**:
|
||||
- v2.2版本增加药物安全性、患者基线等模板
|
||||
- 支持用户自定义模板
|
||||
|
||||
### 3. 文档预览功能缺失 🟢 低优先级
|
||||
|
||||
**闂<EFBFBD><EFBFBD>鎻忚堪**锛?- 鏆備笉鏀<E7AC89>寔鏂囨。鍦ㄧ嚎棰勮<E6A3B0>
|
||||
- 闇€涓嬭浇鍚庢煡鐪嬪師鏂?
|
||||
**褰卞搷**锛氱敤鎴蜂綋楠?
|
||||
**瑙e喅鏂规<E98F82>**锛?- v3.0鐗堟湰闆嗘垚PDF棰勮<EFBFBD>鍔熻兘
|
||||
- 鏀<>寔鏂囨。鏍囨敞鍜屾壒娉?
|
||||
**问题描述**:
|
||||
- 暂不支持文档在线预览
|
||||
- 需下载后查看原文
|
||||
|
||||
**影响**:用户体验
|
||||
|
||||
**解决方案**:
|
||||
- v3.0版本集成PDF预览功能
|
||||
- 支持文档标注和批注
|
||||
|
||||
---
|
||||
|
||||
## 馃摑 涓嬩竴姝ュ紑鍙戣<E98D99>鍒?
|
||||
## 📝 下一步开发计划
|
||||
|
||||
### v2.1 版本(短期)
|
||||
|
||||
1. **RAG妫€绱㈡ā寮?* 馃煛
|
||||
- 瀹炵幇鍩轰簬Dify鐨勭煡璇嗗簱妫€绱? - 娣诲姞宸ヤ綔妯″紡閫夋嫨鍣? - 娴嬭瘯妫€绱㈠噯纭<E599AF>害
|
||||
1. **RAG检索模式** 🟡
|
||||
- 实现基于Dify的知识库检索
|
||||
- 添加工作模式选择器
|
||||
- 测试检索准确度
|
||||
|
||||
2. **性能优化** 🟡
|
||||
- 鎵瑰<E98EB5>鐞嗗苟鍙戜紭鍖? - 鏂囨。鍔犺浇缂撳瓨
|
||||
- 批处理并发优化
|
||||
- 文档加载缓存
|
||||
- API响应时间优化
|
||||
|
||||
### v2.2 版本(中期)
|
||||
|
||||
3. **鎵瑰<E98EB5>鐞嗗<E9909E>寮?* 馃煝
|
||||
- 澧炲姞鑽<E5A79E>墿瀹夊叏鎬фā鏉? - 澧炲姞鎮h€呭熀绾跨壒寰佹ā鏉? - 鏀<>寔鑷<E5AF94>畾涔夋ā鏉?
|
||||
3. **批处理增强** 🟢
|
||||
- 增加药物安全性模板
|
||||
- 增加患者基线特征模板
|
||||
- 支持自定义模板
|
||||
|
||||
4. **用户体验优化** 🟢
|
||||
- 文档筛选和排序
|
||||
- 批量操作
|
||||
- 蹇<>嵎閿<E5B58E>敮鎸?
|
||||
### 涓<>湡浠诲姟锛?鍛ㄥ唴锛?
|
||||
5. **RAG妫€绱㈡ā寮?*
|
||||
- 鍚庣<E98D9A>API寮€鍙? - 鍓嶇<E98D93>闆嗘垚
|
||||
- 快捷键支持
|
||||
|
||||
### 中期任务(2周内)
|
||||
|
||||
5. **RAG检索模式**
|
||||
- 后端API开发
|
||||
- 前端集成
|
||||
|
||||
6. **PDF预览增强**
|
||||
- 闆嗘垚PDF鏌ョ湅鍣? - 鏀<>寔鏍囨敞
|
||||
- 集成PDF查看器
|
||||
- 支持标注
|
||||
|
||||
---
|
||||
|
||||
## 📚 相关文档
|
||||
|
||||
### 闇€姹傛枃妗?- [PRD V5.0](./01-闇€姹傚垎鏋?AI%20涓村簥鍖荤敓涓庡尰闄㈢煡璇嗗簱%20-%20MVP%20闃舵<E99783>浜у搧闇€姹傛枃妗?20(PRD)%20V5.0.md)
|
||||
- [鐭ヨ瘑搴撲华琛ㄧ洏V5鍘熷瀷](./01-闇€姹傚垎鏋?鐭ヨ瘑搴撲华琛ㄧ洏V5.html)
|
||||
- [宸ヤ綔鍙癡3鍘熷瀷](./01-闇€姹傚垎鏋?宸ヤ綔鍙癡3.html)
|
||||
### 需求文档
|
||||
- [PRD V5.0](./01-需求分析/AI%20临床医生与医院知识库%20-%20MVP%20阶段产品需求文档%20(PRD)%20V5.0.md)
|
||||
- [知识库仪表盘V5原型](./01-需求分析/知识库仪表盘V5.html)
|
||||
- [工作台V3原型](./01-需求分析/工作台V3.html)
|
||||
|
||||
### 鎶€鏈<EFBFBD>枃妗?- [鏁版嵁搴撹<E690B4>璁<EFBFBD>(./02-鎶€鏈<E282AC><E98F88>璁?01-鏁版嵁搴撹<E690B4>璁?md)
|
||||
### 技术文档
|
||||
- [数据库设计](./02-技术设计/01-数据库设计.md)
|
||||
|
||||
### 寮€鍙戣<EFBFBD>褰?- [2026-01-07 鍓嶇<E98D93>V3璁捐<E79281>瀹炵幇](./06-寮€鍙戣<E98D99>褰?2026-01-07_PKB妯″潡鍓嶇<E98D93>V3璁捐<E79281>瀹炵幇.md)
|
||||
### 开发记录
|
||||
- [2026-01-07 前端V3设计实现](./06-开发记录/2026-01-07_PKB模块前端V3设计实现.md)
|
||||
|
||||
### 测试文档
|
||||
- [涓庡師鍨嬪浘鐨勫樊璺漖(./05-娴嬭瘯鏂囨。/涓庡師鍨嬪浘鐨勫樊璺?md)
|
||||
- [与原型图的差距](./05-测试文档/与原型图的差距.md)
|
||||
|
||||
---
|
||||
|
||||
## 🎓 给新开发者的提示
|
||||
|
||||
### 蹇<EFBFBD>€熶笂鎵?
|
||||
### 快速上手
|
||||
|
||||
1. **了解模块结构**
|
||||
- 闃呰<E99783>鏈<EFBFBD>枃妗d簡瑙e綋鍓嶇姸鎬? - 鏌ョ湅鍘熷瀷HTML浜嗚ВUI璁捐<E79281>
|
||||
- 阅读本文档了解当前状态
|
||||
- 查看原型HTML了解UI设计
|
||||
|
||||
2. **运行项目**
|
||||
```bash
|
||||
@@ -257,14 +337,18 @@ frontend-v2/src/modules/pkb/
|
||||
3. **查看关键代码**
|
||||
- `WorkspacePage.tsx` - 工作台主逻辑
|
||||
- `knowledgeBaseApi.ts` - API调用
|
||||
- `useKnowledgeBaseStore.ts` - 鐘舵€佺<EFBFBD>鐞?
|
||||
- `useKnowledgeBaseStore.ts` - 状态管理
|
||||
|
||||
### 注意事项
|
||||
|
||||
鉁?**搴旇<E690B4>杩欐牱鍋?*锛?1. 浣跨敤Zustand绠$悊鐘舵€?2. 澶嶇敤shared/components涓<73>殑Chat缁勪欢
|
||||
✅ **应该这样做**:
|
||||
1. 使用Zustand管理状态
|
||||
2. 复用shared/components中的Chat组件
|
||||
3. 遵循TailwindCSS样式规范
|
||||
4. 使用Ant Design组件
|
||||
|
||||
鉂?**涓嶈<E6B693>杩欐牱鍋?*锛?1. 鍒涘缓鏂扮殑Chat瀹炵幇
|
||||
❌ **不要这样做**:
|
||||
1. 创建新的Chat实现
|
||||
2. 直接操作DOM
|
||||
3. 使用行内样式
|
||||
4. 忽略TypeScript类型
|
||||
@@ -273,31 +357,45 @@ frontend-v2/src/modules/pkb/
|
||||
|
||||
## 📊 模块统计
|
||||
|
||||
### 浠g爜閲忕粺璁?```
|
||||
鍚庣<EFBFBD>浠g爜锛氱害1,500琛?鍓嶇<E98D93>浠g爜锛氱害2,300琛?鎬昏<E98EAC>锛氱害3,800琛?```
|
||||
### 代码量统计
|
||||
```
|
||||
后端代码:约1,500行
|
||||
前端代码:约2,300行
|
||||
总计:约3,800行
|
||||
```
|
||||
|
||||
### 寮€鍙戣繘搴?```
|
||||
### 开发进度
|
||||
```
|
||||
整体进度:约75%
|
||||
|
||||
- 鍚庣<EFBFBD>API锛?00% 鉁?- Dashboard椤甸潰锛?0% 鉁?- Workspace椤甸潰锛?5% 鉁?- 鍏ㄦ枃闃呰<E99783>妯″紡锛?0% 鉁?- 閫愮瘒绮捐<E7BBAE>妯″紡锛?5% 鉁?- 鎵瑰<E98EB5>鐞嗘ā寮忥細70% 馃敡
|
||||
- RAG妫€绱㈡ā寮忥細0% 鉂?```
|
||||
- 后端API:100% ✅
|
||||
- Dashboard页面:90% ✅
|
||||
- Workspace页面:85% ✅
|
||||
- 全文阅读模式:90% ✅
|
||||
- 逐篇精读模式:85% ✅
|
||||
- 批处理模式:70% 🔧
|
||||
- RAG检索模式:0% ❌
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔗 Git提交记录
|
||||
|
||||
**鏈€鏂版彁浜?*锛?```
|
||||
**最新提交**:
|
||||
```
|
||||
5a17d09 feat(pkb): Complete PKB module frontend migration with V3 design
|
||||
```
|
||||
|
||||
**鎻愪氦鍐呭<EFBFBD>**锛?- 鍚庣<E98D9A>妯″潡杩佺Щ鍒?/modules/pkb
|
||||
**提交内容**:
|
||||
- 后端模块迁移到 /modules/pkb
|
||||
- 前端V3设计实现
|
||||
- 3绉嶅伐浣滄ā寮忔<EFBFBD>鏋?- Chat缁勪欢闆嗘垚
|
||||
- 3种工作模式框架
|
||||
- Chat组件集成
|
||||
|
||||
---
|
||||
|
||||
**最后更新:** 2026-01-07
|
||||
**鏂囨。缁存姢锛?* PKB妯″潡寮€鍙戝洟闃?
|
||||
**鑱旂郴鏂瑰紡锛?* 椤圭洰Issues
|
||||
**文档维护:** PKB模块开发团队
|
||||
**联系方式:** 项目Issues
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user