前言¶
在 DeepSeek Harness(DSH)里做智能体时,聊天模型擅长推理与编排,却通常不具备可直接落盘的绘图能力。若再把图像服务单独接一套密钥与代理,配置和维护成本会明显上升。
下面介绍社区插件 dsh-openai-image(维护者 flytangyu)。它在 DSH 中注册 generate_image 与 list_image_models 工具,调用 OpenAI 图像 API,把生成结果写入本地文件,供网页展示或通过 QQ 发图。思路是「聊天用 DeepSeek,画图用 OpenAI」:绘图与聊天模型分离,并默认复用 DSH 已保存的 OPENAI_API_KEY。
这是什么¶
dsh-openai-image 是 DSH 的 OpenAI 图像生成插件,分类为模型推理。仓库见 GitHub,社区目录页见 SkillHub。当前实现以文字生图为主;参考图编辑、局部重绘、图片理解不在此插件范围内。图像额度与聊天模型额度分别计费。
插件为零运行时 npm 依赖的 ES Module,无需编译。版本以仓库 package.json 为准(资料抓取时为 1.1.0,许可证 MIT)。
核心功能¶
经过上面的定位,可以把已核实的能力归纳为以下几项。
- 文字生图:照片、插画、海报、封面等;提示词支持中文。
- 动态模型:
list_image_models用当前 Key 实时查询 OpenAI/v1/models,返回gpt-image-*与chatgpt-image-latest;单次调用可通过generate_image.model指定模型,优先级为本次model> 插件配置model> 默认gpt-image-2。 - 生成参数:默认
gpt-image-2、1024x1024、medium质量、PNG、每次一张;支持横竖图、质量档位、透明背景、PNG/JPEG/WebP,以及一次 1–4 张。 - 与 DSH 集成:沿用 DSH 网络代理;经凭据服务读取 Key,支持密钥热更新;成功时返回图片
file_path,默认目录为$DSH_HOME/generated-images(未设置DSH_HOME时为~/.dsh/generated-images)。 - QQ 发图:出图后配合
dsh-qqbot与qqbot_send_file等工具发送;需在cordis.patch.yml中为sendFile.extraRoots配置图片目录的绝对路径。
安装与启用¶
需要:能运行 dsh web、Node.js 22.19 或以上,以及可调用图像模型的 OpenAI API Key。README 记载已在 macOS、Node.js 24.14.0、DSH 0.2.1-rc.5 下实测;其他 DSH 版本请先确认工具是否注册成功。
本仓库尚未发布 npm 包,请从源码安装(安装命令来自仓库 README,不是 dsh plugin add github:... 形式的臆测命令)。
1. 克隆并加入 web profile¶
git clone https://github.com/flytangyu/dsh-openai-image.git
cd dsh-openai-image
dsh plugin --profile web add "$PWD"
无需 npm install 或构建。请保留克隆目录,本地安装可能通过链接引用该路径。
2. 配置 OpenAI Key¶
在 DSH 网页的模型设置中保存 OPENAI_API_KEY。插件通过 ctx.credentials.resolve('OPENAI_API_KEY') 复用凭据;也可使用 DSH 支持的环境变量方式。配置中只写凭据名称,不要把真实 Key 提交到仓库或聊天。
3. 启动¶
dsh web
若安装后未见工具,重启 DSH。需要代理时,在启动前设置 HTTP_PROXY / HTTPS_PROXY 等,或写入 ~/.dsh/.env(详见仓库 README「网络与代理」一节)。
可选:在 ~/.dsh/profiles/web/cordis.patch.yml 中覆盖插件配置,例如默认模型、尺寸、超时:
- id: tool-openai-image
name: dsh-openai-image
config:
model: gpt-image-2
apiKeyRef: OPENAI_API_KEY
quality: medium
size: 1024x1024
timeoutMs: 600000
典型用法¶
网页对话¶
直接在聊天中描述需求,例如:
帮我画一只在海边看日落的小鲸鱼,水彩风格,横图。
或显式提到工具:
用 generate_image 生成一张透明背景的可爱机器人贴纸,PNG 格式。
支持工具调用的 DeepSeek、OpenAI 等聊天模型均可调用 generate_image。
查询并指定模型(v1.1.0)¶
先让模型列出账号可见的绘图模型(调用 list_image_models,不生成图片、不缓存列表):
列出我现在可以使用的 OpenAI 绘图模型。
再指定模型出图,例如:
用 gpt-image-2.6-flare 画一只水彩鲸鱼,横图。
调用参数示例:
{
"prompt": "一只在海边看日落的小鲸鱼,水彩插画",
"model": "gpt-image-2.6-flare",
"size": "1536x1024",
"quality": "high"
}
常用字段包括:prompt(必填,1–32000 字符)、size、quality、n(1–4)、output_format、background(透明背景不能使用 JPEG)。成功时工具返回模型名与各文件的 file_path、mime_type、bytes。
QQ 侧发图¶
本插件只负责生成文件。QQ 场景需另行安装并配置 @tencent-connect/dsh-qqbot,并在 im-qqbot 的 sendFile.extraRoots 中加入图片输出目录的绝对路径。生成后由模型调用 qqbot_send_file 等工具发送;单独回复本机 Markdown 图片路径不会被 QQ 自动上传。
适用场景与注意¶
适合谁:已在 DSH 中使用 DeepSeek 等模型做对话编排,同时希望用同一套 OpenAI Key 做文生图,并在网页或 QQ 中交付图片文件的开发者。
使用注意:
- 插件在当前
dsh进程权限下运行;安装前应自行审阅源码与 MIT 许可证。 - API 报错时插件不会自动换模型或自动重试收费请求;超时也不代表服务端未执行,重试可能再次计费。
- 社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本介绍以仓库 README 与
package.json为准。
本地开发与验证可使用 npm test(不请求外网)、npm run smoke(查模型目录)、npm run smoke -- --generate(真实出图,消耗额度)。常见问题对照表见仓库 README。
结尾¶
dsh-openai-image 把 OpenAI 文生图收成 DSH 的两个工具,复用凭据与代理,输出可展示的本地文件,并可与 QQ 机器人串联。进一步了解请查阅 SkillHub 目录页 与 GitHub 仓库。