img-preview: DeepSeek Harness 本地图片内联预览

前言

DeepSeek Harness 的核心设计理念是「一切皆插件」。在智能体开发中,展示本地生成的图片通常需要手动打开文件路径,或者使用繁琐的附件上传流程。img-preview 插件通过注册工具与回环路由,让 AI 能在对话框内直接渲染本地图片文件。

插件介绍

img-preview 是一个 DeepSeek Harness 插件,由用户 dhb861832993-star 维护,采用 MIT 许可证。它为 DSH 客户端提供了内联本地图片预览能力,支持 PNG/JPG/WebP/GIF/AVIF/BMP/SVG/ICO/TGA 格式,并包含独立的图片查看器交互。

核心功能

  1. 内联渲染与栅栏格式
    插件检测 ```img 栅栏,将其渲染为内联图片。支持单图、多图网格展示以及可选标题。

  2. 工具集成
    安装后,模型自动获得 img_serve 工具。该工具用于校验图片路径、签发可访问 URL。

  3. 回环文件路由
    插件注册 /plugins/img-preview/files 路由,宿主端通过该路由向浏览器提供图片数据。浏览器无法直接读取本地磁盘,必须通过此路由。

  4. 路径与格式校验
    仅允许工作区根目录内的路径,防止目录穿越。仅允许 png/jpg/jpeg/webp/gif/avif/bmp/svg/ico/tga 扩展名,超过 128 MiB 的文件会被拒绝。

  5. 特殊格式处理
    TGA 格式在宿主端自动解码并转码为 PNG,再由浏览器渲染。SVG 经 <img> 渲染时不执行脚本。

  6. 独立查看器
    双击缩略图可打开全屏遮罩查看器。支持滚轮缩放(5%–2000%,以光标为中心)、拖拽平移、双击 100%/2.5x 切换。提供适应窗口、100%、原图、关闭等工具栏操作。

安装与启用

使用官方安装命令添加插件:

dsh plugin --profile web add github:dhb861832993-star/img-preview

安装后重启 dsh web 服务,插件会自动注入使用说明,并在新会话中生效。

典型用法

  1. 工具调用
    Agent 需要先调用 img_serve 工具来生成可访问的 URL。
   # 工具
   img_serve(path: "H:/工作-deepseek/dm_output/xxx.png")
  1. Fence 格式
    在回复中使用 ```img 栅栏,传入路径和可选的 label。
```img
   {"path":"H:/工作-deepseek/dm_output/xxx.png","label":"可选标题"}
3. **多图展示**
```text
```img
   {"images":[{"path":"a.png"},{"path":"b.png","label":"B"}]}

`` 注意:插件会自动将路径中的反斜杠( `)规范化为正斜杠(/),确保 JSON 合法。

安全与限制

  • 权限范围:插件以当前 DSH 进程的权限运行。它仅允许工作区根目录内的路径,通过规范化路径和前缀校验防止目录穿越攻击。
  • 资源限制:文件大小限制为 128 MiB,超过该大小会被拒绝。仅支持特定的图片扩展名。
  • 渲染隔离:SVG 文件在渲染时使用 <img> 标签,浏览器会屏蔽其中的脚本执行,相对安全。

总结

img-preview 解决了 DSH 环境下本地图片展示不便的问题。通过 img_serve 工具与 ```img 栅栏的结合,开发者可以让模型在生成图片后立即在对话中展示,提升交互体验。

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

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

小夜