1. 页面概览

1.1 是什么

知识库分层树页面(KnowledgeTreePage.vue,V5 Stage 2 B2-5)是知识库「多格式解析 + 分层摘要树」能力的前端入口。与旧版扁平视图(KnowledgeBasePage.vue)并存:新文档写入 kdoc_nodes 三层树(document → section → chunk),本页展示该树并提供混合检索(结果带 node_path 标题链与来源标注)。

1.2 核心价值

能力说明
多格式创建text / markdown / html / pdf / docx 五种格式
分层大纲树document → section → chunk 三层,缩进可折叠
标题链检索检索结果附 node_path 标题链,定位到章节
来源诚实标注命中区分「分层树」与旧「块表」来源

1.3 一句话总结

知识库分层树页是知识文档的「大纲视图」:多格式解析入库、三层树展示结构、检索带回标题链,让知识不再是一堆平铺的块。

2. 访问入口

2.1 路由与菜单

2.2 认证与权限

2.3 端口与 API 前缀

端口:18080(AIP 后端)。API 前缀:/aip-api/v1(Vite 代理到 18080 并重写为 /api/v1)。

3. 界面布局

知识库 · 分层摘要树(页头 + 「刷新」)
└─ 操作结果提示条
└─ 两栏网格(左 280~380px + 右 1fr)
   ├─ 左列
   │   ├─ 卡片「文档列表」:按标题过滤 + 「过滤」;文档项(格式徽标 + 标题 + vN · 时间)
   │   └─ 卡片「创建文档」:标题 / 格式下拉 / 标签 /(内容 textarea 或 文件上传)+ 「创建文档」
   └─ 右列
       ├─ 卡片「文档大纲」:树(文档/章节/块徽标 + 标题 + #ord · Ntk + 折叠箭头)
       └─ 卡片「混合检索」:输入 + 「检索」;结果(score + 来源徽标 + 标题 + node_path + 内容 + URI)

各板块职责:

4. 交互元素详解

4.1 文档列表

控件含义操作效果后端调用
输入「按标题过滤」+ 按钮「过滤」按标题关键字过滤文档回车或点「过滤」重载列表GET /knowledge/documents?keyword=
文档项单篇文档(格式徽标 + 标题 + vN · 更新时间)点击选中并加载大纲与详情GET /knowledge/documents/:id、GET .../outline
按钮「刷新」重载文档列表选中文档时同时刷新大纲同上

4.2 创建文档

控件含义操作效果后端调用
输入「标题」文档标题必填(否则「创建文档」按钮禁用)POST /knowledge/documents
下拉「格式」文档格式TEXT / MARKDOWN / HTML / PDF / DOCX(大写)同上(format)
输入「标签」逗号分隔标签placeholder「逗号分隔,如:销售,口径」同上(tags 数组)
文本域「内容」text/markdown/html 内容markdown 的 #/##/### 生成分层章节同上(content)
文件选择器pdf/docx 文件前端 FileReader 转 base64(去 data URL 前缀)同上(content=base64)
按钮「创建文档」/「创建并索引中...」提交创建成功提示「创建成功:N 个树节点 / M 个块」;PDF 降级解析附注「(PDF 降级解析)」POST /knowledge/documents(timeout 120s)

4.3 文档大纲与检索

5. 后端关联

5.1 API 客户端

本页使用 action/web/src/api/knowledgeTreeApi.js,复用 aipClient(baseURL /aip-api/v1)。unwrap 统一解析 {code, message, data}createDocument 对 pdf/docx 内部转 base64;sourceLabel 将 tree/blocks 映射为「分层树」「旧表」。

5.2 端点表

方法路径(前缀 /aip-api/v1)请求体用途
GET/knowledge/documentskeyword?文档列表
GET/knowledge/documents/:id文档详情(含 nodes 与旧表 chunks)
GET/knowledge/documents/:id/outline文档大纲树(document → section → chunk)
POST/knowledge/documents{title, format, content, tags, directory_id?}创建文档(pdf/docx content=base64)
POST/knowledge/search{query, top_k}混合检索(结果含 node_path 与来源)
GET/knowledge/directories目录列表(供 createDocument 可选目录)
GET/knowledge/tags标签列表
DELETE/knowledge/documents/:id删除文档(软删归档)

5.3 关键机制

6. 权限与安全

7. 常见问题与排错

7.1 选中文档大纲提示「该文档无分层树」

现象:文档大纲为空态「该文档无分层树(旧扁平文档或索引未完成)。」。原因:该文档是分层树上线前创建的旧扁平文档,未写入 kdoc_nodes;或索引未完成。处理:在旧版「知识库」页查看其分块,或在「创建文档」重新编辑内容触发重建。

7.2 上传 PDF 创建成功但提示「PDF 降级解析」

现象:创建提示带「(PDF 降级解析)」。原因:后端 PDF 解析失败,回退纯文本近似提取(parser=pdf-degraded)。处理:属降级路径而非错误,树结构与向量索引仍会生成;若内容结构缺失严重,改用 markdown 文本创建。

7.3 创建文档按钮一直禁用

现象:「创建文档」按钮灰色无法点击。原因:createReady 为 false——标题为空,或文本格式内容为空,或二进制格式未选择文件。处理:补全标题 +(文本内容 或 选择 pdf/docx 文件)后再试。

7.4 检索结果只有旧表来源

现象:检索命中全标「旧表」(src-blocks),无「分层树」。原因:当前文档都是旧扁平文档(无 kdoc_nodes),或新文档尚未建树成功。处理:用「创建文档」重建内容;确认创建成功提示中有「N 个树节点」。

8. 已知缺陷与边界

项目说明
section/document 无 LLM 摘要B2-5 刻意不做摘要,仅建结构树与 chunk 向量
PDF 解析可能降级依赖纯 Go 库,复杂版式会回退文本近似提取
旧扁平文档无树存量文档不自动重建树,需编辑内容触发
大纲一次性展平折叠通过前端重建 rows 实现,超大文档渲染开销偏大
无删除/版本入口本页只管查看与创建,删除/版本管理在「知识库管理」页

相邻页面知识库管理 · 实体关系抽取 · 元数据语义标注