前言¶
在 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 倉庫。