AI知识库
开源知识库
知识库搭建组合
Fast + Ollama
RAGFlow + Ollama
深度解读RAGFlow的深度文档理解DeepDoc
Ollama + Dify.ai
AnythingLLM + Ollama
MaxKB + Ollama
LobeChat + Ollama
ChatNio + Ollama
运维知识库
02-新框架技术选型说明
07-性能与并发能力分析
05-开发规范文档
01-现有架构分析报告
06-实施计划与时间表
03-新框架详细设计文档
README
04-数据库迁移方案
00-项目总结与建议
文档管理详细设计
-
+
首页
文档管理详细设计
### 🧠 一、整体架构设计  ### 🔄 二、核心工作流程详解  #### 1. 文档编辑与版本创建流程 本流程展示了从用户编辑到新版本创建的完整过程,突出了事件驱动的特性。 用户编辑与实时同步:多个用户在Vue前端通过TipTap编辑器协同编辑文档。任何操作都会通过WebSocket(如SignalR)发送到.NET后端,后端将其发布到NATS的特定主题(如 doc.{docId}.ops),再广播给其他在线用户,实现实时同步。 创建版本:用户点击“保存版本”。前端调用.NET后端的版本创建API。 生成版本数据与持久化:后端API处理请求: 持久化版本内容:将当前文档的完整内容(或与上一版本的差异)作为一个新文件存入MinIO,获得文件地址。 记录版本元数据:在达梦数据库的 doc_versions表中插入一条新记录,包含版本号、变更描述、MinIO文件路径、创建者等信息,并将该版本标记为当前版本,旧版本标记为历史版本。 发布事件:后端API向NATS发布一个 version.created事件,消息体包含文档ID和新版本的元数据。 异步处理:向量化服务订阅了 version.created事件。收到事件后,它会从MinIO获取新版本的内容文件,进行文本解析、向量化,并更新Qdrant向量数据库中的索引。至此,新版本可被智能检索。 #### 2. 历史版本管理流程 查看版本历史:用户打开版本历史面板。前端调用API从达梦数据库的 doc_versions表中获取该文档的所有版本列表,按时间倒序展示。 对比版本差异:用户选择两个版本进行对比。前端调用对比API,后端会从MinIO获取两个版本的内容文件,使用差异对比算法(如Google Diff-Match-Patch)生成直观的差异结果(行级、词级差异高亮)返回给前端。 版本回滚:用户选择回滚到某个历史版本。 系统会首先自动创建一个新版本,将当前内容保存为历史(例如版本号自动追加为 v2.1.1),以便追溯回滚操作本身。 接着,将选定的历史版本内容设置为文档的当前内容。 同时,在达梦数据库中将回滚的目标版本标记为新的当前版本。 发布 document.updated事件,触发向量化服务更新Qdrant中的索引。
张猛
2025年11月3日 10:18
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码