DeepSeek Harness 插件

dsh-refpics

Reference-image search for the dsh web GUI: a model-facing search_refs tool that queries Openverse (keyless) or Pexels / Pixabay / Unsplash (API key) for design reference images, plus a browser half(英文原文)

跳到安装方式

来源信息

GitHub 仓库
Ghz114514/dsh-refpics
最近更新
2026年8月15日
分类
工具与能力
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/Ghz114514/dsh-refpics
插件名:dsh-refpics
作者:Ghz114514

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh.md来源说明 · 只读预览
README 语言

dsh-refpics — 参考图搜索插件

English | 中文

为 dsh Web GUI 提供面向模型的 search_refs 工具:把一句自然语言描述("极简客厅"、"粗野主义海报版式"、 "赛博朋克霓虹街道夜景"……)变成一批匹配的参考图,并在对话里以 Pinterest 式瀑布流直接展示—— 悬停显示作者与标题,点击进入带键盘操作的灯箱大图。

一个包、两个半区。node 半区(host 进程)注册 search_refs 工具和 "Reference pictures" 设置区; browser 半区(Web GUI)注册 tool.call.toolview 的 keyed 条目接管该工具每个调用的渲染,因此瀑布流 内联出现在聊天消息流中,不需要单独面板或页面。

能力

能力说明
自然语言搜索一次调用直接把用户的原始描述作为 query,无需手工翻译成英文关键词
四个图库Openverse(免 key,始终可用)、Pexels、Pixabay、Unsplash(免费 API key);provider: auto 优先使用已配置 key 的图库,否则回退 Openverse
Pinterest 式瀑布流对话轮次内响应式多列瀑布流;懒加载缩略图,悬停浮层显示标题与作者
灯箱大图点击任意卡片查看大图,含标题、作者、源站链接,支持前后切换与 Esc/方向键
换一批 / 翻页每面墙上都有操作按钮:换一批向会话排队一条提示让模型重新搜一批,翻页排队同一查询的下一页——新结果以普通聊天墙的形式出现
侧边栏看板(dsh-better-sidebar)在右侧边栏注册单实例「参考图」标签页:镜像本会话最新的聊天搜索结果,也可以直接输入搜索(换一批/翻页即时生效,无需模型往返);墙上的「在侧边栏打开」一键跳过去
图片下载一键通过宿主代理路由下载图片(限 30 MiB、仅图片内容类型、文件名消毒)
一键保存到 Eagle一键把图片 URL 发给本地 Eagle 应用(/api/item/addFromURLs,带 website/tags 元数据);Eagle 端口与可选令牌可配置
保留署名每张结果都带作者、作者主页、源站页面与许可信息,墙与模型文本均展示
方向与翻页orientation: any/landscape/portrait/square 过滤;page 获取同一查询的更多结果
结果边界数量限制在 1-30 张;单请求 20 秒超时;10 分钟 TTL 的内存缓存去重重复查询
安全降级运行中显示骨架屏;失败显示错误;异常负载回退为纯文本卡片——坏结果永远不会打崩聊天行
不爬虫工具只调用官方公开 API。刻意不抓取 Pinterest(无公开 API、违反其服务条款);Openverse/Pexels/Pixabay/Unsplash 是合规替代

安装

# 从 GitHub 安装 —— 仓库自带构建产物,无需本地构建
dsh plugin --profile web add github:Ghz114514/dsh-refpics

安装后重启一次 dsh web 宿主(或 GUI)让 profile 载入新 bundle;之后客户端更新只需刷新页面。 插件无需配置即可挂载:auto 立即回退到 Openverse;带 key 的图库在填好 key 前会给出清晰的报错提示。

本地开发(本仓库):

pnpm install          # node >= 22.19
pnpm build            # lib/index.js(host)+ lib/client.js(browser)
dsh plugin --profile web add file:<repo>     # 安装本地构建
# 重新构建后,用同样方式刷新已安装副本

配置

设置 → 插件配置 → Reference picturesref-pics 设置区,改动即时生效):

