
condaThinker/dsh-image-inline
30最近提交 2026年8月14日
dsh-image-inline DSH 插件
本插件添加一个 show_image 工具,模型调用后可在对话流中直接显示图片。图片以内容寻址附件存储,并用官方 MessageImage 组件渲染。图片数据不进入模型上下文,保持纯文本路由不受影响。
如何安装 dsh-image-inline DSH 插件
dsh plugin --profile web add github:condaThinker/dsh-image-inline复制不会执行命令。安装 dsh-image-inline DSH 插件前请核对仓库和版本。
dsh-image-inline DSH 插件数据来源
dsh-image-inline DSH 插件快照日期:2026年8月16日
discovered
dsh-image-inline DSH 插件能做什么
- 模型可调用 show_image 工具,传入磁盘路径显示图片
- 图片以内容寻址附件(sha256)存储,通过插件专属 HTTP 端点提供访问
- 可配置限制:最大图片字节(默认 25 MiB)、最大像素(默认 40MP)、允许的媒体类型(png, jpeg, webp, gif)
- 客户端渲染:缩略图、点击查看原图、加载失败可重试
- 工具调用结果纯文本,图片载荷通过 meta 和独立 HTTP 通道传递,不进入模型上下文
- 注册表持久化于 $DSH_HOME/plugins/dsh-image-inline/registry.json
dsh-image-inline DSH 插件适合哪些场景
- 在对话中展示本地图表或截图供用户查看
- 显示模型生成的文件(如之前工具调用的结果),不污染模型上下文
- 展示证据图片(如示意图、照片),模型通过工具调用引用,用户可上翻历史查看
dsh-image-inline DSH 插件适合谁
- 希望模型在对话中内联显示图片的 DSH Web UI 用户
- 运行支持工具调用的模型的 DSH 开发者或研究人员
dsh-image-inline DSH 插件的限制
- 像素限制检查在 saveImage 之后执行,若插件 maxImagePixels 比部署默认更严格,会留下无引用的孤儿附件
- 注册表单调增长,每张显示的图片在 registry.json 中增加约 200 字节
- 无构建步骤,修改 bundle 后需重启 profile 才能生效(HMR 不覆盖 bundle 变更)
- 仅适用于 DSH Web profile,且需要模型支持工具调用(show_image)
dsh-image-inline DSH 插件的仓库 README 摘录
以下文字摘自 dsh-image-inline DSH 插件的上游仓库 condaThinker/dsh-image-inline 的 README,版权归原作者,仅作引用。
让 DeepSeek Harness (DSH) 的 Web UI 支持**模型主动把一张图片渲染进对话流**(QQ/微信聊天式:图片显示在会话里、可上翻、和对话同步)。 对话流消息内容里**只保留路径文本**,图片本身**不进入模型上下文**(模型上下文保持干净,纯文本模型路由不受影响)。 ## 工作方式 模型调用新增的 `show_image` 工具(传入磁盘图片路径)时: 1. **host**(`dsh/index.js`):校验路径/格式/大小 → 读取字节 → 通过附件服务 `saveImage` 存成内容寻址附件 → 返回**纯文本**结果(路径 + 元数据摘要)。图片的展示载荷(attachmentId/宽高/字节数)通过工具的 `presentationMeta` 放进 `tool/result` 事件的 `meta` 字段——**不进模型上下文、不进会话日志的 image 块**。 2. **client**(`dsh/client.js`):注册 `tool.call.toolview` 键控槽位(key = `show_image`),在对话流中该工具调用的位置渲染图片卡片(复用官方 `MessageImage` 组件:缩略图、点击看原图、加载失败可重试)。图片 URL 走插件自己的内容寻址 HTTP 端点。 ``` 模型 → show_image(path) → 附件服务存图 → 纯文本结果(路径+摘要) │ ├─ tool/result meta ─→ client toolview 渲染图片卡片 └─ 注册表($DSH_HOME/plugins/dsh-image-inline/registry.json) └─ GET /plugin/show-image/<attachmentId> → 图片字节 ``` ### 为什么需要插件自己的 HTTP 端点? DSH 内置的 `conversation.resolveImage` → `session.attachment` RPC 只服务"会话日志的 image 块里被引用的附件"(`api-proxy` 的 `referencedImage` 授权)。本插件的结果**故意不包含 image 块**(否则图片会进入模型上下文),因此附件永远不会被日志引用,必须由插件自己提供读取通道。 安全性:attachmentId 是 `sha256:<hex>` 内容哈希——**内容寻址 c
阅读完整 README仓库未声明许可,使用前请先与作者确认。
dsh-image-inline DSH 插件常见问题
如何安装 dsh-image-inline?
执行命令 `npx -p @deepseek-ai/dsh dsh plugin --profile web add github:condaThinker/dsh-image-inline`,然后重启 DSH Web profile(例如 `sudo systemctl restart dsh`)。无需构建步骤,插件是纯 JavaScript。
如何使用这个插件显示图片?
在对话中,让模型调用 `show_image` 工具,传入图片文件的磁盘路径。例如:'用 show_image 显示 /path/to/your/image.png'。图片会以卡片形式出现在对话流中,显示缩略图,点击可查看原图。
支持哪些图片格式和大小限制?
默认支持 png、jpeg、webp 和 gif。最大图片字节为 25 MiB(可通过 `maxImageBytes` 配置),最大像素数为 4000 万像素(可通过 `maxImagePixels` 配置)。你可以在 `cordis.patch.yml` 的插件配置区调整这些值。
图片数据会进入模型上下文吗?
不会。插件设计上保持模型上下文纯净。图片以内容寻址附件存储,模型只收到文本结果(路径和元数据摘要)。图片载荷通过 HTTP 端点直接传递给浏览器渲染,不进入模型上下文。
如何卸载插件?
执行 `npx -p @deepseek-ai/dsh dsh plugin --profile web remove dsh-image-inline`,然后重启 DSH Web profile。这将移除插件的注册表并停止提供图片服务。