# 知识库页面路由和 Mock 数据说明 ## 一、知识库页面路由结构 ### 1. 主路由 `/knowledge` - **面包屑名称**: 知识库管理 - **显示**: 是 ### 2. 二级路由 #### 2.1 知识库列表 `/knowledge/knowledgeLib` - **面包屑名称**: 知识库 - **显示**: 是 - **页面文件**: `src/pages/knowledgeLib/list/index.tsx` - **子路由**: - `/knowledge/knowledgeLib` (列表首页) - `/knowledge/knowledgeLib/create` (创建知识库) - `/knowledge/knowledgeLib/:knowledgeId/:createBy` (知识库详情) #### 2.2 修订工具 `/knowledge/revisionTool` - **面包屑名称**: 修订工具 - **显示**: 是 - **页面文件**: `src/pages/knowledgeLib/revisionTool/list/index.tsx` ### 3. 三级页面和弹出层 #### 3.1 知识库详情页面 `/knowledge/knowledgeLib/:knowledgeId/:createBy` - **面包屑名称**: 知识库详情 - **显示**: 否(隐藏) - **页面文件**: `src/pages/knowledgeLib/detail/index.tsx` - **功能**: - 文档列表管理 - 文档上传 - 文档编辑 - 文档删除 - 文档配置 - 切片管理 - 引用知识库 #### 3.2 弹出层组件 ##### 3.2.1 InfoModal - **用途**: 文档重命名 - **文件**: `src/pages/knowledgeLib/detail/components/InfoModal.tsx` ##### 3.2.2 InfoModalSetting - **用途**: 文档配置设置 - **文件**: `src/pages/knowledgeLib/detail/components/InfoModalSetting.tsx` ##### 3.2.3 UploadModal - **用途**: 文档上传 - **文件**: `src/pages/knowledgeLib/detail/components/UploadModal.tsx` ##### 3.2.4 MdModal - **用途**: 切片查看和编辑 - **文件**: `src/pages/knowledgeLib/detail/components/MdModal.tsx` ##### 3.2.5 QuoteModal - **用途**: 引用知识库 - **文件**: `src/pages/knowledgeLib/detail/components/QuoteModal.tsx` ##### 3.2.6 PrevewSlice - **用途**: 切片预览 - **文件**: `src/pages/knowledgeLib/detail/components/prevewSlice.tsx` #### 3.3 修订工具页面组件 ##### 3.3.1 ReviseDrawer - **用途**: 修订抽屉组件 - **文件**: `src/pages/knowledgeLib/revisionTool/components/reviseDrawer.tsx` ##### 3.3.2 RevisionHistory - **用途**: 修订历史记录 - **文件**: `src/pages/knowledgeLib/revisionTool/components/revisionHistory.tsx` ## 二、API 接口 Mock 数据 ### 1. Mock 数据文件 #### 1.1 主 Mock 数据文件 - **文件**: `src/mock/index.ts` - **包含数据**: - `mockKnowledgeLibList`: 知识库列表数据(8 条) - `mockKnowledgeLibDetail`: 知识库详情数据 - `mockDocumentList`: 文档列表数据(5 条) - `mockSliceList`: 切片列表数据(5 条) - `mockReviseToolList`: 修订工具列表数据(3 条) - `mockReviseHistoryList`: 修订历史数据(2 条) - `mockEmbeddingList`: 向量化模型列表(3 条) - `mockParsingTypeList`: 解析类型列表(4 条) - `mockSplittingTypeList`: 切分规则列表(4 条) - `mockStandardClassificationList`: 标准分类列表(3 条) - `mockRevisionStatusList`: 修订状态列表(2 条) - `mockChatHistoryList`: 聊天记录列表(2 条) #### 1.2 Mock API 拦截器 - **文件**: `src/mock/knowledgeApi.ts` - **功能**: 提供所有知识库相关 API 的 Mock 实现 ### 2. Mock API 接口列表 #### 2.1 知识库管理 API | 接口 | 方法 | Mock 函数 | 说明 | |------|------|----------|------| | `/bigmodel/api/knowledgeList` | POST | `mockFetchKnowledgeLibList` | 获取知识库列表 | | `/bigmodel/api/detailKnowledge/:id` | GET | `mockFetchKnowledgeLibDetail` | 获取知识库详情 | | `/bigmodel/api/createKnowledge` | POST | `mockCreateKnowledgeLib` | 创建知识库 | | `/bigmodel/api/updateKnowledge/:id` | PUT | `mockModifyKnowledgeLib` | 修改知识库 | | `/bigmodel/api/delKnowledge/:id` | DELETE | `mockDeleteKnowledgeLib` | 删除知识库 | | `/bigmodel/api/embedding` | GET | `mockFetchEmbeddingList` | 获取向量化模型列表 | #### 2.2 文档管理 API | 接口 | 方法 | Mock 函数 | 说明 | |------|------|----------|------| | `/bigmodel/api/documentList` | POST | `mockFetchDocumentLibList` | 获取文档列表 | | `/bigmodel/api/documentDetail/:id` | GET | `mockFetchDocumentLibDetail` | 获取文档详情 | | `/bigmodel/api/updateDocument/:id` | PUT | `mockModifyDocumentLib` | 修改文档 | | `/bigmodel/api/delDocument/:id` | DELETE | `mockDeleteDocumentLib` | 删除文档 | | `/bigmodel/api/uploadDocument/:knowledgeId` | POST | `mockUploadDocument` | 上传文档 | | `/bigmodel/api/documentSetting/:id` | GET | `mockFetchDocumentSetting` | 获取文档配置 | | `/bigmodel/api/updateDocumentSetting/:id` | PUT | `mockModifyDocumentSetting` | 修改文档配置 | #### 2.3 切片管理 API | 接口 | 方法 | Mock 函数 | 说明 | |------|------|----------|------| | `/bigmodel/api/getSliceList` | POST | `mockFetchSliceList` | 获取切片列表 | | `/bigmodel/api/getSliceDetail/:sliceId/:knowledgeId` | GET | `mockFetchSliceDetail` | 获取切片详情 | | `/bigmodel/api/add/slice` | POST | `mockAddSlice` | 新增切片 | | `/bigmodel/api/updateSliceInfo` | PUT | `mockModifySlice` | 修改切片 | | `/bigmodel/api/deleteSlice/:sliceId/:knowledgeId/:documentId` | DELETE | `mockDeleteSlice` | 删除切片 | #### 2.4 修订工具 API | 接口 | 方法 | Mock 函数 | 说明 | |------|------|----------|------| | `/deepseek/revise/pageList` | GET | `mockFetchReviseToolList` | 获取修订工具列表(分页) | | `/deepseek/revise/list` | GET | `mockFetchReviseToolAllList` | 获取修订工具列表(不分页) | | `/deepseek/revise/sliceList` | GET | `mockFetchReviseToolSliceList` | 获取修订切片列表 | | `/deepseek/revise/reviseSlice` | PUT | `mockSubmitReviseSlice` | 提交修订切片 | | `/deepseek/revise/reviseHistoryList` | GET | `mockFetchReviseHistoryList` | 获取修订历史列表 | #### 2.5 字典数据 API | 接口 | 方法 | Mock 函数 | 说明 | |------|------|----------|------| | `/deepseek/api/standard_classification` | GET | `mockFetchTakaiAppTypeList` | 获取标准分类 | | `/deepseek/api/parsing_type` | GET | `mockFetchTakaiAppTypeList` | 获取解析类型 | | `/deepseek/api/splitting_type` | GET | `mockFetchTakaiAppTypeList` | 获取切分规则 | | `/deepseek/api/revision_status` | GET | `mockFetchTakaiAppTypeList` | 获取修订状态 | #### 2.6 聊天记录 API | 接口 | 方法 | Mock 函数 | 说明 | |------|------|----------|------| | `/bigmodel/api/chatHistory/list` | POST | `mockFetchChatHistoryList` | 获取聊天记录列表 | | `/bigmodel/api/dialog/export/:id` | POST | `mockExportChatHistory` | 导出聊天记录 | ## 三、Mock 数据示例 ### 3.1 知识库列表数据示例 ```json { "knowledgeId": "kb001", "name": "政务公文知识库", "createBy": "admin", "standardClassification": "0", "splittingType": "1", "docCount": 128, "sliceCount": 1024, "createTime": "2024-01-15 10:30:00", "updateTime": "2024-01-19 10:30" } ``` ### 3.2 文档列表数据示例 ```json { "id": "doc001", "name": "政务服务指南.pdf", "url": "/files/doc001.pdf", "length": 1024000, "sentenceSize": 150, "knowledgeType": 1, "customSeparator": ["\\n"], "embeddingStat": 1, "wordNum": 5000, "parseImage": 0, "createTime": "2024-01-15 10:30:00", "updateTime": "2024-01-19 10:30", "knowledgeId": "kb001", "knowledgeName": "政务公文知识库", "status": "completed" } ``` ### 3.3 切片列表数据示例 ```json { "sliceId": "slice001", "knowledgeId": "kb001", "documentId": "doc001", "sliceText": "政务服务是指政府机关通过多种渠道和方式,为公民、法人和其他组织提供的各类公共服务。", "sliceNum": 1, "createTime": "2024-01-15 10:30:00", "updateTime": "2024-01-19 10:30", "status": "active" } ``` ## 四、启用/禁用 Mock 在 `src/apis/api.ts` 中修改 `USE_MOCK` 常量: ```typescript // 是否启用 Mock 模式 const USE_MOCK = true; // 启用 Mock // const USE_MOCK = false; // 禁用 Mock,使用真实 API ``` ## 五、测试路由 ### 5.1 访问知识库列表 ``` http://localhost:3100/knowledge/knowledgeLib ``` ### 5.2 访问创建知识库页面 ``` http://localhost:3100/knowledge/knowledgeLib/create ``` ### 5.3 访问知识库详情页面 ``` http://localhost:3100/knowledge/knowledgeLib/kb001/admin ``` ### 5.4 访问修订工具页面 ``` http://localhost:3100/knowledge/revisionTool ``` ## 六、注意事项 1. **路由配置**: 所有路由已在 `src/store/route.tsx` 中配置完成 2. **Mock 数据**: 所有 API 接口已配置 Mock 数据,无需后端即可测试 3. **弹出层**: 所有弹出层组件均为页面内组件,不需要单独路由 4. **路由参数**: 知识库详情页面使用 `:knowledgeId/:createBy` 作为路由参数 5. **权限控制**: 页面中的操作按钮根据用户权限和配置显示/隐藏 ## 七、文件清单 ### 7.1 路由文件 - `src/store/route.tsx` - 路由配置 ### 7.2 页面文件 - `src/pages/knowledgeLib/list/index.tsx` - 知识库列表 - `src/pages/knowledgeLib/detail/index.tsx` - 知识库详情 - `src/pages/knowledgeLib/revisionTool/list/index.tsx` - 修订工具列表 ### 7.3 组件文件 - `src/pages/knowledgeLib/detail/components/InfoModal.tsx` - `src/pages/knowledgeLib/detail/components/InfoModalSetting.tsx` - `src/pages/knowledgeLib/detail/components/UploadModal.tsx` - `src/pages/knowledgeLib/detail/components/MdModal.tsx` - `src/pages/knowledgeLib/detail/components/QuoteModal.tsx` - `src/pages/knowledgeLib/detail/components/prevewSlice.tsx` - `src/pages/knowledgeLib/revisionTool/components/reviseDrawer.tsx` - `src/pages/knowledgeLib/revisionTool/components/revisionHistory.tsx` ### 7.4 Mock 文件 - `src/mock/index.ts` - Mock 数据 - `src/mock/knowledgeApi.ts` - Mock API 拦截器 - `src/apis/api.ts` - API 配置(含 Mock 支持)