默认含义
pexelsKeyPexels API key(免费申请:pexels.com/api);留空禁用该图库
pixabayKeyPixabay API key(免费申请:pixabay.com/api/docs);留空禁用该图库
unsplashKeyUnsplash access key(免费申请:unsplash.com/developers);留空禁用该图库
defaultProviderauto调用传 auto 时优先使用的图库
defaultCount12调用省略 count 时的图片数量(1-30)
eaglePort41595Eagle 本地 API 端口;0 禁用保存到 Eagle 的路由
eagleToken可选 Eagle API 令牌(仅当 Eagle 需要时填写)

key 与 Eagle 令牌在设置 schema 中标记为 secret(卡片中掩码显示),且不会出现在日志、工具输出或模型可见文本中。

浏览器半区暴露四条同源宿主路由:GET /refpics/search(看板直搜)、GET /refpics/download(代理下载,30 MiB 上限、仅图片类型)、POST /refpics/eagle(添加单张图片到本地 Eagle)、GET /refpics/eagle/status(Eagle 健康检查)。Eagle 路由只访问 127.0.0.1:<eaglePort>

工具用法

当用户索要参考图、灵感墙(moodboard)或视觉参考时,模型调用 search_refs。参数:

| 参数 | 类型 | 默认 | 含义 | | --- | --- | --- | --- | | query | string | 必填 | 自然语言描述(风格、主体、氛围、配色、媒介) | | count | integer | 12 | 每页图片数(1-30) | | provider | enum | auto | auto \| openverse \| pexels \| pixabay \| unsplash | | orientation | enum | any | any \| landscape \| portrait \| square | | page | integer | 1 | 同一查询的页码(取更多结果) |

会触发它的示例说法:"帮我找几张极简客厅的参考图"、"show me reference images of brutalist poster layouts"、"做一个赛博朋克风格的 moodboard"。

安全模型

  • 仅通过 HTTPS 调用官方公开 API;不抓取、无 cookie、无登录。
  • API key 存于设置区(role: secret),按调用解析,永不写入日志或返回给模型;HTTP 错误摘要截断到 200 字符。
  • 请求有界:每次图库调用 20 秒超时(工具级协作超时 30 秒),取消时转发 abort 信号。
  • 结果为图库托管的图片 URL 及署名元数据;插件本身不存储任何内容。

开发

pnpm install          # 依赖(node >= 22.19)
pnpm build            # tsc -b && tsdown -> lib/index.js(host)+ lib/client.js(browser)
pnpm typecheck        # host + client 两个 program + 测试
pnpm test             # node --test tests/(31 个用例,进程内运行)
node scripts/smoke-host.mjs    # 端到端冒烟:注册工具并真实调用一次 Openverse 搜索
node scripts/smoke-client.mjs  # 模拟浏览器冒烟:client bundle 及其服务接线

结构遵循 dsh-web-ui 全家桶约定(适配为独立包):src/index.ts 为 host 半区、src/client/ 为 browser 半区、src/core/ 为两侧共享纯逻辑、cordis.patch.yml 为 profile 补丁、dsh.client 声明浏览器 bundle。浏览器半区使用 keyed 的 tool.call.toolview slot(key: search_refs), 不认识该插件的 UI 自动回退到通用卡片。

致谢

  • DeepSeek Harness(dsh) —— 本插件运行所在的宿主平台:

deepseek-ai/deepseek-harness

  • dsh-web-ui 插件全家桶 —— bundle 补丁的 profile 挂载机制、host/browser 双半区结构、设置区

模式与 keyed tool.call.toolview slot 模式参考自 zhu1090093659/dsh-web-ui (尤其是 packages/dsh-tool-describe-image

  • dsh-better-sidebar —— 侧边栏看板通过其标签页注册服务接入:

omdsh-dev/DSH-better-sidebar(相关项目与接入 方式见 dsh-better-sidebar topic 页

PixabayUnsplash;保存到 Eagle 使用官方 Eagle 本地 API