个人 AI 知识库系统 PRD
1. 产品定位
本产品是基于 Memos 的个人私有 AI 知识库 Sidecar 系统。Memos 负责知识采集、原始资料保存和日常阅读;旁路 AI 服务负责内容整理、标签审核、附件解析、自动文档生成、问答检索、备份恢复等智能能力。
v1 优先服务个人使用场景,部署目标为 NAS 与 Linux 服务器。系统设计需要预留多人、多工作区、更多存储目标和独立管理页面的扩展空间。
2. 产品目标
- 保留 Memos 的轻量、隐私、低成本优势,不魔改 Memos 主体。
- 将零散 memo、附件和结构化文件整理成可复用的知识资产。
- 通过受控标签树避免标签无限膨胀,AI 可建议新标签,但必须经过审核。
- 支持按标签、层级和全局范围自动生成知识文档。
- 支持轻量问答检索,第一版采用最简单入口。
- 支持本地整体备份恢复,确保 NAS/Linux 私有部署可长期维护。
3. 用户与场景
3.1 目标用户
- 个人知识管理用户。
- 程序员、研究者、产品经理、自由职业者等长期积累资料的人。
- 后续可扩展到小团队或家庭 NAS 共享知识库。
3.2 核心场景
- 用户在 Memos 中写下一段原始想法、会议记录、学习笔记或任务线索。
- 用户上传 Markdown、Word、Excel、PDF、drawio、Mind Elixir JSON 等附件。
- AI 自动生成整理版 memo,并关联原始 memo。
- AI 根据已有标签树匹配标签;无法匹配时提交候选标签等待审核。
- 标签审核通过后,触发相关标签文档自动生成或更新。
- 用户通过简单入口提出问题,系统基于已整理知识回答并附来源。
- 系统定期将 Memos 数据、附件、Sidecar 数据、配置和索引打包备份。
4. 已确认产品决策
| 决策项 | 结论 |
|---|---|
| 初始使用范围 | 个人使用,后续考虑多人 |
| 部署目标 | NAS、Linux |
| AI 整理结果 | 新建 memo,并与原始 memo 建立关联 |
| 原始内容处理 | 保留原始 memo,不覆盖原文 |
| 内容区分方式 | 使用系统标签区分原始、AI 整理、AI 文档、待审核等类型 |
| 标签策略 | AI 可自动提出新标签,但进入待审核 |
| 标签审核入口 | 第一版使用配置文件或简单管理接口,后续可做 Web 页面 |
| 模型供应商 | 支持 OpenRouter、Qwen、DeepSeek、自定义 OpenAI-compatible endpoint |
| 问答入口 | 暂时搁置复杂页面,第一版采用最简单实现 |
| 附件解析 | 纯文本、Markdown、Word、Excel、PDF、drawio、Mind Elixir JSON |
| OCR | 暂不实现 |
| 其他附件 | 只保存,不解析 |
| 自动文档触发 | 标签确认后、定期、手动全局、手动指定标签、手动指定层级以下 |
| 文档版本 | 保留最近 N 个版本,默认 N=5 |
| 备份目标 | 本地目录 |
5. 标签体系
5.1 系统标签
系统标签用于标识处理状态和内容类型,建议统一放在 #系统/ 命名空间下。
| 标签 | 含义 |
|---|---|
#系统/原始记录 |
用户原始输入或原始附件说明 |
#系统/AI整理 |
AI 生成的结构化整理 memo |
#系统/AI文档 |
AI 生成的聚合文档 |
#系统/待澄清 |
需要用户补充上下文 |
#系统/标签待审核 |
包含 AI 候选新标签,等待审核 |
#系统/问答 |
简单问答入口 |
#系统/处理失败 |
自动处理失败,需要排查 |
5.2 业务标签
业务标签采用多级路径,例如:
#项目/个人AI知识库/需求
#项目/个人AI知识库/架构
#技术/Python/FastAPI
#技术/知识库/RAG
业务标签由受控标签树管理。AI 只能直接使用已审核标签;当需要新增标签时,必须创建候选记录,等待人工审核。
5.3 标签审核规则
- AI 输出标签前必须读取当前标签树、别名和禁用词。
- 命中别名时自动映射到正式标签。
- 命中禁用词或近似重复标签时不允许创建。
- 新标签候选需要包含名称、父标签、创建理由、相似现有标签、置信度。
- 审核通过后才进入正式标签树。
- 审核拒绝后需要记录原因,可选择映射到已有标签。
6. 功能需求
6.1 Memos Webhook 接入
- 接收 Memos 创建、更新、删除事件。
- 根据事件拉取 memo 详情。
- 对重复事件进行幂等处理。
- 记录任务状态、错误信息和重试次数。
6.2 AI 整理 memo
- 保留原始 memo。
- 新建 AI 整理 memo。
- 整理内容包括标题、摘要、关键点、待办、相关标签、来源链接。
- AI 整理 memo 需要关联原始 memo。
- 处理成功后写入向量索引。
- 处理失败时标记
#系统/处理失败或记录失败任务。
6.3 人机澄清
- 当内容指代不明、标签归属不确定或关键信息缺失时,系统进入待澄清状态。
- 系统在原始 memo 下创建评论,说明需要用户补充什么。
- 原始 memo 或任务状态标记为待澄清。
- 用户补充后,系统恢复处理。
6.4 待审核标签
- AI 提出新标签时,创建待审核记录。
- 第一版通过配置文件或简单管理接口审核。
- 审核通过后触发相关自动文档策略。
- 审核拒绝后任务可重新绑定到已有标签。
6.5 附件解析
第一版解析以下格式:
| 格式 | 处理策略 |
|---|---|
.txt |
读取文本 |
.md |
保留 Markdown 结构 |
.docx |
转 Markdown |
.xlsx |
表格转 Markdown |
.pdf |
文本层提取,暂不 OCR |
.drawio / .drawio.svg |
提取 XML/文本节点,保留源文件链接 |
Mind Elixir .json |
解析节点树,转 Markdown 大纲 |
其他格式只保存附件信息,不进入解析和向量化。
6.6 自动文档生成
系统支持以下触发模式:
- 标签审核通过后自动生成。
- 定时生成,例如每日、每周。
- 手动生成全局文档。
- 手动生成某一个标签文档。
- 手动生成某一级标签以下全部文档。
生成文档以新 memo 形式写入 Memos,并标记 #系统/AI文档。同一文档保留最近 N 个版本,默认 N=5。
6.7 简单问答
第一版不做独立问答页面。建议支持以下最小闭环:
- 用户创建包含
#系统/问答的 memo。 - Sidecar 识别问题。
- 系统基于向量索引和标签上下文检索资料。
- AI 生成回答。
- 系统新建回答 memo 或在原 memo 评论中回复。
默认建议新建回答 memo,并关联问题 memo,保持与 AI 整理结果一致。
6.8 备份恢复
第一版支持本地目录备份。备份内容包括:
- Memos SQLite 数据库。
- Memos 附件目录。
- Sidecar SQLite 数据库。
- 向量索引数据库。
- 配置文件。
- 标签树导出。
- 文档生成策略。
- 版本信息与恢复说明。
恢复流程需要支持校验备份包完整性,并提供恢复前检查。
7. 非功能需求
7.1 隐私与安全
- 默认私有部署,不依赖公有云存储。
- 模型供应商密钥通过环境变量或本地 secrets 文件配置。
- 解析附件需要限制文件大小和允许格式。
- 不对未知格式执行主动解析。
- 管理接口需要鉴权。
7.2 可维护性
- 所有处理任务有状态记录。
- 所有 AI 调用有审计日志。
- 失败任务可重试。
- 配置有示例文件和说明。
- 文档与代码同步更新。
7.3 可扩展性
- 数据表预留
workspace_id、user_id。 - LLM 网关支持 OpenAI-compatible 扩展。
- 向量存储通过接口封装,后续可替换。
- 标签审核入口后续可从配置文件升级为 Web 管理页面。
7.4 性能要求
- 个人知识库规模下,万级 memo 能正常检索。
- Webhook 接收应快速返回,耗时任务进入后台队列。
- 自动文档生成可异步执行,不阻塞日常 memo 使用。
8. 验收标准摘要
- 能部署 Memos 与 Sidecar,并完成 webhook 联调。
- 创建原始 memo 后,系统能新建 AI 整理 memo 并关联来源。
- AI 使用已有标签时不产生待审核标签。
- AI 提出新标签时进入待审核流程。
- 审核通过后,新标签进入正式标签树。
- 支持指定格式附件解析。
- 支持至少一种自动文档触发方式和一种手动触发方式。
- 支持简单问答闭环。
- 支持本地备份与恢复演练。
- 所有核心功能通过真实 Memos 实例测试。