imeeting/init.md

65 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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