Files
dsh-enhancements/docs/mmx-image-bridge-PATCH.md
江晨 fdafd5d6b3 chore: 初始化 dsh-enhancements 留档仓库
- 插件源码:dsh-usage(用户头像 + DeepSeek 官方 API 消耗面板)
- 工具:dl-gh.mjs(node fetch 下载 gh,绕开沙箱 curl 限制)
- 文档:PLAN.md 路线图 + mmx 视觉桥接补丁说明
- 资产:DeepSeek 鲸鱼图标
2026-08-17 11:54:40 +08:00

3.3 KiB
Raw Permalink Blame History

MMX 图片桥接补丁(聊天窗口发图 → mmx-vision 技能识别)

日期:2026-08-12 目的:让 DeepSeek Harness 的聊天窗口可以直接发送/粘贴图片。图片被持久化为附件, 发给模型时由适配器转成"附件路径文本提示"agent 收到后用 mmx-vision 技能(本地 Node 脚本调用 NVIDIA 托管的 MiniMax M3)识别或按用户意图取用。

相关自定义(本机桌面应用壳)

  • C:\Users\a1703\.dsh\bin\dsh-app.ps1:托盘应用(无窗口后台运行 dsh web + 系统托盘, 右键"打开主界面 / 退出",打开用 Edge --app 独立窗口)。快捷方式 桌面\DeepSeek Harness.lnk 指向它(powershell -WindowStyle Hidden -File)。
  • C:\Users\a1703\.dsh\assets\dsh.ico:多尺寸(16-256DeepSeek 鲸鱼图标, 由 favicon.svg 经 Edge 无头渲染 + System.Drawing 缩放生成,供托盘/快捷方式使用。
  • 旧版 C:\Users\a1703\.dsh\bin\dsh-web.cmd:手动模式(显示控制台窗口),备用。

修改的文件(全部位于 npx 缓存安装,重启 Harness 生效)

0. @deepseek-ai/dsh-web-frontend/dist(应用窗口图标)

  • 新增 favicon-256.pngfavicon.ico(多尺寸鲸鱼图标)。
  • index.htmlfavicon 链接增加 favicon-256.png(放在 svg 前)。
  • manifest.webmanifesticons 增加 png/ico 条目。
  • 作用:Edge --app 独立窗口与浏览器标签显示 DeepSeek 鲸鱼图标而不是 Edge 图标。 静态文件实时生效(服务直接读磁盘),无需重启。

1. @deepseek-ai/dsh-llm-deepseek/lib/index.jsdeepseek 适配器)

  • 原行为:内容含 image 块时抛 UNSUPPORTED_CONTENT(拒绝整轮对话)。
  • 新行为:assertTextOnly 改为 imageBlocksText,把每个 image 块序列化成一行 [用户发送的图片附件 id=sha256:xxx 类型=image/png 文件=<DSH_HOME>/attachments/v1/objects/xx/xxx] 文本;serializeMessages 的用户消息文本 = 原文本 + 图片提示。
  • 附件路径规则与 @deepseek-ai/dsh-attachment-local 的存储约定一致 (对象路径 objects/<sha前2位>/<sha256>attachmentId 前缀 sha256:)。

2. @deepseek-ai/dsh-host-apiproxy/lib/index.jshost API 代理)

  • prompt RPC:删除"模型 inputModalities 不含 image 就拒绝(MODEL_DOES_NOT_SUPPORT_IMAGES"检查, 图片一律放行(由适配器文本化)。
  • selectModel RPC:删除"会话已含图片时禁止切换到不支持图片的模型"检查。

生效条件

  • 重启 Harness 进程后生效(node_modules 中的运行时文件改动不会热加载)。
  • 备份:同目录 index.js.mmx-bak(每个改过的包旁边)。

升级后重放

重新安装/升级 @deepseek-ai/dsh 后,以上两处改动会被覆盖。重放步骤:

  1. node --check 验证改动文件语法。
  2. 对每个包:把 assertTextOnly 的抛错逻辑替换为 imageBlocksText(见下), 并删除 api-proxy 两处图片能力检查。
  3. 或直接 diff 当前 .mmx-bak 与新文件,把差异搬过去。

不影响

  • 客户端 UI 无需改动(图片 rail/拖放/粘贴本来就完整)。
  • pi-ai 模型路由(真多模态)不受影响。
  • 会话历史中的图片块在每次模型调用时都会文本化,客户端仍按附件渲染缩略图。