9.8 KiB
9.8 KiB
7-68 WeKnora 知识库页面 UI 参考
状态:reference
范围:只记录 WeKnora 知识库页面可嫁接的页面结构、状态与 MNote 字段映射;不修改 MNote runtime,不修改 WeKnora 源码。
结论
7-68 的知识库页不应继续保留 MNote 原来的简陋“知识库设置面板”形态。更合适的嫁接目标是复用 WeKnora 的“知识库列表 + 知识库详情文档管理页”体验:列表页提供知识库卡片、分组、上传进度和能力徽标;详情页提供面包屑、文档/ Wiki / 图谱页签、标签侧栏、文档筛选栏、网格/列表切换、上传入口、解析状态和批量管理。
MNote 应保留本地 source registry、allowed roots、workspace path、provider 映射和打开引用能力;WeKnora 页面结构只作为 UI / 交互参考,不直接接管 MNote 的事实源、鉴权、文件写入或索引生命周期。
WeKnora 源文件
/mnt/Data1T/Mnote_data/weknora/WeKnora/frontend/src/views/knowledge/KnowledgeBaseList.vue- 知识库列表页主入口。
- 核心结构:
kb-list-container、ListSpaceSidebar、标题区、未初始化提示、上传进度面板、知识库卡片网格、分组标题、收藏 / 置顶 / 设置 / 删除菜单、能力徽标。
/mnt/Data1T/Mnote_data/weknora/WeKnora/frontend/src/views/knowledge/KnowledgeBase.vue- 单个知识库详情页主入口。
- 核心结构:
knowledge-layout、面包屑 +KBSwitcherDropdown、KBInfoPopover、设置按钮、Documents / Wiki / Graph 页签、标签侧栏、文档筛选栏、文档卡片网格、列表视图、DocContent抽屉。
/mnt/Data1T/Mnote_data/weknora/WeKnora/frontend/src/views/knowledge/components/DocumentListView.vue- 文档列表视图。
- 核心结构:吸顶表头、复选框、多列 row、来源、大小、解析状态、更新时间、行菜单。
/mnt/Data1T/Mnote_data/weknora/WeKnora/frontend/src/views/knowledge/components/KbUploadSourceDropdown.vue- 添加文档入口。
- 支持上传文件、上传文件夹、导入 URL,可选手动创建。
/mnt/Data1T/Mnote_data/weknora/WeKnora/frontend/src/views/knowledge/components/DocumentBatchBar.vue- 批量选择后的浮动操作条。
/mnt/Data1T/Mnote_data/weknora/WeKnora/frontend/src/components/knowledge-processing-timeline.vue- 解析 / 后处理 trace 时间线。
- 显示 docreader、chunking、embedding、multimodal、postprocess 等阶段,以及 live polling、失败、取消和耗时。
/mnt/Data1T/Mnote_data/weknora/WeKnora/frontend/src/components/empty-knowledge.vue- 空知识库占位。
/mnt/Data1T/Mnote_data/weknora/WeKnora/frontend/src/api/knowledge-base/index.ts- API 字段参考:
listKnowledgeBases、getKnowledgeBaseById、uploadKnowledgeFile、createKnowledgeFromURL、listKnowledgeFiles、reparseKnowledge、cancelKnowledgeParse、batchDeleteKnowledge、getKnowledgeSpans。
- API 字段参考:
/mnt/Data1T/Mnote_data/weknora/WeKnora/frontend/src/i18n/locales/zh-CN.ts- 中文文案参考:
knowledgeBase、knowledgeList、knowledgeEditor。
- 中文文案参考:
可嫁接页面结构
1. 知识库列表
最小结构:
- 左侧范围筛选:全部 / 我的 / 收藏 / 最近 / 空间,MNote 首版可降级为全部 + 当前 workspace。
- 顶部标题:
知识库,副标题采用 WeKnora 语义“管理和组织您的知识库,支持文档型和问答型知识库”。 - 新建按钮:图标按钮或小按钮,接 MNote 创建 KB / 绑定本地 folder 的流程。
- 全局状态提示:
- 未初始化 / provider 未连接提示。
- 上传或索引中的 progress panel。
- 卡片网格:
- 标题、描述。
- 文档数量 / FAQ 数量 / processing loading。
- 能力徽标:知识图谱、多模态、问题生成、共享。
- 卡片菜单:置顶、设置、删除。
- hover 显示边框与更多按钮。
MNote 首版不需要完整照搬 WeKnora 的组织共享分组,但应保留分组能力的视觉槽位,避免后续 workspace / shared KB 接入时重做页面。
2. 知识库详情
最小结构:
- 面包屑:
知识库 / 当前知识库 / 文档。 - 当前 KB 下拉切换:参考
KBSwitcherDropdown,MNote 可映射为当前 workspace 下 KB registry。 - 右侧动作:信息 popover、设置按钮。
- 文档页签:
文档为默认主视图。- 若 provider 暴露 wiki / graph 能力,再显示
Wiki、图谱页签。
- 左侧标签侧栏:
文档分类标题、数量、搜索、标签列表、新建 / 重命名 / 删除。- MNote 首版可先映射为 source kind / folder / tag,不能伪造 WeKnora 后端 tag 写入。
- 主内容筛选栏:
- 搜索文档。
- 文件类型筛选。
- 解析状态筛选。
- 来源筛选。
- 更新时间范围。
- 网格 / 列表切换。
- 添加文档入口。
- 文档区:
- skeleton loading。
- grid 卡片作为默认视图。
- list 作为密集视图。
- 空状态。
- 批量选择浮动条。
- 文档详情:
- 点击文档打开
DocContent风格抽屉,展示全文、分块、原文件 / 引用。
- 点击文档打开
3. 上传与导入
参考 KbUploadSourceDropdown.vue 的四类入口:
- 上传文档。
- 上传文件夹。
- 导入网页 URL。
- 手动创建。
MNote 映射时应改成:
- 上传文档 / 文件夹:落到 MNote local-first source registry,记录 local path / providerKnowledgeBaseId / providerKnowledgeId,再交 WeKnora provider ingest。
- 导入 URL:可作为 provider source,不对应本地文件。
- 手动创建:如果没有明确的 MNote 文档创建语义,首版不启用,避免产生第二套正文事实源。
4. 状态与交互
WeKnora 的文档状态结构可直接作为 MNote UI 状态模型参考:
pending/processing:显示 loading、解析中,可打开 trace。finalizing:主解析完成但 summary / question / graph 等后处理仍在跑。failed:红色失败状态,可重建 / 查看 trace。cancelled:黄色取消状态。draft:草稿。completed:绿色完成。completed + summary pending/processing:显示“生成摘要中”。
重要交互:
- 卡片和列表都能打开文档详情。
- 更多菜单提供重建、取消解析、移动、批量管理、删除。
- 解析中 / 失败状态应能打开 trace。
- 网格 / 列表视图选择可持久化到 localStorage。
- 批量选择不能与普通打开文档冲突。
MNote 字段映射
| WeKnora UI 字段 | MNote 映射建议 |
|---|---|
kb.id |
MNote knowledge_base_id / registry entry id |
kb.name |
知识库显示名,默认可来自 folder name |
kb.description |
registry description / provider description |
kb.type |
MNote 首版固定 document,FAQ 暂不作为主路径 |
kb.knowledge_count |
provider 文档数 + registry source count |
kb.chunk_count |
provider chunk count,可从 WeKnora status / search metadata 显示 |
kb.isProcessing |
registry processing count 或 provider parse in-flight count |
extract_config.enabled |
WeKnora graph / MNote graph capability |
vlm_config.enabled |
多模态 / 图片解析能力 |
question_generation_config.enabled |
问题生成能力 |
storage_provider_config.provider |
provider / vector store / file store 显示,不作为 MNote 文件事实源 |
knowledge.id |
providerKnowledgeId |
knowledge.file_name |
source display name / local file basename |
knowledge.file_type |
文件扩展名 / source kind |
knowledge.file_size |
source file size,URL/manual 可为空 |
knowledge.tag_id |
MNote tag / folder / source group 映射,首版可只读 |
knowledge.parse_status |
provider parse status |
knowledge.summary_status |
provider postprocess status |
knowledge.channel |
web / api / url / manual / local upload 映射 |
knowledge.source |
local path / URL / provider source |
knowledge.updated_at |
registry updated_at 或 provider updated_at |
不能直接接管的边界
- 不直接把 WeKnora Vue 组件复制进 MNote runtime;MNote 当前主壳是 Rust SSR / browser runtime,不是 WeKnora Vue 应用。
- 不让 WeKnora 成为 MNote 的文件事实源;本地
.md、source registry、workspace path、allowed roots 仍归 MNote。 - 不把 WeKnora 的 tenant / organization / share 语义直接套到 MNote;MNote 的 auth、membership、share grants 由 Rust SQLite control-plane 管。
- 不把 WeKnora 的 tag 删除语义直接映射到 MNote folder 删除;WeKnora tag delete 可能级联删除文档,MNote 需要独立确认。
- 不直接启用手动创建文档,除非 MNote 明确将其映射到本地文件或页面创建命令。
- 不直接复用 WeKnora 的轮询策略作为 MNote 主链;MNote 可展示 provider status,但刷新应优先走 MNote watcher / event / command result。
- 不直接暴露 WeKnora 的删除 KB / 删除文档为本地文件删除;首版删除应只删除 provider index 与 registry 映射,是否删除本地文件必须单独确认。
- 不把 WeKnora
Wiki/Graph页签默认显示为可用;只有 provider capability 明确可用时展示。
MNote 最小呈现建议
首版替换原知识库设置面板时,建议至少实现以下可见结构:
- 知识库列表页:标题、副标题、新建/绑定入口、KB 卡片网格、文档数、processing 状态、provider 能力徽标、设置入口。
- 知识库详情页:面包屑、KB 切换、文档分类侧栏、搜索/筛选栏、添加文档下拉、网格/列表切换。
- 文档项:文件名、描述/摘要、标签或来源、文件类型、更新时间、解析状态、打开引用。
- 状态层:pending / processing / finalizing / completed / failed / cancelled / draft 至少要有不同视觉表达。
- 安全边界:删除、移动、手动创建、共享、Wiki / Graph、tag 写入可以先隐藏或只读,避免 UI 暗示已具备不可逆能力。