dsh-imagegen:DeepSeek Harness 文生图插件

前言

DeepSeek Harness(DSH)的 LLM provider 通常只处理「文本进、文本出」的 chat 路由。DashScope 的图像模型(如 qwen-image-3.0)不是 chat 模型,直接配成 provider 会返回 404 或 400 错误。文生图要走 DashScope 原生的 multimodal-generation 端点,因此需要以工具的形式暴露能力,而不是伪装成一个 chat 模型。

ninjasle/dsh-imagegen 就是这样一个插件:它为 DSH 接上了文生图能力,让模型可以直接画图,图片直接显示在对话里;同时提供输入框上的按钮,可以在不重启进程的情况下改接口地址、模型名和 API Key。

插件定位

  • 名称:dsh-imagegen
  • 维护者:ninjasle
  • 分类:模型推理
  • 简介:Text-to-image for DeepSeek Harness:一个 generate_image 工具,加上输入框上的按钮,可在不重启的情况下实时修改接口地址、模型和 API Key。

核心功能

插件提供 4 个 agent 工具、1 个输入框按钮、1 张「插件」设置卡片。

  • 工具:generate_image(文生图 / 参考图改图)、imagegen_models(查看当前配置、可用模型、密钥来源)、imagegen_config(读当前生效配置)、imagegen_set_config(改接口地址、模型名、超时、API Key)。
  • UI 按钮:输入框左下角工具行会出现一个图片按钮(在表情按钮右边),点开浮层可以改接口地址、模型名、超时、API Key。保存后立刻生效。
  • 设置页:同一张表单也会出现在「设置 → 插件 → 图片生成」里。
  • 即时生效:配置字段是 volatile 引用,loader 就地更新,不需要重启进程。

安装

前提:DSH ≥ 0.2,profile 里已装载 @deepseek-ai/dsh-tools(默认就有)与 @deepseek-ai/dsh-settings(Web profile 默认就有)。

插件已发布到 npm:@danenze/dsh-imagegeneration。

在 DSH 会话里让 agent 安装,或直接调用 plugin_manager 工具,三选一:

# 1) npm(推荐,版本可锁)
plugin_manager(action: "install_bundle", target: "@danenze/dsh-imagegeneration")

# 2) GitHub 源码
plugin_manager(action: "install_bundle", target: "github:ninjasle/dsh-imagegen")

# 3) 本地源码目录(绝对路径)
plugin_manager(action: "install_bundle", target: "/path/to/dsh-imagegen")

安装成功后,profile 的 package.json 会出现 "@danenze/dsh-imagegeneration": "0.3.0"(或 link: / github: 形式),dsh.profile.bundles 末尾会出现 @danenze/dsh-imagegeneration。需要重启一次 DSH Web / 桌面端(宿主插件在启动时组装,没有热更)。

npm 包名带 @danenze/ 前缀是因为 dsh-image-generation 这个无前缀名字已被别人占用,且 dsh-imagegeneration 被 npm 判为「与已有包过于相似」而拒收。

典型用法

1. 对话里直接说

在对话中直接说:「画一只戴围巾的橘猫」。agent 会调用 generate_image 工具,图片落盘并作为附件显示在对话里。

2. 输入框上的按钮

输入框左下角工具行会出现一个图片按钮(在表情按钮右边)。点开是一个浮层,可以直接改接口地址、模型名、超时、API Key。保存后立刻生效。

3. 用工具改

调用工具可以直接控制生成行为。

  • generate_image:文生图 / 参考图改图。参数包括 prompt(必填,画面描述)、model(覆盖默认模型)、size(DashScope 用 1024*1024 形式,OpenAI 用 1024x1024)、n(1–4,生成张数)、negative(不想出现的元素)、refImages(最多 3 张参考图 http(s) 地址)、watermark(是否加水印)、promptExtend(服务端是否自动扩写提示词)、name(文件名前缀)。
  • imagegen_models:查看当前配置、可用模型、密钥来源(不回显密钥)。
  • imagegen_config:读取当前生效配置。
  • imagegen_set_config:修改接口地址、模型名、超时、API Key。

图片写入 outputDir,同时存进 DSH 附件服务,最终以 text + image 内容块渲染,所以在对话里能直接看到图。

配置项

cordis.patch.yml 里的 config,全部可在运行时改(credentialsFile 除外)。

键 默认 说明
provider dashscope dashscope 走 multimodal-generation;openai 走 /v1/images/generations
baseURL https://dashscope.aliyuncs.com 端点根地址
model qwen-image-3.0 默认模型
apiKeyEnv DASHSCOPE_API_KEY 从这个环境变量找密钥
apiKey 空 直接把密钥写配置里(不推荐,优先用凭据库)
credentialsFile $DSH_HOME/.credentials.yaml DSH 凭据文件路径
credentialsKey MULTIMODAL_GENERATION_API_KEY 从凭据文件读哪个键
outputDir $DSH_HOME/imagegen 图片落盘目录
timeoutMs 180000 单次生成超时

密钥解析顺序:调用参数 key > config.apiKey > 环境变量 apiKeyEnv > DSH 凭据服务(apiKeyEnv 与 credentialsKey 两个名字都试)> 直接扫 credentialsFile。

密钥不会出现在工具返回值、日志或配置文件里(apiKey 字段标了 role('secret'),跨线前被剔除)。

已知模型

qwen-image-3.0(默认)、qwen-image-3.0-pro、qwen-image-2.1-pro、qwen-image-2.0-pro、qwen-image-2.0。

列表只是提示——服务端支持但没列出的 id 也能直接传。

适用场景与注意

  • 适合需要在 DSH 中直接调用文生图能力的场景,比如让模型生成配图、根据参考图改图等。
  • 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
  • 配置改动无需重启进程,但宿主插件在启动时组装,修改 lib/client.js 需要重启服务才能生效。

短结尾

dsh-imagegen 通过工具形式将 DashScope Qwen-Image 或 OpenAI 兼容端点接入 DSH,让模型可以直接画图并显示在对话中,同时提供输入框按钮和设置页,支持在运行时修改接口地址、模型名和 API Key,无需重启进程。

  • 目录页:https://www.skillhub.cn/plugins/ninjasle/dsh-imagegen
  • GitHub:https://github.com/ninjasle/dsh-imagegen
羽毛球分组比赛记分
小程序二维码

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

Xiaoye