撰稿人:wjz
一、引言
1.1 目的
本软件设计文档详细描述了 OmniMeetProTrack 全维会议链智能追录系统的架构、组件、模块设计及实现细节,旨在为开发人员、利益相关者和维护人员提供系统的全面设计蓝图。本文档基于需求定义文档,确保系统实现满足企业对高效、智能会议管理的需求,同时支持未来功能扩展和维护。
1.2 范围
OmniMeetProTrack 是一款面向企业线上会议和会议管理的智能化、多模态会议系统,整合视频会议、AI 助手、知识库管理、会议签到、数据分析、知识图谱构建和文生图等功能。系统通过先进技术(如 DeepSeek-R1、CLIP、ASR、LangChain)实现会议全链条的智能化管理,提升会议效率,沉淀知识资产,为企业决策提供支持。
1.3 定义与缩写
- OmniMeetProTrack:全维会议链智能追录系统。
- WebRTC:Web 实时通信技术,用于音视频通话。
- ASR:自动语音识别,用于语音转文字。
- CLIP:视觉识别技术,用于处理图片和 PPT。
- RAG:检索增强生成,用于业务相关问答。
- RDF:资源描述框架,用于知识图谱构建。
二、系统概述
2.1 系统目标
- 提供稳定、流畅的视频会议功能,支持多设备接入。
- 实现智能化的会议管理和 AI 辅助,提升会议效率。
- 构建多模态知识库,沉淀会议数据并支持深度分析。
- 确保系统高性能、高可靠性和安全性,满足企业级需求。
- 支持模块化扩展,适应未来功能和性能需求。
2.2 系统架构
OmniMeetProTrack 采用前后端分离的微服务架构,分为以下核心层:
- 前端层:基于 Vue.js,提供用户界面和交互。
- 后端层:基于 Spring Boot,处理业务逻辑和数据交互。
- 模型层:基于 FastAPI 和 LangChain,调用 AI 模型(DeepSeek-R1 等)。
- 数据层:MongoDB 存储会话和消息,Neo4j 存储知识图谱,Milvus 管理向量数据。
- 外部服务:集成百度地图 API(签到定位)、人脸识别服务等。
2.3 技术栈
- 前端:Vue.js、WebRTC、WebSocket、Marked(Markdown 解析)、ECharts(数据可视化)。
- 后端:Spring Boot、Spring Data JPA、MongoRepository。
- 模型端:FastAPI、LangChain、DeepSeek-R1、Whisper(ASR)、CLIP。
- 数据库:MongoDB(Motor 异步驱动)、Neo4j、Milvus(向量数据库)。
- 其他:RecordRTC(音频录制)、百度地图 API、人脸识别 SDK。
三、系统设计
3.1 模块划分
系统功能模块基于需求分为以下九个子系统:
- 会议系统管理
- 视频会议
- 会议 AI 助手
- 日常 AI 助手
- 知识库管理
- 会议签到
- 统计信息
- 智能解析与知识图谱构建
- 文生图
3.2 模块设计
3.2.1 会议系统管理
- 功能 :
- 会议记录增删改查(名称、时间、地点、议程、决议)。
- 用户账号管理(添加、删除、修改,角色包括创建者、参会者、管理员)。
- 设计 :
- 前端:Vue.js 组件实现会议列表和用户管理页面,支持表单编辑和权限选择。
- 后端:Spring Boot 提供 RESTful API,基于 Spring Security 实现权限控制。
- 数据存储 :MongoDB 存储会议记录和用户信息,表结构包括
Meeting
和User
。
- 流程 :
- 用户登录后访问会议管理页面。
- 创建/编辑会议,提交数据至后端 API。
- 后端验证权限,更新 MongoDB 数据。
3.2.2 视频会议
- 功能 :
- 多设备音视频通话。
- 弹幕聊天。
- 录屏录音,生成带时间戳记录。
- 投屏共享。
- 设计 :
- 前端 :
- 使用 WebRTC(
navigator.mediaDevices.getUserMedia
)获取音视频流,RTCPeerConnection
管理连接。 - WebSocket 实现弹幕和信令传输。
- RecordRTC 实现录屏录音。
- Vue.js 组件展示参会者列表、控制面板(麦克风、摄像头)。
- 使用 WebRTC(
- 后端 :
- Spring Boot 提供 WebSocket 信令服务,处理 OFFER、ANSWER、ICE CANDIDATE。
- 存储录制文件至本地文件系统,元数据存入 MongoDB。
- 流程 :
- 用户通过按钮加入会议,前端建立 WebSocket 连接。
- WebRTC 协商音视频流,实时传输。
- 弹幕消息通过 WebSocket 广播。
- 录制完成后,文件上传至后端存储。
- 前端 :
3.2.3 会议 AI 助手
- 功能 :
- 实时问答(基于会议内容)。
- 时间感知(监测与会者状态,调整安排)。
- 问题感知(识别疑问和争议)。
- Design :
- 前端:Vue.js 弹窗展示 AI 助手对话,支持流式输出。
- 模型端 :
- FastAPI 调用 DeepSeek-R1 API,LangChain 构造提示。
- 使用摄像头和麦克风数据(WebRTC 流)分析与会者状态。
- 后端:Spring Boot 协调前端请求和模型端响应。
- 流程 :
- 用户点击 AI 助手按钮,输入问题。
- 模型端结合会议上下文生成流式回答。
- AI 分析与会者状态,推送提醒(如"某人未发言")。
3.2.4 日常 AI 助手
- 功能 :
- 个性化问答(RAG 增强)。
- 一键部署会议。
- 流式回答,上下文感知。
- Design :
- 前端:Vue.js 对话界面,Marked 解析 Markdown 输出。
- 模型端:FastAPI + LangChain,调用 DeepSeek-R1,RAG 从 Milvus 检索知识库。
- 后端:Spring Boot 管理会话,MongoDB 存储历史消息。
- 流程 :
- 用户输入问题,前端发送会话 ID 和问题。
- 模型端查询历史消息,结合 RAG 生成回答。
- 一键部署会议时,AI 分析日程,选择合适时间。
3.2.5 知识库管理
- 功能 :
- 上传 docx、pdf、txt 至 Milvus。
- 统计知识库数据(数量、片段)。
- Design :
- 前端:Vue.js 文件上传组件,ECharts 展示统计图表。
- 后端:Spring Boot 处理文件上传,调用 Milvus API 存储向量。
- 数据存储:Milvus 存储文档向量,MongoDB 存储元数据。
- 流程 :
- 用户上传文档,前端校验格式。
- 后端提取文本,生成向量存入 Milvus。
- 统计数据通过 API 返回前端展示。
3.2.6 会议签到
- 功能 :
- 发起签到,百度地图 API 定位。
- 人脸识别验证身份。
- Design :
- 前端:Vue.js 签到页面,集成百度地图 SDK 和摄像头接口。
- 后端:Spring Boot 调用人脸识别服务,验证用户身份。
- 流程 :
- 用户点击签到,获取定位信息。
- 摄像头捕获人脸,发送至后端比对。
- 签到结果存入 MongoDB。
3.2.7 统计信息
- 功能 :
- 统计会议时长、时间段、参会人数。
- 可视化图表展示。
- Design :
- 前端:ECharts 绘制柱状图、折线图。
- 后端:Spring Boot 聚合 MongoDB 数据,提供统计 API。
- 流程 :
- 用户访问统计页面,前端请求数据。
- 后端查询 MongoDB,返回统计结果。
- 前端渲染图表。
3.2.8 智能解析与知识图谱构建
- 功能 :
- CLIP 处理视觉信息。
- ASR 转写音频。
- DeepSeek 解析文本,生成总结。
- 构建 RDF 三元组,存入 Neo4j。
- Design :
- 模型端 :
- Whisper 实现实时语音转写。
- CLIP 提取 PPT 和图片特征。
- DeepSeek 解析文本,豆包模型提取结构化指标。
- 后端:Spring Boot 协调数据处理,Neo4j 存储三元组。
- 流程 :
- 会议音频通过 ASR 转写为文本。
- CLIP 处理视觉内容,DeepSeek 解析文本。
- 豆包模型生成总结,RDF 三元组存入 Neo4j。
- 模型端 :
3.2.9 文生图
- 功能 :
- 生成会议思维导图或项目架构图。
- Design :
- 前端:Vue.js 展示生成的图片。
- 模型端:FastAPI 调用文生图模型(如 Stable Diffusion)。
- 流程 :
- 用户输入会议要点,模型生成图片。
- 图片通过 API 返回前端展示。
3.3 数据设计
- MongoDB :
Meeting
:会议 ID、名称、时间、议程、参会者。User
:用户 ID、姓名、角色、权限。Session
:会话 ID、创建时间、消息列表。QAMessage
:消息 ID、会话 ID、内容、时间戳。
- Neo4j :
- 节点:任务、责任人、决策。
- 关系:RDF 三元组(如
<任务, 负责人, 姓名>
)。
- Milvus :
- 向量:文档嵌入向量。
- 元数据:文档 ID、类型、上传时间。
3.4 接口设计
- RESTful API :
/api/meetings
:会议增删改查。/api/users
:用户管理。/api/sessions
:会话管理。
- WebSocket :
/ws/meeting
:信令和弹幕传输。
- 模型端 API :
/api/ai/ask
:AI 问答。/api/ai/summarize
:会议总结。
四、非功能设计
4.1 性能
- 响应时间:功能操作 < 3 秒,视频延迟 < 300 毫秒。
- 吞吐量:支持 10 人以内同时视频会议。
- 优化:使用异步任务队列(Celery)处理音频转写,缓存热点数据。
4.2 可靠性
- 备份:MongoDB 长时间存储 。
- 故障转移:部署多节点,Nginx 负载均衡。
- 日志:使用 SLF4J 记录操作和错误日志。
4.3 安全性
- 加密:HTTPS 传输,AES 加密存储数据。
- 认证:JWT 令牌 + OAuth2 实现多因素认证。
- 审计:记录用户操作,存储至 MongoDB。
4.4 兼容性
- 浏览器:支持 Chrome、Firefox、Edge、Safari。
- 设备:兼容 PC、手机、平板。
- 系统:运行于 Windows Server、Linux。
4.5 可扩展性
- 模块化:各功能模块解耦,独立部署。
- 性能扩展:支持 Kubernetes 集群部署。
- 集成:提供 OpenAPI 规范,方便第三方系统对接。
五、实现细节
5.1 WebRTC 与 WebSocket
- WebRTC 实现音视频通话,优化多设备连接。
- WebSocket 每 10 秒 ping,防止断开。
- 使用
beforeEnter
路由守卫确保连接建立。
5.2 DeepSeek-R1 集成
- 基于 LangChain 实现流式输出,参数:
temperature=0.2
,max_tokens=2048
。 - MongoDB 存储历史消息,支持上下文感知。
5.3 ASR 与 CLIP
- Whisper 实时转写音频,生成带时间戳文本。
- CLIP 提取视觉特征,辅助知识图谱构建。
六、挑战与解决方案
- JDK 冲突:统一 JDK 版本,调整依赖。
- 接口兼容性:制定统一 API 规范,添加适配层。
- 数据库冲突:设计统一 schema,迁移数据。
- 多设备入会:优化防火墙,增强 WebSocket 稳定性。