Skip to content

多模态协作系统

模块概述

版本: v3.2.0 状态: ✅ 已实现 IPC处理器: 12个 最后更新: 2026-03-05

多模态输入融合与输出生成系统。支持 5 种输入模态 (文本/图像/音频/文档/屏幕)、7 种文档格式解析和 6 种输出格式生成,提供跨模态上下文感知和会话管理。

核心特性

  • 5 种输入模态: 文本 / 图像 / 音频 / 文档 / 屏幕截图
  • 模态融合: 加权融合策略,自动上下文关联
  • 7 种文档解析: PDF / DOCX / XLSX / TXT / MD / CSV / JSON
  • 6 种输出格式: Markdown / HTML / Chart (ECharts) / Slides (Reveal.js) / JSON / CSV
  • 上下文管理: 4000 token 上限,5 分钟缓存 TTL
  • 会话追踪: 多模态会话与工件持久化

1. 架构设计

1.1 整体架构图

┌──────────────────────────────────────────────────────────────────┐
│                        前端 (Vue3)                                │
├──────────────────────────────────────────────────────────────────┤
│                      多模态交互界面                                │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌───────────────────┐   │
│  │ 文件上传  │ │ 截图输入  │ │ 输出预览  │ │ 会话管理          │   │
│  └──────────┘ └──────────┘ └──────────┘ └───────────────────┘   │
└──────────────────────────────────────────────────────────────────┘
                              ↕ IPC (12个通道, mm: 前缀)
┌──────────────────────────────────────────────────────────────────┐
│                        主进程 (Electron)                          │
├──────────────────────────────────────────────────────────────────┤
│               multimodal-collab-ipc.js (287行)                    │
│  ┌────────────────────────────────────────────────────────────┐  │
│  │  ModalityFusion (592行)         │ DocumentParser (542行)    │  │
│  │  5 模态加权融合                 │  7 格式文档解析           │  │
│  │  text(1.0) image(0.8)          │  PDF/DOCX/XLSX/TXT/      │  │
│  │  document(0.9) audio(0.7)      │  MD/CSV/JSON             │  │
│  │  screen(0.6)                    │                          │  │
│  └────────────────────────────────────────────────────────────┘  │
│  ┌────────────────────────────────────────────────────────────┐  │
│  │  MultimodalContext (378行)      │ MultimodalOutput (501行)  │  │
│  │  上下文管理                     │  6 格式输出生成           │  │
│  │  4000 token 上限               │  Markdown/HTML/Chart/     │  │
│  │  5min 缓存 TTL                 │  Slides/JSON/CSV          │  │
│  └────────────────────────────────────────────────────────────┘  │
│  ┌────────────────────────────────────────────────────────────┐  │
│  │                    SQLite Database (2 tables)               │  │
│  └────────────────────────────────────────────────────────────┘  │
└──────────────────────────────────────────────────────────────────┘

1.2 多模态处理流程

用户输入 (文本/文件/截图/音频)

DocumentParser → 文档解析 (PDF/DOCX/XLSX等)

ModalityFusion → 模态融合 (加权聚合)
    ↓ 按权重合并多模态信息
MultimodalContext → 上下文构建 (≤4000 tokens)

LLM 推理

MultimodalOutput → 输出生成 (6种格式)

前端渲染 (Markdown/ECharts/Reveal.js/...)

1.3 核心组件

组件文件行数说明
ModalityFusionmodality-fusion.js5925模态加权融合
DocumentParserdocument-parser.js5427格式文档解析
MultimodalContextmultimodal-context.js378上下文管理
MultimodalOutputmultimodal-output.js5016格式输出生成
Multimodal IPCmultimodal-collab-ipc.js28712个IPC处理器

2. 核心模块

2.1 ModalityFusion

javascript
class ModalityFusion extends EventEmitter {
  async initialize(deps)              // 初始化

  // 融合
  async fuse(inputs)                  // 融合多模态输入
  async addModality(sessionId, modality, data) // 添加模态
  async getSessionModalities(sessionId) // 获取会话模态

  // 配置
  setWeights(weights)                 // 设置权重
  getWeights()                        // 获取权重
}

模态权重:

模态权重说明
text1.0文本 (最高优先级)
document0.9文档 (结构化内容)
image0.8图像 (OCR/描述)
audio0.7音频 (语音转文字)
screen0.6屏幕截图

