deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
🎨 文生图 / 图生图 / 生成历史 / 一体化设置 —— 与 dsh-image-vision 同系列的 DSH 图像插件
核心思想:在 DSH 里直接生图,不离开对话。插件通过宿主进程安全代理 OpenAI 兼容的图像生成接口(/images/generations 文生图、/images/edits 图生图),在侧边栏提供三栏生图工作台;同时把 generate_image 工具注册给 Agent——在对话框里让模型直接生图,结果自动进入面板历史。
🎯 与视觉插件互补
dsh-image-vision 负责「看懂图片」,本插件负责「画出图片」:生图面板的图生图参考图、历史记录里的图片,都能直接配合视觉插件精读。两者设置页 UI 完全一致,配置体验统一。
/images/edits)。generate_image 工具,对话框里模型可直接生图;生成成功后自动写入面板历史。edit),自动改用同供应商的生图模型,不再报 Missing required key: image。~/.dsh/plugin/dsh-image-create/images/,index.json 记录提示词与参数,最多保留 50 条;支持查看、恢复参数、删除、清空;面板历史区显示「图片保存于:实际路径」。方式一:一条命令安装最新 Release(推荐,无需源码/依赖,始终是最新版)
dsh plugin --profile web add https://github.com/xiaoyuink/dsh-image-create/releases/latest/download/xiaoyuink-dsh-image-create-latest.tgz
上面的 URL 永远指向最新版本(
/releases/latest/自动重定向到最新 Release 的资产),无需改版本号。若想安装指定版本,把latest换成版本号即可,例如:.../releases/download/v1.4.1/xiaoyuink-dsh-image-create-1.4.1.tgz升级更简单:打开 DSH 设置 → 生图插件,插件会自动检测 GitHub 新版本并一键更新,无需手动改 URL 重装。
方式二:GitHub 仓库开发模式(link:,代码改动重启即生效,适合二次开发)
# 建议在 ~/.dsh 下新建 plugin 目录,统一存放插件本体
mkdir -p ~/.dsh/plugin
cd ~/.dsh/plugin
# 克隆仓库
git clone https://github.com/xiaoyuink/dsh-image-create.git
cd dsh-image-create
pnpm install
pnpm run build
# 添加到 DSH 配置(link: 协议)
dsh plugin --profile web add "$(pwd)"
💡 关于插件存放位置:开发模式建议将插件本体放在
~/.dsh/plugin/目录下统一管理,也可以根据你的喜好放在任意位置,dsh plugin add时指向该路径即可。
安装完成后重启 dsh web,然后按以下步骤开始使用:
进入 DSH 设置 → 生图插件(或「设置 → 插件 → 可配置」卡片),点击 + 添加供应商:
env:VAR 或 cred:REF 引用,见下文「API Key 安全」);面板方式(推荐)
从 DSH 侧栏打开「生图插件」→ 输入提示词 → 选择尺寸/清晰度/数量 → 点击「开始生成」
Agent 方式
在对话框里对模型说:「帮我生成一张 xxx」
模型会自动调用 generate_image 工具生图,结果会同时显示在面板历史记录中。
~/.dsh/plugin/dsh-image-create/images/(历史区顶部会显示实际路径);generate_image| 参数 | 必填 | 说明 |
|---|---|---|
prompt |
是 | 详细的图片描述(风格、构图、色彩、光线、主体) |
size |
否 | auto / 1024x1024 / 1792x1024 / 1024x1792 / 1536x1024 / 1024x1536,默认 auto |
quality |
否 | auto / low / medium / high |
n |
否 | 生成数量(1–4),默认 1 |
detail |
否 | ''(自动)/ standard / high(部分网关支持) |
image |
否 | 参考图 data URL,提供后走图生图 |
渲染与视觉插件设置页一致(供应商卡片浅灰头部、状态点、就地编辑灰色卡片、框式当前使用条):
generate_image 工具、Agent 播报与生图工作台;关闭后主界面「生图插件」面板与侧栏入口消失,工具与播报注销,对话框如同没有这个插件(设置页保留,可随时重新开启)。GET /config 返回 ******** 占位);留空保存 = 保留原 Key。~/.dsh/.credentials.yaml),settings.yaml 只存 cred:IMAGEGEN_<供应商id> 引用;凭据服务不可用时拒绝保存,绝不落明文。env:VAR 环境变量引用。settings.yaml,重新保存一次该供应商即可自动迁移为 cred:REF。~/.dsh/plugin/dsh-image-create/images/~/.dsh/plugin/dsh-image-create/index.jsonadd 覆盖目录)前建议备份 images/ 与 index.json。image-create 段)image-create:
enabled: true # 总开关
announceToAgent: true # 是否向 Agent 播报插件能力
providers:
- id: p-1787158417469-sexa # 供应商唯一 id(自动生成)
name: SiliconFlow
apiBaseUrl: https://api.siliconflow.cn/v1
apiKey: cred:IMAGEGEN_p_xxx # 凭据引用(明文存于 ~/.dsh/.credentials.yaml)
models:
- id: Qwen/Qwen-Image
- id: Qwen/Qwen-Image-Edit
active: "p-1787158417469-sexa:Qwen/Qwen-Image" # 当前激活 "供应商id:模型id"
| 方法 | 路径 | 用途 |
|---|---|---|
| GET/POST | /api/dsh-image-create/config |
读/写配置(GET 返回脱敏 Key + saveDir 图片保存目录) |
| POST | /api/dsh-image-create/activate |
切换当前激活的供应商/模型 |
| POST | /api/dsh-image-create/models |
模型发现 |
| POST | /api/dsh-image-create/generate |
生成代理(文生图 / 图生图) |
| POST | /api/dsh-image-create/history/list |
历史列表 |
| POST | /api/dsh-image-create/history/append |
追加历史(Agent 工具亦调用) |
| POST | /api/dsh-image-create/history/remove |
删除一条历史 |
| POST | /api/dsh-image-create/history/clear |
清空历史 |
| GET | /api/dsh-image-create/history/image/<file> |
历史图片回读 |
| POST | /api/dsh-image-create/update/check |
检查 GitHub Release 更新 |
| POST | /api/dsh-image-create/update/apply |
应用更新(重启后生效) |
| 场景 | 请求 |
|---|---|
| 文生图 | POST {apiBaseUrl}/images/generations,JSON 请求体 |
| 图生图 | POST {apiBaseUrl}/images/edits,multipart/form-data(image、prompt、model、参数) |
| 响应 | 支持 OpenAI 兼容 { data: [{ b64_json | url }] };URL 图片由宿主下载转 base64 后返回浏览器 |
| 多供应商 | 激活供应商失败自动降级到其他已配置供应商 |
detail 与自定义 ppi 为透传参数,部分网关支持;官方端点若不接受,引擎会自动去掉 ppi 重试。
dsh-image-create/
├── package.json # 声明 dsh.bundle.patch + dsh.client
├── cordis.patch.yml # insert 插件行(挂载 bundle)
├── src/
│ ├── index.ts # host 半:设置注册、generate_image 工具、路由挂载、播报
│ ├── routes.ts # /api/dsh-image-create/* 路由(配置/生成/历史/更新)
│ ├── engine.ts # 上游生成代理、多供应商降级、编辑模型回退
│ ├── history-store.ts # 历史与图片持久化(~/.dsh/plugin/dsh-image-create/)
│ ├── protocol.ts # 路由路径/类型/厂商模板
│ ├── updater.ts # GitHub Release 更新
│ └── client/ # 生图工作台、设置页(与视觉插件一致)、侧栏入口
├── docs/images/ # 截图
└── images/ # 运行时:生成图片保存目录(+ index.json 历史索引)
给维护者:发布 Release 时,除
xiaoyuink-dsh-image-create-<版本>.tgz外,请再上传一份固定名资产xiaoyuink-dsh-image-create-latest.tgz(内容相同),保证首页「一条命令安装最新 Release」的releases/latest/download/链接始终指向最新的包。
schemastery 依赖迁移为 @deepseek-ai/schemastery;settings 注册改用当前 SettingsProvider.installSection(installSettingsSection/settingsNamespace 已从 dsh-settings 移除);移除已不存在的 @deepseek-ai/dsh-client-runtime 客户端依赖(client bundle 改为外部依赖 react / dsh-client-ui-primitives,与视觉插件同款);客户端 Context 类型改用 @deepseek-ai/cordis 并补齐 renderer / session-controller / conversation 类型声明;ImageAttachmentRef 品牌类型适配(attachmentId/mediaType 按当前 dsh-attachment 品牌化)。cred:REF 未解析导致 401);候选模型按关键词标注「生图/非生图」,非生图模型禁选并支持人工纠错(⇄ 按钮翻转判定);候选列表新增搜索框(不区分大小写)与双级排序(按名称/按是否生图,各可升/降序);供应商卡片与卡片内模型支持拖拽排序(≡ 手柄,松手自动保存);预设厂商下拉对已添加厂商置灰标注「已添加」防重复;添加供应商不再自动预填预设模型(须点「获取模型列表」勾选或手动添加)。qwen-image-3.x 自动走官方 multimodal-generation 接口);修复凭据保存时 set 丢失 this 导致 API Key 无法保存的问题;修复设置页切换模型后生图面板模型下拉不同步的问题。cred:REF)、图片保存目录迁入插件安装目录并自动迁移旧数据、自定义尺寸/PPI/数量、编辑模型自动回退、Agent 生图写入面板历史、图生图拖拽不泄漏到对话框、历史区显示图片保存位置。CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。