01-requirements.md 2.3 KB

知识库管理系统 - 需求与决策记录

1. 项目背景

用户拥有大量收藏文章(md / txt / 链接 / 视频),希望建立一个本地知识库管理系统:

  • 通过分级标签体系组织知识
  • 通过 LLM 自动分析文章主题并归类
  • 同主题文章聚合为单一知识 MD
  • 完整的变更追踪(类似 git diff)
  • 通过前端 UI 进行所有操作

2. 原始需求

编号 需求
R1 使用 tag-system 技能建立分级标签管理体系
R2 LLM 分析文章主题,在已有体系中匹配标签;找不到时可在当前体系下新增标签类别
R3 同主题文章聚合为一篇 MD 知识(如"大模型部署方法.md")
R4 记录每篇文章对聚合知识的变更(描述 + 变更行),支持类似 git diff 的展示
R5 前端:标签管理 + 文章录入 + 知识查看(含时间轴)
R6 文章格式支持 md/txt/链接,视频暂缓
R7 Spring Boot + Vue 架构,fullstack-merge-deploy 技能合并部署,端口 7945

3. 关键决策(已确认)

决策点 选择 说明
数据库 MySQL 8+ JSON 字段足够使用,部署熟悉度高
LLM 接入 OpenAI 兼容 通过 base_url + api_key + model 配置
聚合粒度 LLM 主题自由生成 LLM 根据文章归纳主题名,匹配现有 knowledge 标题,避免重复
版本策略 全量快照 每次变更保存完整 MD 内容,同时存 diff 行便于时间轴展示
链接处理 自动抓取 + 手动回退 Jsoup + readability 解析,失败弹窗提示手动贴入
用户认证 单用户登录 JWT,首次启动引导设置管理员账号
标签初始状态 全手动构建 空白启动,所有分类由用户手动创建
LLM 配置 前端配置 + DB 存储 api_key 用 AES 加密入库

4. 非功能性要求

  • 端口:7945(合并部署)
  • Java:17(Spring Boot 3.2 最低要求)
  • 构建:Maven
  • 包名:com.knowledge.extractor
  • 编码:UTF-8 全链路

5. 范围排除

  • ❌ 视频文章解析(后续迭代)
  • ❌ 多用户 RBAC(仅单用户)
  • ❌ 移动端适配(PC 优先)
  • ❌ 全文搜索引擎接入(MySQL LIKE 即可,后续可加 ES)