Skip to content

📚 条目管理

概述

条目(CAIU)是知识库的基本单元,每个条目包含标题、内容、标签和元数据。"条目管理"就是对这些知识卡片进行增删改查、批量操作和分类组织的工作。

核心场景

  • 你需要把零散的笔记整理为结构化的知识条目
  • 想给条目打上标签,方便按主题分类检索
  • 需要批量调整条目的优先级、启用状态
  • 想快速找到特定标签或关键词的条目

条目列表

进入知识库工作区后,左侧会展示当前知识库的条目列表,采用卡片布局展示。每个条目卡片显示:

信息说明
标题(Key)条目的唯一标识名称
摘要内容前 100 字符的快照
标签条目关联的标签名(最多展示 3 个,超出显示 "+N")
优先级非默认优先级(≠100)会以 PX 形式标注
向量化状态通过闪电图标颜色标识:🟢 就绪 / 🟡 处理中 / 🔴 失败 / ⚪ 未向量化
启用开关单条切换启用/禁用状态
Token 数该条目累计消耗的 Token 数
更新时间最后修改日期

列表支持按 更新时间标题(Key)优先级 排序,以及升序/降序切换。

TODO: 截图 - 条目列表界面,标注卡片布局的各元素

搜索

列表顶部的搜索框支持对条目标题(Key)和内容摘要进行关键词搜索,并触发后端语义检索返回更精确的结果。搜索时会显示匹配数量和搜索状态。

TODO: 截图 - 搜索界面

添加条目

手动创建

在工作区点击 添加条目 按钮,弹出编辑界面:

  1. 标题(Key):必填,作为条目的唯一标识
  2. 内容(Content):可选的 Markdown 正文
  3. 标签:可选的标签列表
  4. 优先级:默认为 100

创建完成后会自动选中新条目,方便继续编辑。

TODO: 截图 - 添加条目弹窗,标注各输入区域

批量导入文件

支持从本地导入文件,系统会自动处理:

支持的导入方式:

  • 拖放文件:直接将文件拖到工作区
  • 选择文件:点击"选择文件"按钮
  • 批量导入:一次性选择多个文件

文件处理逻辑:

  • 读取文件内容作为条目的 Content
  • 自动提取第一个 Markdown 一级标题作为 Key(可在设置中关闭)
  • 自动识别 Tags: xxx标签: xxx 标记行添加标签(可在设置中关闭)
  • 对内容相同的文件自动去重(可在设置中关闭)

导入结果反馈: 成功导入后,会显示:

  • 成功导入的条目数量
  • 跳过的文件数(非文本格式)
  • 去重过滤掉的文件数

TODO: 截图 - 导入文件后的结果反馈弹窗

编辑条目

内容编辑

点击列表中的条目,右侧会展示完整的条目编辑器:

  • 标题:可编辑条目的 Key
  • 正文:Markdown 编辑器(基于 RichCodeEditor),支持语法高亮和实时预览
  • 标签:带权重的标签管理器,支持添加/删除标签以及 AI 辅助生成
  • 优先级:调整检索权重(数值 0-999)
  • 启用开关:禁用后该条目不会出现在搜索结果中

编辑采用自动保存机制:内容发生变化后约 800ms 自动触发保存,无需手动点击按钮。保存时系统会自动:

  1. 计算新的内容哈希
  2. 更新元数据中的摘要和标签快照
  3. 如果开启了自动向量化,触发重新向量化

条目头部会显示"正在保存..."或"已保存 HH:mm:ss"的状态指示。

TODO: 截图 - 右侧条目编辑器,标注各编辑区域

AI 辅助标签生成

在编辑条目时,可以点击 AI 生成 按钮,系统会调用已配置的 LLM 模型自动分析内容并推荐标签。生成逻辑包括:

  • 基于内容语义提取 3-5 个核心标签
  • 每个标签附带权重(0.0~1.0)
  • 优先使用已有的专业术语

标签生成可以在 设置 > 标签生成 中配置:

配置项说明
启用 AI 标签生成主开关
生成模型指定用于标签生成的 LLM(建议轻量模型)
生成提示词自定义提示词模板,使用 {content} 占位
温度控制生成随机性(建议 0.3 以下)

