撰稿人: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 穩定性。