dshbase

插件目录 / Developer / dsh-view-image

dsh-view-image

已验证 · 实测可装 johnoooooo

✓ 持续维护

查看 GitHub ↗ ← 返回插件目录

0Stars
0Forks
0未关闭 issue
—语言
2026-08-18最近推送
跨平台平台

功能简介

让 dsh 用独立的 OpenAI 兼容视觉模型读图:纯文本路由下粘贴图片自动改写为附件标记,聊天流内联显示图片(右对齐缩略图/点击放大/复制/拖拽),主对话历史只保留纯文本描述

✅
我们的评价
可用 — 实测通过,早期项目

让 dsh 用独立的 OpenAI 兼容视觉模型读图:纯文本路由下粘贴图片自动改写为附件标记,聊天流内联显示图片(右对齐缩略图/点击放大/复制/拖拽),主对话历史只保留纯文本描述 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

README

dsh-view-image

让 dsh 用独立的 OpenAI 兼容视觉模型读图,返回纯文本描述——主模型不需要支持视觉模态,纯文本模型也能粘贴图片、识别图片(图片字节不进主对话历史)。

功能特性

  • 纯文本模型也能读图:主对话历史只保留「工具调用 + 纯文本结果」,图片字节不进模型上下文;read_image 会被拒绝的纯文本路由(如 deepseek-v4-flash)也能正常识别图片。
  • Web 粘贴图片即用:输入框直接 Ctrl+V 粘贴,纯文本路由下自动落库为持久附件并改写为文本标记,不再弹「当前模型不支持图片」。
  • 聊天流内联缩略图:用户消息内联显示粘贴图(右对齐、240px、object-fit cover),一次粘贴多张全部显示;点击放大、悬停「复制」按钮一键加入输入框(同时写剪贴板)、可拖拽回输入框。
  • 终端 / headless 读图:主模型传文件路径即可读图(尊重 session cwd),适合脚本化场景。
  • 界面语言跟随 dsh:按钮/反馈文案随 dsh 界面语言实时切换中英文。
  • 识别行为可配置:默认提示词(defaultPrompt)、intent 后缀(intentSuffix)、主模型 intent 软引导(intentGuidance)均可在 profile 配置层覆盖。
  • 附件持久化:内容寻址(sha256)、同图去重、完整性校验,会话可恢复/重放;聊天缩略图跨重启也能兑底显示。
  • 视觉模型可插拔:OpenAI 兼容端点(Ollama / vLLM / LiteLLM / OpenRouter / 阿里云百炼 / opencode.ai 等),配置在 vision-model.json。

安装

克隆仓库并安装到目标 profile(把 web 换成你的 profile 名):

git clone https://github.com/johnoooooo/dsh-view-image.git
cd dsh-view-image
dsh plugin --profile web add file:$PWD

安装完成后重启 dsh 生效。

卸载

dsh plugin --profile web remove dsh-view-image

配置视觉模型

复制示例并编辑 $DSH_HOME/vision-model.json(默认 ~/.dsh/vision-model.json):

cp vision-model.example.opencode.json ~/.dsh/vision-model.json

阿里云百炼(通义千问 VL):

{
  "baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions",
  "apiKey": "sk-your-aliyun-api-key",
  "model": "qwen3.7-plus",
  "api": "openai-completions",
  "maxTokens": 2048
}

opencode.ai(MiMo-V2.5):

{
  "baseUrl": "https://opencode.ai/zen/go/v1/chat/completions",
  "apiKey": "sk-your-api-key",
  "model": "mimo-v2.5",
  "api": "openai-completions",
  "maxTokens": 8092
}
字段 说明
baseUrl OpenAI 兼容端点(Ollama /v1 / vLLM / LiteLLM / OpenRouter / opencode.ai 等;省略 /chat/completions 后缀时插件自动补)
apiKey 端点 API Key(占位 sk-your-api-key 换成自己的)
model 视觉模型名(如 mimo-v2.5)
api 协议:openai-completions(默认,@ai-sdk/openai-compatible 兼容)
maxTokens 最大输出 token(默认 2048;密集 OCR 可提到 4096-8192)

配置缺失时插件正常加载但不注册 view_image(只打一条日志),补齐后重启或 /reload 生效。

可选插件配置

插件 bundle 自带默认配置(见仓库 cordis.patch.yml),开箱即用,一般无需修改。

使用

Web 界面(粘贴图片)

  1. 输入框直接粘贴图片(Ctrl+V)。
  2. 纯文本路由下(如 deepseek-v4-flash):插件把图片落库为持久附件,替换成文本标记 [Image Attachment: ...] 发给模型——不再弹「当前模型不支持图片」。
  3. 模型看到标记自动调用 view_image,返回纯文本描述;聊天流里用户消息内联显示缩略图(一次多张全部显示),支持点击放大、悬停「复制」按钮一键加入输入框(同时尽力复制到剪贴板)、拖拽回输入框。

原理:插件包装宿主 apiProxy.sessions.prompt,仅在纯文本路由时改写图片;模型支持图片的路由完全走原生流程。

终端 / headless(图片路径)

模型会自动调用 view_image 读取图片:

dsh --profile headless "用 view_image 工具查看 /path/to/img.png 并描述内容"

工作原理

  • view_image 支持两种来源:file_path(fs 解析,尊重 session cwd)或 attachment_id(持久附件)。
  • 图片以 base64 data URL 发给独立视觉模型,结果只写纯文本——图片字节不进主对话历史。
  • 粘贴改写:图片落库为持久附件(内容寻址、同图去重、完整性校验),替换成文本标记;模型看到标记后调用 view_image。
  • 附件引用有进程内 registry + 标记字段双保险,跨重启也能兑底读取。
  • 预览路由 /dsh-view-image/attachment/<sha256> 供缩略图拉取字节(URL 带元数据参数兑底)。
  • 客户端是纯展示层 DOM 增强:扫描标记渲染缩略图(对抗 React 重渲染),不改变模型上下文。

附件存储

图片存放在 ~/.dsh/attachments/v1/objects/<sha256前2位>/<sha256>。没有 GC:删除会话不会删附件,想清空就 rm -rf ~/.dsh/attachments。

许可

MIT

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-view-image」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

dsh plugin --profile web add github:johnoooooo/dsh-view-image

Headless(CLI)profile:

dsh plugin --profile headless add github:johnoooooo/dsh-view-image

实测报告

验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

Developer 里更多

浏览全部 7819 个插件 →