TODO: 截图 - AI 标签生成结果展示

批量操作

在工作区顶部可以进入条目管理模式(勾选模式),选中多个条目后进行批量操作。

批量启用/禁用

选中多个条目后,可以一键切换启用状态。禁用后的条目在搜索时不会出现,但保留内容和向量,随时可以重新启用。

适用场景:暂时不想让某些条目影响搜索结果,但不删除它们。

批量更新向量

选中多个条目后,可以批量触发向量化同步。

批量 AI 标签生成

选中多个条目后,可以批量调用 LLM 为条目补充标签强制重生成

批量导出/删除

选中多个条目后,可以一次性导出或删除。删除操作会:

  1. 删除条目原始数据(entries/{entryId}.json
  2. 删除对应的向量文件(vectors/{modelHash}/{entryId}.vec
  3. 从元数据索引中移除
  4. 从缓存中清除

删除不可逆

删除后的条目无法恢复。如果只是暂时不想使用,建议用"禁用"功能代替删除。

TODO: 截图 - 批量操作模式,标注选中状态和操作按钮

标签管理

标签系统

知识库采用带权重的标签系统(内部表示为 {name: string, weight: number})。每个标签可以附带权重(0.0~1.0),权重越高在语义检索中的影响力越大。标签在 UI 中通过标签管理器进行添加、编辑权重和删除。

全局标签池(Tag Pool)

标签池是全局的基础设施:

  • 跨库共享:同一名称的标签在不同知识库中共享同一个向量表示
  • 按模型隔离:标签的向量空间按 Embedding 模型隔离
  • 语义联想:标签本身也被向量化并建立索引,支持"以标签找标签"的语义搜索

标签池管理器

设置 > 标签池管理 中可以:

  • 浏览:查看所有已发现的标签及其使用频率
  • 搜索:关键词搜索标签
  • 向量化:对未向量化的标签进行向量化
  • 清理:删除没有条目关联的孤立标签

TODO: 截图 - 标签池管理器,展示标签列表和操作按钮

已发现标签

系统会自动收集所有知识库中使用过的标签,在搜索时提供标签建议。标签统计信息显示在 统计 标签页,包括:

  • 标签总数
  • 已向量化标签数
  • 每个标签的使用频率
  • 按使用频率排序的热门标签

导出知识库

支持将整个知识库导出为 JSON 文件:

  • 格式:JSON
  • 内容:包含所有条目的完整数据和元数据
  • 文件名:自动生成为 {知识库名称}_export_{日期}.json

导出的文件可以用于备份、迁移到其他设备,或供外部工具处理。

克隆知识库

知识库支持克隆(复制)操作:

  • 自动命名:源库名称 + (副本),如果重名则自动递增为 (副本 2)
  • 克隆内容:复制所有条目的原始数据和元数据
  • 适用场景:基于现有知识库创建变体,或用于测试修改效果

TODO: 截图 - 克隆知识库的操作菜单

常见问题

Q:条目标题(Key)可以重复吗?

同一个知识库中条目 Key 是唯一标识符,不可重复。如果导入时遇到重名条目,系统会将其视为更新操作而不是新建。

Q:条目启用的作用是什么?

禁用条目后,该条目不会出现在搜索结果中,但原始数据和向量文件都保留着。你可以随时重新启用。适合暂时隐藏某些条目而不丢失其向量化状态。

Q:标签为什么需要向量化?

标签向量化后,系统可以进行"语义联想"——比如"React"和"Vue"虽然字面不同,但在向量空间中距离较近,搜索时可以用标签找到概念上相关的内容。

Q:导入文件时自动提取的标题不对怎么办?

设置 > 导入与预处理 中关闭"导入时自动提取标题",然后自行编辑条目标题。

Q:为什么批量导入提示很多跳过?

可能原因:

  1. 文件格式不被支持(只支持 .md.txt 等文本格式)
  2. 开启了去重且文件内容与已有条目完全一致
  3. 文件内容为空

Released under the Apache-2.0 License.