DeepSeek Harness 插件:图片附件超限自动降级

前言

DSH 的核心理念是「一切皆插件」。在 attachments 服务入口 saveImages 中,若上传图片触发了原有准入限制(长边 >2000px、单图 >3.5MB 或像素 >4000 万),系统会直接拒绝。这导致用户上传手机原图时体验极差,经常因合规性被拦截。

本插件在入库前拦截这些超限图片,利用 sharp 进行自动降级,确保入库后图片恒满足准入限制,模型请求、vision-bridge 和历史导出均能拿到合规文件。

插件定位

  • 名称:dsh-attachment-downscale
  • 一句话:DSH 插件:图片附件超限自动降级(长边 ≤2000px / 单图 ≤3.5MB / 像素 ≤4000 万)
  • 维护者:zoumutou
  • 类别:工作流
  • 许可证:MIT

核心功能

插件在 saveImages 入口对图片进行处理,具备以下能力:

  1. 超尺寸自动等比缩放:优先将长边缩放至 2000px 以内。
  2. 重编码压缩:若缩放后仍超限,对 jpeg/webp 格式进行降质处理(质量阶梯)。
  3. 格式兜底:若重编码失败,自动转为 webp 格式。
  4. 跳过动图:多帧动图(GIF/WebP)直接跳过,避免破坏动画效果。
  5. 错误容错:处理失败时,直通原准入逻辑(维持原拒绝行为),绝不吞掉错误。
  6. 结果合规:入库后图片恒满足准入限制。

安装与启用

插件依赖 @deepseek-ai/cordis 和 sharp。

本地开发构建:

npm run build

装入 web profile(热生效,无需重启):

dev_install_package /Users/zoumutou/coded/dsh-attachment-downscale web

生产环境安装:

dsh plugin --profile web add github:zoumutou/dsh-attachment-downscale

配置说明

插件支持通过 config 字段调整行为:

- insert:
    - name: dsh-attachment-downscale
      config:
        enabled: true      # 关闭后恢复原拒绝行为
        quality: 82        # 重编码质量(jpeg/webp)
        # 以下缺省值跟随 attachments 服务自身的准入限制:
        # maxImageDimension: 2000
        # maxImageBytes: 3670016
        # maxImagePixels: 40000000

生态与市场

  • 依赖环境:运行于 DSH 进程内,需确保环境包含 @deepseek-ai/cordis 和 sharp。
  • 市场收录:npm 包需包含 dsh-plugin 关键词,GitHub 仓库需打 dsh-plugin 话题标签,社区市场(dsh-suite 或独立市场)会自动收录,无需手动提 PR。
  • 包发布:执行 npm pack 可生成 .tgz 文件。

结尾

该插件通过在 saveImages 入口进行预处理,解决了严格准入规则与用户上传行为之间的冲突,保证了下游系统处理的图片始终合规。完整目录与源码可参考下方链接。

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

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

小夜