4.0 KiB
4.0 KiB
iMeeting New 项目设计与开发规范 (已固化)
1. 项目背景与愿景
高性能智能会议管理系统,核心能力包括:实时语音转写、声纹识别、离线文件分析及 AI 自动纪要总结。 系统定位于企业级 SaaS 架构,支持多租户隔离与个性化 AI 配置。
2. 核心技术栈
- 后端:Java 17 / Spring Boot 3 / Spring Security / MyBatis-Plus 3.5+
- 数据库:PostgreSQL 15+ (内置
pgvector扩展支持) - 缓存:Redis (用于 Token 旋转、验证码及系统参数缓存)
- 前端:React 18 / Vite / Ant Design 5.x / React-Markdown
- 集成:外部 ASR/LLM 引擎接口调用 (OpenAI / DeepSeek / 专用 ASR 接口)
3. 身份与权限模型 (双层管理员架构)
系统采用三级权限隔离体系,确保租户间安全与个人隐私:
- Platform Admin (平台管理员):
- 标识:
is_platform_admin = true - 权限:管理全局租户、开通权限、维护“系统预置”模型与模板。
- 标识:
- Tenant Admin (租户管理员):
- 标识:
sys_tenant_user.is_tenant_admin = true - 权限:管理本租户全量数据、维护本租户“公开”资源(如公开热词)。
- 标识:
- Regular User (普通用户):
- 权限:仅可见本租户公开资源及“自己创建”的私有资源。
- 数据过滤:
WHERE creator_id = current_user_id OR is_public = 1 OR is_system = 1。
4. 数据库设计与数据治理
- 强制字段:所有业务表 (
biz_) 必须包含id,tenant_id,created_at,updated_at,is_deleted。 - 配置固化 (Snapshot):
- 会议记录必须固化发起时的
prompt_content(Markdown原文) 和hot_words(JSON快照)。 - 禁止在业务执行层依赖可变 ID,确保历史记录的可追溯性。
- 会议记录必须固化发起时的
- JSONB 应用:复杂元数据、转录 Segments、模型参数统一使用 PostgreSQL 的
JSONB类型存储。 - 自动映射:含有 JSONB 字段的实体类必须在
@TableName注解中开启autoResultMap = true。
5. 后端异步处理模型 (AI Pipeline)
系统采用分阶段异步任务流,状态通过 status 字段实时追踪:
- 状态机:
0:待处理->1:识别中 (ASR)->2:总结中 (LLM)->3:已完成->4:失败。 - ASR 阶段:提交任务 -> 状态轮询 -> 结果解析并批量插入
biz_meeting_transcripts(结构化存储)。 - LLM 阶段:基于转录明细拼接文本 -> 注入 Markdown 提示词模板 -> 调用 LLM 生成总结。
- 可观测性:每一次 API 交互必须记录在
biz_ai_tasks日志表中,包含原始 Request/Response。
6. 前端 UI/UX 规范 (1080p 适配)
- 分辨率标准:以 1920x1080 为基准。核心页面(会议中心、发起会议)必须实现“一屏展示”,禁用全局滚动条。
- 滚动策略:
- 外层容器:
height: calc(100vh - 64px); overflow: hidden; - 内容区:
flex: 1; overflow-y: auto;(局部滚动)。
- 外层容器:
- 交互选型:
- 大型配置/编辑器:右侧
Drawer(80% 宽度)。 - 会议展示:响应式卡片流 (1080p 下 2行4列)。
- Markdown:总结内容必须通过预览模式渲染,支持实时同步。
- 大型配置/编辑器:右侧
- 实时性:工作台总览开启 5-10 秒自动轮询,配合
Steps组件展示任务动态。
7. 环境与集成约定
- 资源映射:本地
D:/data/imeeting/uploads/映射为 Web 路径/api/static/。 - 外部回调地址:必须通过
app.server-base-url动态组合,确保内网/公网引擎可正确访问音频文件。 - ASR 发现接口:固定为
baseUrl/api/asrconfig。 - LLM 协议:默认采用 OpenAI Chat Completion 兼容格式。
8. 目录结构约定
backend/modules/biz:存放所有核心业务逻辑 (Meeting, Speaker, HotWord, Prompt, AiModel)。frontend/src/pages/business:存放对应的 React 业务组件。frontend/src/api/business:存放独立的 API 封装。
本规范自 2026-03-03 起生效,后续所有业务模块修改必须严格遵循此标准。