# 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 起生效,后续所有业务模块修改必须严格遵循此标准。**