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