2.2 DocumentParser

javascript
class DocumentParser extends EventEmitter {
  async initialize(deps)

  // 解析
  async parse(filePath, options?)      // 解析文档
  async parseBuffer(buffer, mimeType, options?) // 解析Buffer

  // 格式支持
  async parsePDF(filePath)             // PDF (pdf-parse)
  async parseDOCX(filePath)            // DOCX (mammoth)
  async parseXLSX(filePath)            // XLSX (xlsx)
  async parseTXT(filePath)             // 纯文本
  async parseMD(filePath)              // Markdown
  async parseCSV(filePath)             // CSV
  async parseJSON(filePath)            // JSON

  // 工具
  getSupportedFormats()                // 获取支持的格式
}

2.3 MultimodalContext

javascript
class MultimodalContext extends EventEmitter {
  async initialize(deps)               // 初始化 (无db参数)

  // 上下文
  async buildContext(sessionId, inputs) // 构建上下文
  async getContext(sessionId)          // 获取上下文
  async clearContext(sessionId)        // 清除上下文
  async trimContext(context, maxTokens) // 裁剪到token上限
}

上下文配置:

javascript
{
  maxTokens: 4000,           // 最大 token 数
  cacheTTL: 300000,          // 缓存 TTL (5分钟)
  priorityOrder: ['text', 'document', 'image', 'audio', 'screen'],
}

2.4 MultimodalOutput

javascript
class MultimodalOutput extends EventEmitter {
  async initialize()                   // 初始化 (无参数)

  // 输出生成
  async generate(content, format, options?) // 生成指定格式
  async generateMarkdown(content)      // Markdown
  async generateHTML(content, options?) // HTML
  async generateChart(data, chartType?) // ECharts 图表
  async generateSlides(content, options?) // Reveal.js 幻灯片
  async generateJSON(data)             // JSON
  async generateCSV(data)              // CSV

  // 查询
  getSupportedFormats()                // 获取支持的输出格式
}

输出格式:

格式引擎说明
markdown内置Markdown 格式文本
html内置HTML 页面
chartECharts交互式图表 (折线/柱状/饼图等)
slidesReveal.js演示幻灯片
json内置结构化 JSON
csv内置CSV 表格

3. 数据模型

3.1 multimodal_sessions

字段类型说明
idTEXT PK会话ID
modalitiesTEXT(JSON)输入模态列表
contextTEXT(JSON)上下文数据
statusTEXT状态 (active/completed)
token_countINTEGERToken 使用量
created_atINTEGER创建时间
updated_atINTEGER更新时间

3.2 multimodal_artifacts

字段类型说明
idTEXT PK工件ID
session_idTEXT FK会话ID
typeTEXT类型 (input/output)
modalityTEXT模态类型
formatTEXT格式
contentTEXT内容
metadataTEXT(JSON)元数据
created_atINTEGER创建时间

4. IPC接口 (12个)

4.1 模态融合 (3个)

通道说明参数
mm:fuse融合多模态输入inputs
mm:add-modality添加模态到会话sessionId, modality, data
mm:get-modalities获取会话模态sessionId

4.2 文档解析 (2个)

通道说明参数
mm:parse-document解析文档filePath, options?
mm:get-supported-formats获取支持格式-

4.3 上下文管理 (3个)

通道说明参数
mm:build-context构建上下文sessionId, inputs
mm:get-context获取上下文sessionId
mm:clear-context清除上下文sessionId

4.4 输出生成 (2个)

通道说明参数
mm:generate-output生成输出content, format, options?
mm:get-output-formats获取输出格式-

4.5 会话管理 (2个)

通道说明参数
mm:get-session获取会话sessionId
mm:list-sessions列出会话options?

5. 事件

事件负载说明
modality:added模态添加
fusion:completed融合完成
document:parsed文档解析完成
context:built上下文构建
output:generated输出生成

6. 文件结构

desktop-app-vue/src/main/ai-engine/cowork/
├── modality-fusion.js             # 5模态加权融合 (592行)
├── document-parser.js             # 7格式文档解析 (542行)
├── multimodal-context.js          # 上下文管理 (378行)
├── multimodal-output.js           # 6格式输出生成 (501行)
└── multimodal-collab-ipc.js       # 12个IPC处理器 (287行)

7. 相关文档


文档版本: 1.0 最后更新: 2026-03-05

基于 MIT 许可发布