在 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 多模態流程的前提下,解決了傳輸層格式不匹配的問題。隨着上游支持完善,該插件可能不再需要。