前言¶
在使用 DeepSeek Harness (DSH) 进行对话时,经常会遇到引用本地文件路径或远程媒体链接的情况。通常的做法是将这些链接复制出来,在浏览器中打开,再截图或重新粘贴回来,这增加了交互成本。dsh-inline-media-viewer 插件解决了这个问题,它允许在对话流中直接渲染图像、视频和音频,无需将文件复制到聊天记录中。
插件介绍¶
dsh-inline-media-viewer 是一个由 Wisdoverse 维护的 DSH 客户端插件。它的核心作用是在 DeepSeek Harness Web 界面中,将文本中提及的媒体路径和 URL 转换为安全的内联预览。这包括本地文件(工作区安全)、直接的网络媒体,以及可选的 ComfyUI 代理支持。
核心功能¶
- 内联渲染:在对话回合下方直接显示图片、视频和音频元素。
- 工作区安全的读取:使用
realpath解析本地路径,拒绝遍历攻击、工作区外的路径以及符号链接逃逸。 - 可选 ComfyUI 代理:从配置的 ComfyUI 源服务器端获取识别到的媒体 URL。
- 有界传输:限制文件或响应大小为 48 MiB,远程请求超时时间为 20 秒。
- 用户控制:提供自动渲染开关、每轮最大项目数限制、媒体高度设置以及 ComfyUI 原点配置。
安装与启用¶
该插件支持 DSH v0.1.7-rc.2 和 v0.2.0-rc.2。安装需要在 Web 配置文件中执行以下命令:
dsh plugin --profile web add @wisdoverse/dsh-inline-media-viewer@1.0.12
安装后请重启 Web 配置文件以激活插件。
配置¶
进入 Settings → 媒体预览 / Media preview 进行设置。所有设置均存储在活动 DSH 配置文件中。
| 设置项 | 默认值 | 允许值 |
|---|---|---|
| 自动渲染检测到的媒体 | On | On / off |
| 每轮最大项目数 | 12 | 1 - 30 |
| 最大媒体高度 | 380 px | 160 - 1200 px |
| ComfyUI 原点 (可选) | 空 | http(s)://host[:port] |
ComfyUI 原点配置说明:
* 若不使用 ComfyUI,请留空。
* 若留空,默认使用 http://127.0.0.1:8188。
* 接受格式为 http(s)://host[:port] 或裸 host[:port](默认 HTTP)。
* 默认端口:HTTP 为 8188,HTTPS 为 443。
* 不接受凭据、路径、查询字符串或片段。
* 原点必须从 DSH 主机进程可达。对于容器化环境,请使用容器内部可见的地址。
* 写入权限限制为 loopback 连接;远程浏览器只能通过插件的认证 RPC 通道读取这些设置。
安全与限制¶
该插件被设计为本地信任辅助工具,而非通用文件或网络代理:
- 本地读取:仅限于活动会话的工作区及已知的媒体扩展名。
- 远程读取:仅能指向配置的 ComfyUI 原点,拒绝重定向。
- 传输限制:本地文件和远程响应均限制为 48 MiB。
- 设置写入:限制为 loopback 连接。
- 数据格式:浏览器以
data:URLs 的形式接收媒体。
开发与维护¶
- 仓库:https://github.com/Wisdoverse/dsh-inline-media-viewer-plugin
- 许可证:MIT
- 开发环境:项目依赖
@deepseek-ai/cordis和@deepseek-ai/schemastery。 - 目录链接:https://www.skillhub.cn/plugins/Wisdoverse/dsh-inline-media-viewer-plugin
总结¶
dsh-inline-media-viewer 通过在对话流中直接渲染媒体,简化了媒体引用的查看流程。结合对本地文件路径的安全处理和可选的 ComfyUI 代理功能,它在保持轻量级的同时,提供了实用的媒体预览能力。