imeeting/init.md

4.0 KiB
Raw Permalink Blame History

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