Files
mnote/design/07-ai/reference/7-68-weknora-kb-page-ui-reference-v1.md
T

9.8 KiB
Raw Blame History

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-containerListSpaceSidebar、标题区、未初始化提示、上传进度面板、知识库卡片网格、分组标题、收藏 / 置顶 / 设置 / 删除菜单、能力徽标。
  • /mnt/Data1T/Mnote_data/weknora/WeKnora/frontend/src/views/knowledge/KnowledgeBase.vue
    • 单个知识库详情页主入口。
    • 核心结构:knowledge-layout、面包屑 + KBSwitcherDropdownKBInfoPopover、设置按钮、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 字段参考:listKnowledgeBasesgetKnowledgeBaseByIduploadKnowledgeFilecreateKnowledgeFromURLlistKnowledgeFilesreparseKnowledgecancelKnowledgeParsebatchDeleteKnowledgegetKnowledgeSpans
  • /mnt/Data1T/Mnote_data/weknora/WeKnora/frontend/src/i18n/locales/zh-CN.ts
    • 中文文案参考:knowledgeBaseknowledgeListknowledgeEditor

可嫁接页面结构

1. 知识库列表

最小结构:

  • 左侧范围筛选:全部 / 我的 / 收藏 / 最近 / 空间,MNote 首版可降级为全部 + 当前 workspace。
  • 顶部标题:知识库,副标题采用 WeKnora 语义“管理和组织您的知识库,支持文档型和问答型知识库”。
  • 新建按钮:图标按钮或小按钮,接 MNote 创建 KB / 绑定本地 folder 的流程。
  • 全局状态提示:
    • 未初始化 / provider 未连接提示。
    • 上传或索引中的 progress panel。
  • 卡片网格:
    • 标题、描述。
    • 文档数量 / FAQ 数量 / processing loading。
    • 能力徽标:知识图谱、多模态、问题生成、共享。
    • 卡片菜单:置顶、设置、删除。
    • hover 显示边框与更多按钮。

MNote 首版不需要完整照搬 WeKnora 的组织共享分组,但应保留分组能力的视觉槽位,避免后续 workspace / shared KB 接入时重做页面。

2. 知识库详情

最小结构:

  • 面包屑:知识库 / 当前知识库 / 文档
  • 当前 KB 下拉切换:参考 KBSwitcherDropdownMNote 可映射为当前 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 首版固定 documentFAQ 暂不作为主路径
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 sizeURL/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 runtimeMNote 当前主壳是 Rust SSR / browser runtime,不是 WeKnora Vue 应用。
  • 不让 WeKnora 成为 MNote 的文件事实源;本地 .md、source registry、workspace path、allowed roots 仍归 MNote。
  • 不把 WeKnora 的 tenant / organization / share 语义直接套到 MNoteMNote 的 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 最小呈现建议

首版替换原知识库设置面板时,建议至少实现以下可见结构:

  1. 知识库列表页:标题、副标题、新建/绑定入口、KB 卡片网格、文档数、processing 状态、provider 能力徽标、设置入口。
  2. 知识库详情页:面包屑、KB 切换、文档分类侧栏、搜索/筛选栏、添加文档下拉、网格/列表切换。
  3. 文档项:文件名、描述/摘要、标签或来源、文件类型、更新时间、解析状态、打开引用。
  4. 状态层:pending / processing / finalizing / completed / failed / cancelled / draft 至少要有不同视觉表达。
  5. 安全边界:删除、移动、手动创建、共享、Wiki / Graph、tag 写入可以先隐藏或只读,避免 UI 暗示已具备不可逆能力。