前言¶
DeepSeek Harness(DSH)的插件生態旨在通過插件擴展功能。在對話中生成圖片通常需要配置複雜的後端或持有 API Key。Stellight 維護的 dsh-imggen 是一個靜態 dual-face 插件,它爲 DSH 提供文生圖輸出能力。該插件採用與 dsh-deepseek-balance 相同的 profile bundle 機制,這意味着配置寫入 bundle 後重啓不丟失,且無需每次批准。
核心功能¶
dsh-imggen 提供了一套完整的工具鏈,用於在對話中渲染和生成圖片。
generate_image模型工具:從文本提示生成圖片,並在對話工具卡片中直接渲染。- 後端支持:
- 默認使用 Pollinations(免費、無需 API Key)。
- 支持 OpenAI(DALL·E 3),需要配置
OPENAI_API_KEY或DSH_OPENAI_API_KEY。
- 工具卡片功能:
- 下載按鈕:支持一鍵下載生成的圖片。如果瀏覽器跨域 fetch 失敗,會自動回退到新標籤頁打開。
- 歷史畫廊:點擊
🖼 歷史按鈕打開懸浮畫廊,以網格形式展示圖片、提示詞,並支持刪除或清空。歷史記錄存於瀏覽器 localStorage,跨重啓保留。
- API 選擇選項卡:在輸入框工具行右側提供分段控件,支持在
🎨 Pollinations和✨ OpenAI之間切換。選擇後,通過systemPrompt變量注入提示詞,Host 側會根據選項調用對應的後端。
安裝與啓用¶
安裝該插件需要將包放入 profile 的 node_modules 並在 package.json 中配置 bundle。
- 使用插件命令:
dsh plugin --profile web add <本包路徑>
- 手動安裝:
將本包複製到 profile 的node_modules目錄,例如:
~/.dsh/profiles/web/node_modules/dsh-imggen/ - 配置 profile:
編輯 profile 的package.json,添加依賴和 bundles 配置:
{
"dependencies": { "dsh-imggen": "1.0.0" },
"dsh": { "profile": { "bundles": ["...", "dsh-imggen"] } }
}
- 重啓 Harness:
運行dsh web重啓,工具卡片、畫廊和選項卡將自動生效。
典型用法¶
- 默認生成:直接在對話中調用
generate_image。默認使用 Pollinations 後端,無需額外配置即可生成圖片。 - 切換後端:在輸入框右側的選項卡中選擇 OpenAI,並確保環境變量或 DSH 憑證庫中配置了相應的 Key。
- 管理歷史:點擊工具卡片上的
🖼 歷史按鈕查看生成的圖片列表。列表保存在瀏覽器 localStorage 中,刷新或重啓瀏覽器不會丟失。
架構與安全¶
- 架構:採用 dual-face 架構,無構建步驟。
dsh/index.js(Host):註冊generate_image工具、systemPrompt變量/節、同源路由/dsh-imggen/pref。OpenAI 調用與 Pollinations 驗證走 Node 原生fetch。dsh/client.js(Client):手寫 lazy-CJS bundle,負責工具卡片、歷史畫廊 overlay、生圖 API 選項卡。
- 安全:倉庫代碼不包含任何 API Key。OpenAI Key 僅在本地進程內用於官方接口調用,通過
credentials服務按OPENAI_API_KEY或DSH_OPENAI_API_KEY環境變量順序解析。
結語¶
dsh-imggen 簡化了 DSH 中的圖片生成流程,利用靜態 bundle 機制保證了配置的穩定性。項目代碼開源,可在 GitHub 查看。