dsh-read-image-jpeg-fallback:DSH 插件,将 read_image PNG/WebP 转为 JPEG 以兼容 LM Studio

在 DSH 与 LM Studio 结合使用的场景中,read_image 工具生成的图片附件有时会被 LM Studio 的 openai-completions 路由拒绝,报错提示 'url' field must be a base64 encoded image。dsh-read-image-jpeg-fallback 插件正是为了解决这一传输层的格式兼容问题。

这是一个零配置的 DSH 图像兼容层插件。它通过 DSH 的 tools/post-execute 钩子,在 read_image 工具执行后介入,将模型可见的 PNG/WebP 图片块转换为不透明 sRGB 格式的 JPEG,而 JPEG 及其他媒体类型则保持原样。

核心功能

  • 格式转换:将 image/png 和 image/webp 附件转换为不透明 sRGB JPEG。
  • 兼容透传:JPEG 和其他媒体类型保持不变。
  • 零配置:无需修改配置文件或编写脚本。
  • 钩子机制:利用 DSH 的 tools/post-execute 钩子实现透明转换。

安装与启用

该插件依赖 DSH 0.1.1-rc.2、Node.js >= 22 以及 sharp 0.35.3。安装命令如下:

dsh plugin --profile web add dsh-read-image-jpeg-fallback

安装完成后需要重启 DSH Web。

典型用法

使用方式与原生 read_image 一致。插件在后台自动运行,当检测到 PNG/WebP 图片时,会自动生成 JPEG 替代品供模型使用。不需要调用新的工具或修改代理工作流。

适用场景与注意

  • 适用场景:主模型已支持图像输入,且使用 LM Studio 的 OpenAI 兼容接口;read_image 在构建下一个模型请求时报错。
  • 注意点:该插件是媒体格式兼容层,不是视觉模型或 OCR 插件。若转换失败,插件采用 Fail Open 策略,保留原始 read_image 结果并记录警告,不会导致工具调用失败。
  • 环境要求:已确认在 Windows 环境下可用。

结语

该插件在保持原生 DSH 多模态流程的前提下,解决了传输层格式不匹配的问题。随着上游支持完善,该插件可能不再需要。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