跳到正文

reimu-create/dsh-vision

30最近提交 2026年8月14日

dsh-vision DSH 插件

dsh-vision 是一个 DSH 插件,它自动将图片消息转换为文字描述,让 DeepSeek-V4 等纯文本模型也能“看到”图片。它通过拦截请求中的图片块,使用视觉模型生成描述,并将描述作为仅模型可见的用户消息追加到会话中,同时保留人类转录中的原图。需要 uiopt 插件提供图形化配置界面。

如何安装 dsh-vision DSH 插件

dsh plugin --profile web add link:D:/dsh-plugins/dsh-vision

复制不会执行命令。安装 dsh-vision DSH 插件前请核对仓库和版本。

dsh-vision DSH 插件数据来源

dsh-vision DSH 插件快照日期:2026年8月16日

discovered

dsh-vision DSH 插件能做什么

  • 自动将纯文本模型请求中的图片桥接为文字描述
  • 支持通过 see_image 工具手动查询图片,附带可选问题
  • 支持任意声明了图片输入的视觉模型,通过配置热切换
  • 配置热生效,可通过 settings.yaml 或 uiopt 界面修改
  • 描述固化在会话历史中,使前缀缓存与纯文本会话等价
  • 递归处理模型工具调用返回的嵌套图片(如 read_image)

dsh-vision DSH 插件适合哪些场景

  • 使用纯文本模型(如 DeepSeek-V4)分析图片,无需切换模型
  • 自动描述聊天中上传的图片,让模型理解上下文
  • 手动让模型重新审视某张图片,并附带具体问题
  • 复用同一 API Key,同时支持文本和视觉模型,降低成本
  • 在主要模型不具备视觉能力的工作流中启用图片理解

dsh-vision DSH 插件适合谁

  • 使用 DSH 且主模型为纯文本模型,偶尔需要图片理解的用户
  • 希望在不更换主模型的前提下,为现有 DSH 配置添加视觉能力的开发者

dsh-vision DSH 插件的限制

  • 依赖 DSH 预览版 API(llm/stream waterfall、surface replace、foldSurface),RC 升级若改签名需同步更新
  • 需要 uiopt 插件才能使用图形化配置界面;否则只能手动编辑 settings.yaml
  • 视觉模型必须真实支持图片输入,配置错误会导致占位文本(不会死循环)
  • 图片首次出现在历史中部时,该轮从图片处起前缀缓存失效一次,之后恢复

dsh-vision DSH 插件的仓库 README 摘录

以下文字摘自 dsh-vision DSH 插件的上游仓库 reimu-create/dsh-vision 的 README,版权归原作者,仅作引用。

> **⚠️ 依赖提示:本插件需要搭配 [uiopt](https://github.com/237229953-create/uiopt) 项目一起使用。** > 视觉模型的图形化配置界面(视觉模型下拉、输出上限、模式、超时)由 uiopt 的"额外插件 → 可配置插件"标签页承载;未安装 uiopt 时,只能通过 `settings.yaml` 手动配置,且无法在界面中切换视觉模型。 让 DeepSeek-V4 这类纯文本模型在 dsh 里"看到"图片:图片消息自动桥接为视觉模型生成的文字描述,原图保留在人类转录中。零新增凭据 —— 视觉模型复用 profile 已配置的 `llm-pi-ai` 路由(默认 `opencode-go / minimax-m3`,与主模型同一把 key)。 ## 原理(全部基于 dsh 官方机制,零 hack) 1. 包装 `llm/stream` 的 `streamWithRegistration` 方法:请求含 image 块且目标模型未声明 image 输入时触发(适配器层之前的准入门禁由 resolveModelInfo 包装放行,二者联动); 2. 用视觉模型把图片转为文字描述(描述带"识图结果"身份标记,主模型明确知道内容来自识图模型); 3. 把描述作为一条 `user/message` surface-replace 事件 append 进会话日志(与 compaction 压缩历史同款机制)——**只对模型可见,人类转录保留原图**; 4. 本次请求用同一份描述改写后放行,首轮即成功;模型调用 `read_image` 等工具返回的嵌套图片同样被递归识别改写; 5. 替换事件落库后,后续每轮历史投影天然给出稳定文本:网关前缀缓存与普通文本会话完全等价(历史全命中,仅新消息 miss)。 ## 安装 ```powershell # 1. 接线到 profile(把本地目录作为 link 依赖加入 bundle,依赖自动 reconcile 进层栈) dsh plugin --profile web add link:D:/dsh-plugins/dsh-vision # 2. 重启 dsh web 后验证挂载 dsh --profile web --dump-config | Select-String dsh-vision ``` ## 配置(官方 settings 通道,热生效) **界面方式(需 uiopt)**:设置 → 插件 → 额外插件 → 可配置插件 → 展开 **dsh-vision** 卡片: - **视觉模型下拉**:自动枚举当前所有 provider 中声明 `[text, image]` 输入的模型(按提供方分组); - 高级字段:输出上限、模式(auto/manua

阅读完整 README仓库许可: MIT

dsh-vision DSH 插件常见问题

如何安装 dsh-vision?

使用命令 `dsh plugin --profile web add link:D:/dsh-plugins/dsh-vision` 将本地目录作为链接依赖添加。然后重启 DSH Web 服务。验证安装:`dsh --profile web --dump-config | Select-String dsh-vision`。

需要为视觉模型额外申请 API Key 吗?

不需要。dsh-vision 复用 profile 中已配置的 `llm-pi-ai` 路由的 API Key(默认 opencode-go / minimax-m3),无需额外凭据。

可以使用任意视觉模型吗?

可以。插件会自动枚举当前所有 provider 中声明了 text 和 image 输入的模型,并在 uiopt 界面提供下拉选择。你也可以手动在 settings.yaml 中指定 provider 和 model。

使用 dsh-vision 会增加成本吗?

每次图片描述会消耗视觉模型的 token(通常几百 token),成本很低。且只有首次遇到该图片时才会产生,后续对话中会复用已缓存的描述,成本趋近于零。

如果视觉模型调用失败会怎样?

如果视觉模型调用失败,插件会在消息中放置占位文本(如“解析失败”)。本次请求仍然成功,且占位文本不会被持久化,下次遇到该图片时会自动重试。