用户上传文件 + 提问 │ ▼ ┌─────────────────────┐ │ 1. 文件上传与校验 │ │ - 分片上传 │ │ - MD5/SHA 校验 │ │ - 存入对象存储 │ └─────────┬───────────┘ │ ▼ ┌─────────────────────┐ │ 2. 文件类型识别 │ │ - 读后缀名 │ │ - 读 MIME 类型 │ │ - 文件头探测 │ └─────────┬───────────┘ │ ▼ ┌─────────────────────┐ │ 3. 用户意图识别 │ │ - 关键词匹配 │ │ - 或 LLM 分类 │ │ 输出:QA/计算/总结/识别│ └─────────┬───────────┘ │ ▼ ┌─────────────────────────────────────────────┐ │ 4. 路由决策 │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ 文档类 │ │ 表格类 │ │ 图片类 │ │ │ │PDF/Word │ │CSV/Excel │ │JPG/PNG │ │ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ │ │ │ │ │ │ ▼ ▼ ▼ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │有文本层? │ │计算意图? │ │OCR/多模态│ │ │ └─┬────┬───┘ └─┬────┬───┘ └────┬─────┘ │ │ 是│ │否 是│ │否 │ │ │ ▼ ▼ ▼ ▼ ▼ │ │ ┌────┐┌────┐┌────┐┌────┐ ┌──────────┐ │ │ │RAG ││OCR ││Code││RAG │ │OCR结果 │ │ │ │ ││→RAG││解释││ │ │交给模型 │ │ │ └────┘└────┘└────┘└────┘ └──────────┘ │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │音视频类 │ │代码类 │ │压缩包类 │ │ │ │MP3/MP4 │ │PY/JS/LOG │ │ZIP/RAR │ │ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ │ │ │ │ │ │ ▼ ▼ ▼ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ASR转写 │ │代码RAG/ │ │解压后 │ │ │ │→文本处理 │ │沙箱执行 │ │逐一路由 │ │ │ └──────────┘ └──────────┘ └──────────┘ │ └──────────────────┬──────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────┐ │ 5. 执行对应处理路径 │ │ │ │ RAG: 解析 → 切片 → 向量化 → 检索 → Rerank │ │ Code: 生成代码 → 沙箱执行 → 返回结果 │ │ OCR: 识别文字 → 可选 RAG │ │ ASR: 转写文本 → 摘要/检索 │ └──────────────────┬──────────────────────────┘ │ ▼ ┌─────────────────────┐ │ 6. 组装 Prompt │ │ - 系统指令 │ │ - 检索片段/执行结果 │ │ - 用户问题 │ └─────────┬───────────┘ │ ▼ ┌─────────────────────┐ │ 7. 调用大模型生成答案 │ └─────────┬───────────┘ │ ▼ 返回给用户