dsh-client-paste-image:纯文本模型粘贴图片转文件路径

前言

DeepSeek Harness(DSH)的核心理念是「一切皆插件」。在智能体开发或日常调试中,开发者常使用纯文本模型(如 DeepSeek、GLM 系列)处理代码或文档,但剪贴板中的图片无法直接发送。系统通常会在 composer 中提示「该模型不支持视觉,请切换视觉模型」,打断工作流。

本插件在捕获阶段拦截 composer 内的图片粘贴操作,将图片字节通过 dsh-drop-caret 的上传路由落盘,并把文件路径插入输入框。这样,纯文本模型可以继续使用,而图片内容则通过路径传递给后续的 workflow 或视觉工具处理。

插件定位

这是一个 DSH Web 客户端插件,由 quei4r 维护,采用 MIT 许可证。它的核心作用是解决纯文本模型无法接收图片的问题:对于配置列表中的文本路由,它拦截粘贴并转换为路径;对于视觉模型,它保持原生行为不受干扰。

核心能力

  1. 粘贴拦截与转换
    拦截 composer(textarea / contenteditable)内的图片粘贴事件。图片会被上传至会话目录并生成文件路径,最终以文本形式插入输入框。
  2. 原生管线保护
    仅对配置列出的 textOnlyRoutes 生效。视觉模型及其它非配置模型的原生缩略图、草稿附件等行为完全不受影响。
  3. 操作绕过
    支持 Alt+粘贴 快捷键,可绕过插件拦截,走产品原生行为。
  4. 兼容性
    与 @deepseek-ai/dsh 0.1.0-rc.6 版本兼容。

安装与启用

该插件依赖宿主路由提供配置桥接与文件上传服务。

  1. 复制插件文件
    将插件目录复制到本地 DSH 安装目录。
    cp -r dsh-client-paste-image ~/.dsh/profiles/web/node_modules/
  1. 配置 Patch
    在 ~/.dsh/profiles/web/cordis.patch.yml 的 insert 列表中加入以下条目:
    - id: ui-paste-image
      name: dsh-client-paste-image
  1. 重启服务
    由于宿主半注册的路由只在启动时生效,安装后必须重启 dsh web 才能加载配置。

典型用法

插件通过 textOnlyRoutes 配置项控制生效范围。只有列表中的模型才会触发图片转路径逻辑。

- id: ui-paste-image
  name: dsh-client-paste-image
  config:
    textOnlyRoutes:
      - zai-coding-cn/glm-5.3
      - "opencode-go/deepseek-*"   # 使用通配符匹配

配置后,在 composer 中粘贴图片,系统会自动上传文件并插入路径文本。发送时,文本中包含的路径会被序列化。

适用场景与注意

适用场景:
* 需要在纯文本模型(如 DeepSeek-Coder)上下文中引用图片。
* 使用 workflow 或 agent 机制,需将图片路径传递给后续的视觉模型或工具。

注意事项:
* 前置依赖:必须安装并运行 dsh-drop-caret,它提供 POST /api/dsh-drop 上传路由。
* 配置空列表:如果 textOnlyRoutes 列表为空,插件处于 fail-safe 状态,不会拦截任何粘贴操作。
* 文件落盘:图片文件会落在 <会话cwd>/.dsh-drop/<sessionId>/ 目录下。
* 会话 ID 获取:插件依赖 conversation 插槽注入的 sessionId,确保与 DSH 版本兼容。

结语

dsh-client-paste-image 是解决 DSH Web 端纯文本模型无法直接处理图片的一个具体方案。它通过拦截与转换,填补了工具链中的一处缺口,让模型选择与上下文传递更加灵活。更多细节可参考插件目录或源码仓库。

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

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

小夜